Browse Source

修改:

1.居民信息导入:将类别变更数据放到redis中,减少内存占用
dev
wangxianzhang 4 years ago
parent
commit
f7c5e8ceb6
  1. 33
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  2. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportCategoryData.java
  3. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportResiCategoryChangedCache.java
  4. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java
  5. 111
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

33
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -640,4 +640,37 @@ public class RedisKeys {
public static String getHouseInfoCacheKey(String houseId,String customerId){ public static String getHouseInfoCacheKey(String houseId,String customerId){
return rootPrefix.concat("house:").concat(customerId).concat(":").concat(houseId); return rootPrefix.concat("house:").concat(customerId).concat(":").concat(houseId);
} }
/**
* 居民导入-缓存目录key
* @param importTag
* @return
*/
public static String icResiImportBaseKey(String importTag) {
return rootPrefix.concat("resi:").concat("import:").concat(importTag);
}
/**
* 居民导入-数据分类的key
* add新增居民
* category类别变更
* transfer调动
* @param importTag
* @param type
* @return
*/
public static String icResiImportTypeKey(String importTag, String type) {
return icResiImportBaseKey(importTag).concat(":").concat(type);
}
/**
* 居民导入-详细信息key
* @param importTag
* @param type
* @param resiId
* @return
*/
public static String icResiImportResiCategoryKey(String importTag, String type, String resiId) {
return icResiImportTypeKey(importTag, type).concat(":").concat(resiId);
}
} }

13
epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportCategoryData.java

@ -14,6 +14,7 @@ import java.util.Map;
@Data @Data
public class ResiImportCategoryData { public class ResiImportCategoryData {
private String resiId;
private String agencyId; private String agencyId;
private String gridId; private String gridId;
private String villageId; private String villageId;
@ -30,7 +31,8 @@ public class ResiImportCategoryData {
public ResiImportCategoryData() { public ResiImportCategoryData() {
} }
public ResiImportCategoryData(String agencyId, String gridId, String villageId, String buildId, String unitId, String homeId, Map<String, String> categories) { public ResiImportCategoryData(String resiId, String agencyId, String gridId, String villageId, String buildId, String unitId, String homeId, Map<String, String> categories) {
this.resiId = resiId;
this.agencyId = agencyId; this.agencyId = agencyId;
this.gridId = gridId; this.gridId = gridId;
this.villageId = villageId; this.villageId = villageId;
@ -39,13 +41,4 @@ public class ResiImportCategoryData {
this.homeId = homeId; this.homeId = homeId;
this.categories = categories; this.categories = categories;
} }
public ResiImportCategoryData(String agencyId, String gridId, String villageId, String buildId, String unitId, String homeId) {
this.agencyId = agencyId;
this.gridId = gridId;
this.villageId = villageId;
this.buildId = buildId;
this.unitId = unitId;
this.homeId = homeId;
}
} }

7
epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportResiCategoryChangedCache.java

@ -11,11 +11,16 @@ import java.util.Map;
@Data @Data
public class ResiImportResiCategoryChangedCache { public class ResiImportResiCategoryChangedCache {
/**
* 导入的tag用来标记唯一一次导入操作
*/
private String importTag;
/** /**
* 新增居民 * 新增居民
* Map<resiId:<ResiImportCategoryData>> * Map<resiId:<ResiImportCategoryData>>
*/ */
private Map<String, ResiImportCategoryData> newResis = new HashMap<>(); // private Map<String, ResiImportCategoryData> newResis = new HashMap<>();
/** /**
* 调动的居民 * 调动的居民

10
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/DynamicEasyExcelListener.java → epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java

@ -17,7 +17,7 @@ import java.util.stream.Collectors;
* 创建一个监听器 * 创建一个监听器
*/ */
@Slf4j @Slf4j
public class DynamicEasyExcelListener extends AnalysisEventListener<Map<Integer, String>> { public class IcResiImportDynamicExcelListener extends AnalysisEventListener<Map<Integer, String>> {
/** /**
* 一次性导入的条数 * 一次性导入的条数
@ -89,10 +89,10 @@ public class DynamicEasyExcelListener extends AnalysisEventListener<Map<Integer,
// Map<Integer, String> dataList = new HashMap<>(); // Map<Integer, String> dataList = new HashMap<>();
public DynamicEasyExcelListener(IcResiUserImportServiceImpl icResiUserImportService, String customerId, public IcResiImportDynamicExcelListener(IcResiUserImportServiceImpl icResiUserImportService, String customerId,
String currentUserId, String currUserAgencyId, String currentUserId, String currUserAgencyId,
String currUserAgencyPids, Boolean isPrimary, String tableName, String currUserAgencyPids, Boolean isPrimary, String tableName,
List<FormItemResult> formItemList, Integer headRowNumber) { List<FormItemResult> formItemList, Integer headRowNumber) {
this.customerId = customerId; this.customerId = customerId;
this.icResiUserImportService = icResiUserImportService; this.icResiUserImportService = icResiUserImportService;

111
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -3,8 +3,10 @@ package com.epmet.service.impl;
import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.EasyExcelFactory;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.bean.ResiImportCategoryData; import com.epmet.bean.ResiImportCategoryData;
import com.epmet.bean.ResiImportResiCategoryChangedCache; import com.epmet.bean.ResiImportResiCategoryChangedCache;
import com.epmet.bean.ResiImportChangedData; import com.epmet.bean.ResiImportChangedData;
@ -16,8 +18,11 @@ import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcResiUserDao; import com.epmet.dao.IcResiUserDao;
import com.epmet.dao.IcUserChangeDetailedDao; import com.epmet.dao.IcUserChangeDetailedDao;
@ -31,7 +36,7 @@ import com.epmet.entity.IcUserChangeDetailedEntity;
import com.epmet.entity.IcUserChangeRecordEntity; import com.epmet.entity.IcUserChangeRecordEntity;
import com.epmet.entity.IcUserTransferRecordEntity; import com.epmet.entity.IcUserTransferRecordEntity;
import com.epmet.enums.IcResiUserTableEnum; import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.excel.handler.DynamicEasyExcelListener; import com.epmet.excel.handler.IcResiImportDynamicExcelListener;
import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient;
@ -118,6 +123,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired
private RedisUtils redisUtils;
/** /**
* 字表中不需要的列 * 字表中不需要的列
@ -253,12 +261,12 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
} }
// 执行人员类别变更记录 // 执行人员类别变更记录
Map<String, ResiImportCategoryData> newResis = newlyOrChangedResi.get().getNewResis(); // Map<String, ResiImportCategoryData> newResis = newlyOrChangedResi.get().getNewResis();
Map<String, ResiImportChangedData> categoryChangedResis = newlyOrChangedResi.get().getCategoryChangedResis(); Map<String, ResiImportChangedData> categoryChangedResis = newlyOrChangedResi.get().getCategoryChangedResis();
Map<String, ResiImportChangedData> transferedResis = newlyOrChangedResi.get().getTransferedResis(); Map<String, ResiImportChangedData> transferedResis = newlyOrChangedResi.get().getTransferedResis();
//保存调动或者变更记录 //保存调动或者变更记录
saveNewResiCategoryRecord(newResis); saveNewResiCategoryRecord();
saveResiCategoryChangedRecord(categoryChangedResis); saveResiCategoryChangedRecord(categoryChangedResis);
saveTransferedResiRecord(transferedResis); saveTransferedResiRecord(transferedResis);
@ -268,6 +276,16 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
log.error("【导入IC居民附加信息】下载导入结果信息失败:{}", ExceptionUtils.getErrorStackTrace(e)); log.error("【导入IC居民附加信息】下载导入结果信息失败:{}", ExceptionUtils.getErrorStackTrace(e));
} }
} finally { } finally {
// 清空rediskey
try {
String importTag = newlyOrChangedResi.get().getImportTag();
redisUtils.deleteByPattern(RedisKeys.icResiImportBaseKey(importTag).concat("*"));
} catch (Exception e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
log.error("【导入IC居民附加信息】清空redis 类别缓存出错:{}", errorMsg);
}
// 清空线程变量
skipedRows.remove(); skipedRows.remove();
errorRows.remove(); errorRows.remove();
newlyOrChangedResi.remove(); newlyOrChangedResi.remove();
@ -280,6 +298,10 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* threadLocal初始化 * threadLocal初始化
*/ */
private void initImportThreadLocal(String customerId) { private void initImportThreadLocal(String customerId) {
// 生成importTag,用于标记唯一一次导入操作,导入完成之后,用来删除redis里面临时的key
String operatorId = loginUserUtil.getLoginUserId();
String importTag = operatorId + System.currentTimeMillis();
// 跳过的,不导入的行 // 跳过的,不导入的行
Map<String, List<SkipedRow>> skipedRowsMap = new LinkedHashMap<>(); Map<String, List<SkipedRow>> skipedRowsMap = new LinkedHashMap<>();
for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) { for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) {
@ -296,6 +318,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
// 居民类别信息 // 居民类别信息
ResiImportResiCategoryChangedCache c = new ResiImportResiCategoryChangedCache(); ResiImportResiCategoryChangedCache c = new ResiImportResiCategoryChangedCache();
c.setImportTag(importTag);
newlyOrChangedResi.set(c); newlyOrChangedResi.set(c);
List<ResiCategoryItemResultDTO> resiCategoryItems = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listResiCategoryItems(customerId), List<ResiCategoryItemResultDTO> resiCategoryItems = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listResiCategoryItems(customerId),
@ -323,7 +346,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
private void importIcResiBaseInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId, private void importIcResiBaseInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId,
String tableName, String customerId) { String tableName, String customerId) {
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(this, customerId, currentUserId, currUserAgencyId, currUserAgencyPids, IcResiImportDynamicExcelListener readListener = new IcResiImportDynamicExcelListener(this, customerId, currentUserId, currUserAgencyId, currUserAgencyPids,
true, tableName, formItemList, headRowNumber); true, tableName, formItemList, headRowNumber);
EasyExcel.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); EasyExcel.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead();
} }
@ -343,7 +366,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
private void importIcResiExtraInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currentUserId, private void importIcResiExtraInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currentUserId,
String targetTableName, String customerId) { String targetTableName, String customerId) {
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(this, customerId, currentUserId, currUserAgencyId, null, IcResiImportDynamicExcelListener readListener = new IcResiImportDynamicExcelListener(this, customerId, currentUserId, currUserAgencyId, null,
false, targetTableName, formItemList, headRowNumber); false, targetTableName, formItemList, headRowNumber);
EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead();
} }
@ -415,8 +438,10 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
} }
} else { } else {
// 新增居民 // 新增居民
String resiId = IdWorker.getIdStr();
columnAndValues.put("CREATED_BY", currentUserId); columnAndValues.put("CREATED_BY", currentUserId);
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); columnAndValues.put("ID", resiId);
icResiUserDao.add(tableName, columnAndValues); icResiUserDao.add(tableName, columnAndValues);
// 过滤出本居民含有哪些类别 // 过滤出本居民含有哪些类别
@ -425,14 +450,26 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
.filter((categoryColumnName) -> "1".equals(columnAndValues.get(categoryColumnName))) .filter((categoryColumnName) -> "1".equals(columnAndValues.get(categoryColumnName)))
.collect(Collectors.toMap((k) -> k, (k) -> columnAndValues.get(k))); .collect(Collectors.toMap((k) -> k, (k) -> columnAndValues.get(k)));
newlyOrChangedResi.get().getNewResis().put(columnAndValues.get("ID"), // newlyOrChangedResi.get().getNewResis().put(resiId,
new ResiImportCategoryData(columnAndValues.get("AGENCY_ID"), // new ResiImportCategoryData(columnAndValues.get("AGENCY_ID"),
columnAndValues.get("GRID_ID"), // columnAndValues.get("GRID_ID"),
columnAndValues.get("VILLAGE_ID"), // columnAndValues.get("VILLAGE_ID"),
columnAndValues.get("BUILD_ID"), // columnAndValues.get("BUILD_ID"),
columnAndValues.get("UNIT_ID"), // columnAndValues.get("UNIT_ID"),
columnAndValues.get("HOME_ID"), // columnAndValues.get("HOME_ID"),
resiCategories)); // resiCategories));
ResiImportCategoryData categoryData = new ResiImportCategoryData(resiId,
columnAndValues.get("AGENCY_ID"),
columnAndValues.get("GRID_ID"),
columnAndValues.get("VILLAGE_ID"),
columnAndValues.get("BUILD_ID"),
columnAndValues.get("UNIT_ID"),
columnAndValues.get("HOME_ID"),
resiCategories);
redisUtils.hMSet(RedisKeys.icResiImportResiCategoryKey(newlyOrChangedResi.get().getImportTag(), "add", resiId), BeanUtil.beanToMap(categoryData));
} }
} catch (Exception e) { } catch (Exception e) {
@ -1040,6 +1077,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
} }
ResiImportCategoryData oldOne = new ResiImportCategoryData( ResiImportCategoryData oldOne = new ResiImportCategoryData(
existingResiMap.get("ID"),
existingResiMap.get("AGENCY_ID"), existingResiMap.get("AGENCY_ID"),
existingResiMap.get("GRID_ID"), existingResiMap.get("GRID_ID"),
existingResiMap.get("VILLAGE_ID"), existingResiMap.get("VILLAGE_ID"),
@ -1049,7 +1087,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
existingResiCategories); existingResiCategories);
ResiImportCategoryData newOne = new ResiImportCategoryData( ResiImportCategoryData newOne = new ResiImportCategoryData(
existingResiMap.get("AGENCY_ID"), newResiMap.get("ID"),
newResiMap.get("AGENCY_ID"),
newResiMap.get("GRID_ID"), newResiMap.get("GRID_ID"),
newResiMap.get("VILLAGE_ID"), newResiMap.get("VILLAGE_ID"),
newResiMap.get("BUILD_ID"), newResiMap.get("BUILD_ID"),
@ -1100,6 +1139,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
} }
ResiImportCategoryData oldOne = new ResiImportCategoryData( ResiImportCategoryData oldOne = new ResiImportCategoryData(
existingResiMap.get("ID"),
existingResiMap.get("AGENCY_ID"), existingResiMap.get("AGENCY_ID"),
existingResiMap.get("GRID_ID"), existingResiMap.get("GRID_ID"),
existingResiMap.get("VILLAGE_ID"), existingResiMap.get("VILLAGE_ID"),
@ -1108,7 +1148,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
existingResiMap.get("HOME_ID"), existingResiMap.get("HOME_ID"),
oldCategories); oldCategories);
ResiImportCategoryData newOne = new ResiImportCategoryData(existingResiMap.get("AGENCY_ID"), ResiImportCategoryData newOne = new ResiImportCategoryData(
newResiMap.get("ID"),
newResiMap.get("AGENCY_ID"),
newResiMap.get("GRID_ID"), newResiMap.get("GRID_ID"),
newResiMap.get("VILLAGE_ID"), newResiMap.get("VILLAGE_ID"),
newResiMap.get("BUILD_ID"), newResiMap.get("BUILD_ID"),
@ -1127,14 +1169,19 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
private void saveSubTableInfoToCategoryChangedResiCache(String icResiId, String columnName, Map<String, String> resiInfoMap) { private void saveSubTableInfoToCategoryChangedResiCache(String icResiId, String columnName, Map<String, String> resiInfoMap) {
ResiImportResiCategoryChangedCache cc = newlyOrChangedResi.get(); ResiImportResiCategoryChangedCache cc = newlyOrChangedResi.get();
Map<String, ResiImportCategoryData> newResis = cc.getNewResis(); // Map<String, ResiImportCategoryData> newResis = cc.getNewResis();
Map<String, ResiImportChangedData> categoryChangedResis = cc.getCategoryChangedResis(); Map<String, ResiImportChangedData> categoryChangedResis = cc.getCategoryChangedResis();
Map<String, ResiImportChangedData> transferedResis = cc.getTransferedResis(); Map<String, ResiImportChangedData> transferedResis = cc.getTransferedResis();
ResiImportCategoryData newResi = newResis.get(icResiId); // ResiImportCategoryData newResi = newResis.get(icResiId);
if (newResi != null) {
String userCateRedisKey = RedisKeys.icResiImportResiCategoryKey(newlyOrChangedResi.get().getImportTag(), "add", icResiId);
Map < String, Object > addUserMap = redisUtils.hGetAll(userCateRedisKey);
if (addUserMap != null) {
//说明是新增居民 //说明是新增居民
newResi.getCategories().put(columnName, "1"); ResiImportCategoryData newResiCateData = ConvertUtils.mapToEntity(addUserMap, ResiImportCategoryData.class);
newResiCateData.getCategories().put(columnName, "1");
redisUtils.hMSet(userCateRedisKey, BeanUtil.beanToMap(newResiCateData));
return; return;
} }
@ -1286,35 +1333,35 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
/** /**
* 保存新增居民类别记录 * 保存新增居民类别记录
* @param newResis
*/ */
public void saveNewResiCategoryRecord(Map<String, ResiImportCategoryData> newResis) { public void saveNewResiCategoryRecord() {
Date now = new Date(); Date now = new Date();
Set<String> newResiKeys = redisUtils.keys(RedisKeys.icResiImportTypeKey(newlyOrChangedResi.get().getImportTag(), "add").concat("*"));
CustomerStaffInfoCacheResult operator = CustomerStaffRedis.getStaffInfo(loginUserUtil.getLoginUserCustomerId(), loginUserUtil.getLoginUserId()); CustomerStaffInfoCacheResult operator = CustomerStaffRedis.getStaffInfo(loginUserUtil.getLoginUserCustomerId(), loginUserUtil.getLoginUserId());
for (Map.Entry<String, ResiImportCategoryData> resi : newResis.entrySet()) { for (String resiKey : newResiKeys) {
String resiId = resi.getKey(); Map<String, Object> newResiInfoMap = redisUtils.hGetAll(resiKey);
ResiImportCategoryData data = resi.getValue(); ResiImportCategoryData newResiInfoObj = ConvertUtils.mapToEntity(newResiInfoMap, ResiImportCategoryData.class);
IcResiUserEntity resiInfo = icResiUserDao.selectById(resiId); IcResiUserEntity resiInfo = icResiUserDao.selectById(newResiInfoObj.getResiId());
// 插入changeRecord // 插入changeRecord
IcUserChangeRecordEntity changeRecord = fillChangeRecord(loginUserUtil.getLoginUserCustomerId(), resiId, resiInfo.getName(), null, IcUserChangeRecordEntity changeRecord = fillChangeRecord(loginUserUtil.getLoginUserCustomerId(), newResiInfoObj.getResiId(), resiInfo.getName(), null,
loginUserUtil.getLoginUserId(), operator.getRealName(), "-", "-", loginUserUtil.getLoginUserId(), operator.getRealName(), "-", "-",
"add", "新增", "", now); "add", "新增", "", now);
icUserChangeRecordDao.insert(changeRecord); icUserChangeRecordDao.insert(changeRecord);
// 插入changeDetail // 插入changeDetail
for (Map.Entry<String, String> column : data.getCategories().entrySet()) { for (Map.Entry<String, String> column : newResiInfoObj.getCategories().entrySet()) {
IcUserChangeDetailedEntity changedetail = fillChangeDetail(loginUserUtil.getLoginUserCustomerId(), resiId, changeRecord.getId(), data.getAgencyId(), IcUserChangeDetailedEntity changedetail = fillChangeDetail(loginUserUtil.getLoginUserCustomerId(), newResiInfoObj.getResiId(), changeRecord.getId(), newResiInfoObj.getAgencyId(),
data.getGridId(), data.getVillageId(), data.getBuildId(), data.getUnitId(), newResiInfoObj.getGridId(), newResiInfoObj.getVillageId(), newResiInfoObj.getBuildId(), newResiInfoObj.getUnitId(),
data.getHomeId(), "add", "新增", column.getKey(), 1, resiInfo.getPids()); newResiInfoObj.getHomeId(), "add", "新增", column.getKey(), 1, resiInfo.getPids());
icUserChangeDetailedDao.insert(changedetail); icUserChangeDetailedDao.insert(changedetail);
} }
} }
} }
/** /**

Loading…
Cancel
Save