Browse Source

新增:

1.完成居民导入,主表的类别变更过滤
dev
wangxianzhang 4 years ago
parent
commit
55df17060c
  1. 17
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ResiCategoryItemResultDTO.java
  2. 7
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  3. 5
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  4. 17
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java
  5. 12
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java
  6. 32
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  7. 51
      epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportCategoryData.java
  8. 20
      epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportChangedData.java
  9. 30
      epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportResiCategoryChangedCache.java
  10. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  11. 239
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  12. 10
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

17
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ResiCategoryItemResultDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result;
import lombok.Data;
/**
* @ClassName ResiCategoryItemResultDTO
* @Description 居民类别item查询结果
* @Author wangxianzhang
* @Date 2022/1/18 4:43 下午
*/
@Data
public class ResiCategoryItemResultDTO {
private String columnName;
private String label;
}

7
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -145,4 +145,11 @@ public interface OperCustomizeOpenFeignClient {
@PostMapping("/oper/customize/icresicategorywarnconfig/categorywarnconfiglist/{customerId}")
Result<List<IcResiCategoryWarnConfigDTO>> categoryWarnConfigList(@PathVariable String customerId);
/**
* 查询客户下的居民类别item列表
* @param customerId
* @return
*/
@PostMapping("/oper/customize/icformitem/resi-category-items/list")
Result<List<ResiCategoryItemResultDTO>> listResiCategoryItems(@RequestParam("customer-id") String customerId);
}

5
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java

@ -119,4 +119,9 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe
public Result<List<IcResiCategoryWarnConfigDTO>> categoryWarnConfigList(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "categoryWarnConfigList", customerId);
}
@Override
public Result<List<ResiCategoryItemResultDTO>> listResiCategoryItems(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "listResiCategoryItems", customerId);
}
}

17
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java

@ -19,12 +19,10 @@ package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ResiCategoryItemResultDTO;
import com.epmet.service.IcFormItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -51,4 +49,15 @@ public class IcFormItemController {
return new Result<List<ColumnTableNameResultDTO>>().ok(icFormItemService.getMustColumn(customerId));
}
/**
* 查询客户下的居民类别item列表
* @param customerId
* @return
*/
@PostMapping("resi-category-items/list")
public Result<List<ResiCategoryItemResultDTO>> listResiCategoryItems(@RequestParam("customer-id") String customerId) {
List<ResiCategoryItemResultDTO> r = icFormItemService.listResiCategoryItems(customerId);
return new Result().ok(r);
}
}

12
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java

@ -19,10 +19,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import java.util.List;
@ -58,4 +55,11 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
* @Description 居民信息新增查询各表必填字段
**/
List<ColumnTableNameResultDTO> getMustColumn(String customerId);
/**
* 查询
* @param customerId
* @return
*/
List<ResiCategoryItemResultDTO> listResiCategoryItems(String customerId);
}

32
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -27,10 +28,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcFormItemDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import com.epmet.service.IcFormItemService;
import org.apache.commons.lang3.StringUtils;
@ -39,6 +37,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 表单项
@ -118,4 +118,28 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
return baseDao.getMustColumn(customerId);
}
@Override
public List<ResiCategoryItemResultDTO> listResiCategoryItems(String customerId) {
LambdaQueryWrapper<IcFormItemEntity> query = new LambdaQueryWrapper<>();
query.eq(IcFormItemEntity::getCustomerId, customerId);
query.eq(IcFormItemEntity::getDataAnalyse, 1);
List<IcFormItemEntity> categoryItems = baseDao.selectList(query);
// 如果该客户没配置,那么使用默认配置
if (CollectionUtils.isEmpty(categoryItems)) {
LambdaQueryWrapper<IcFormItemEntity> query1 = new LambdaQueryWrapper<>();
query1.eq(IcFormItemEntity::getDataAnalyse, 1);
query1.eq(IcFormItemEntity::getCustomerId, "default");
categoryItems = baseDao.selectList(query1);
}
return categoryItems.stream().map((e) -> {
ResiCategoryItemResultDTO d = new ResiCategoryItemResultDTO();
d.setColumnName(e.getColumnName());
d.setLabel(e.getLabel());
return d;
}).collect(Collectors.toList());
}
}

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

@ -0,0 +1,51 @@
package com.epmet.bean;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName ResiImportTransferOldDim
* @Description TODO
* @Author wangxianzhang
* @Date 2022/1/18 5:53 下午
*/
@Data
public class ResiImportCategoryData {
private String agencyId;
private String gridId;
private String villageId;
private String buildId;
private String unitId;
private String homeId;
/**
* key:居民类别在ic_resi_user表中的列名
* value:居民类别的值01
*/
private Map<String, String> categories = new HashMap<>();
public ResiImportCategoryData() {
}
public ResiImportCategoryData(String agencyId, String gridId, String villageId, String buildId, String unitId, String homeId, Map<String, String> categories) {
this.agencyId = agencyId;
this.gridId = gridId;
this.villageId = villageId;
this.buildId = buildId;
this.unitId = unitId;
this.homeId = homeId;
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;
}
}

20
epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiImportChangedData.java

@ -0,0 +1,20 @@
package com.epmet.bean;
import lombok.Data;
/**
* @ClassName ResiImportTransferCache
* @Description TODO
* @Author wangxianzhang
* @Date 2022/1/18 5:51 下午
*/
@Data
public class ResiImportChangedData {
private ResiImportCategoryData oldData = new ResiImportCategoryData();
private ResiImportCategoryData newData = new ResiImportCategoryData();
public ResiImportChangedData(ResiImportCategoryData oldData, ResiImportCategoryData newData) {
this.oldData = oldData;
this.newData = newData;
}
}

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

@ -0,0 +1,30 @@
package com.epmet.bean;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* 导入操作中居民信息操作的分类bean
*/
@Data
public class ResiImportResiCategoryChangedCache {
/**
* 新增居民
* Map<resiId:<ResiImportCategoryData>>
*/
private Map<String, ResiImportCategoryData> newResis = new HashMap<>();
/**
* 调动的居民
*/
private Map<String, ResiImportChangedData> transferedResis = new HashMap<>();
/**
* 类别变更的居民
*/
private Map<String, ResiImportChangedData> categoryChangedResis = new HashMap<>();
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -232,5 +232,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
Map<String, String> getCategoryListMap(@Param("icUserId") String icUserId);
Map<String, String> selectResiInfoMap(@Param("idCard") String idCard);
List<Map<String,Object>> selectResiUsers(@Param("types")List<String> types,@Param("orgId")String orgId);
}

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

@ -6,6 +6,9 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.bean.ResiImportCategoryData;
import com.epmet.bean.ResiImportResiCategoryChangedCache;
import com.epmet.bean.ResiImportChangedData;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
@ -22,12 +25,14 @@ import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.FormItemResult;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.dto.result.OptionDTO;
import com.epmet.dto.result.ResiCategoryItemResultDTO;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.excel.handler.DynamicEasyExcelListener;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.IcResiUserImportService;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
@ -61,6 +66,16 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>();
public static final ThreadLocal<Map<String, List<SkipedRow>>> skipedRows = new ThreadLocal<>();
/**
* 类别发生变更的居民
*/
public static final ThreadLocal<ResiImportResiCategoryChangedCache> categoryChangedResi = new ThreadLocal<>();
/**
* 居民类别items列表
*/
public static final ThreadLocal<List<String>> resiCategoryItemsCache = new ThreadLocal<>();
/**
* key: itemId
* value:
@ -85,6 +100,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
@Autowired
private IcResiUserDao icResiUserDao;
@Autowired
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
/**
* @description 列信息封装
*
@ -168,6 +186,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
*/
@Override
public void importIcResiInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, HttpServletResponse response) {
String loginUserId = loginUserUtil.getLoginUserId();
String loginUserApp = loginUserUtil.getLoginUserApp();
String loginUserClient = loginUserUtil.getLoginUserClient();
@ -185,7 +204,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
String customerId = agencyInfo.getCustomerId();
try {
initThreadLocalRowsStorage();
initImportThreadLocal(customerId);
// 上传主表信息
importIcResiBaseInfoFromExcel(formItemList,excelPathName, IcResiUserTableEnum.IC_RESI_USER.getSheetNo(), IcResiUserTableEnum.IC_RESI_USER.getHeadRowNo(),
@ -209,11 +228,10 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
}
}
//String errors = JSON.toJSONString(errorRows.get());
//String skipeds = JSON.toJSONString(skipedRows.get());
//log.error(errors);
//log.error(skipeds);
// 执行人员类别变更记录
Map<String, ResiImportCategoryData> newResis = categoryChangedResi.get().getNewResis();
Map<String, ResiImportChangedData> categoryChangedResis = categoryChangedResi.get().getCategoryChangedResis();
Map<String, ResiImportChangedData> transferedResis = categoryChangedResi.get().getTransferedResis();
try {
downLoadResults(response);
@ -223,25 +241,42 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
} finally {
skipedRows.remove();
errorRows.remove();
categoryChangedResi.remove();
resiCategoryItemsCache.remove();
itemIdAndOptionsCache.invalidateAll();
}
}
/**
* 暂存rows信息初始化
* threadLocal初始化
*/
private void initThreadLocalRowsStorage() {
private void initImportThreadLocal(String customerId) {
// 跳过的,不导入的行
Map<String, List<SkipedRow>> skipedRowsMap = new LinkedHashMap<>();
for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) {
skipedRowsMap.put(e.getTableName(), new LinkedList<>());
}
skipedRows.set(skipedRowsMap);
// 错误信息
Map<String, List<ErrorRow>> errorRowsMap = new LinkedHashMap<>();
for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) {
errorRowsMap.put(e.getTableName(), new LinkedList<>());
}
errorRows.set(errorRowsMap);
// 居民类别信息
ResiImportResiCategoryChangedCache c = new ResiImportResiCategoryChangedCache();
categoryChangedResi.set(c);
List<ResiCategoryItemResultDTO> resiCategoryItems = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listResiCategoryItems(customerId),
ServiceConstant.OPER_CUSTOMIZE_SERVER,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
String.format("【居民信息导入】查询居民类别items失败,customerId:%s", customerId),
"居民信息导入失败");
List<String> l = resiCategoryItems.stream().map(ResiCategoryItemResultDTO::getColumnName).collect(Collectors.toList());
resiCategoryItemsCache.set(l);
}
/**
@ -374,26 +409,45 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
String idCard = columnAndValues.get("ID_CARD");
LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>();
idCardQuery.eq(IcResiUserEntity::getIdCard, idCard);
IcResiUserEntity resiBaseInfo = icResiUserDao.selectOne(idCardQuery);
//IcResiUserEntity resiBaseInfo = icResiUserDao.selectOne(idCardQuery);
Map<String, String> existingResiMap = icResiUserDao.selectResiInfoMap(idCard);
if (resiBaseInfo != null) {
icResiUserDao.upTable(tableName, resiBaseInfo.getId(), columnAndValues);
if (existingResiMap != null) {
// 修改居民信息
icResiUserDao.upTable(tableName, existingResiMap.get("ID"), columnAndValues);
// 任意组织维度一个发生变化,则放到调动居民缓存中
ResiImportChangedData transferData;
if ((transferData = this.getResiImportTrasferData(existingResiMap, columnAndValues)) != null) {
categoryChangedResi.get().getTransferedResis().put(existingResiMap.get("ID"), transferData);
} else {
// 组织维度没有发生变化,看是否有居民类型变更
ResiImportChangedData d = getResiImportCategoryChangedData(existingResiMap, columnAndValues);
if (d != null) {
categoryChangedResi.get().getCategoryChangedResis().put(existingResiMap.get("ID"), d);
}
}
} else {
// 新增居民
columnAndValues.put("CREATED_BY", currentUserId);
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", ""));
icResiUserDao.add(tableName, columnAndValues);
}
//if (icResiUserDao.selectCount(idCardQuery) > 0) {
// //log.info("身份证号为【{}】的居民信息已存在,跳过导入", idCard);
// SkipedRow skipedRow = new SkipedRow();
// skipedRow.setName(columnAndValues.get("NAME"));
// skipedRow.setIdCard(idCard);
// skipedRow.setInfo("身份证号已存在,跳过导入");
// skipedRow.setTableName(tableName);
// skipedRows.get().get(IcResiUserTableEnums.IC_RESI_USER.getTableName()).add(skipedRow);
// continue;
//}
Map<String, String> categories = resiCategoryItemsCache.get()
.stream()
.filter((categoryColumnName) -> "1".equals(columnAndValues.get(categoryColumnName)))
.collect(Collectors.toMap((k) -> k, (k) -> columnAndValues.get(k)));
categoryChangedResi.get().getNewResis().put(columnAndValues.get("ID"),
new ResiImportCategoryData(columnAndValues.get("AGENCY_ID"),
columnAndValues.get("GRID_ID"),
columnAndValues.get("VILLAGE_ID"),
columnAndValues.get("BUILD_ID"),
columnAndValues.get("UNIT_ID"),
columnAndValues.get("HOME_ID"),
categories));
}
} catch (Exception e) {
String errorMsg;
@ -950,4 +1004,145 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
workbook.write(response.getOutputStream());
}
public ResiImportCategoryData generateResiImportChangeData(String agencyId, String gridId, String villageId, String buildId, String unitId,
String homeId , Map<String, String> categories) {
ResiImportCategoryData ricd = new ResiImportCategoryData();
ricd.setAgencyId(agencyId);
ricd.setBuildId(buildId);
ricd.setGridId(gridId);
ricd.setVillageId(villageId);
ricd.setUnitId(unitId);
ricd.setHomeId(homeId);
ricd.setCategories(categories);
return ricd;
}
///**
// * 判断是否有组织维度的变化
// * @param existingResiMap
// * @param newResiMap
// * @return
// */
//public boolean isOrgDimChanged(Map<String, String> existingResiMap, Map<String, String> newResiMap) {
// return !existingResiMap.get("AGENCY_ID").equals(newResiMap.get("AGENCY_ID"))
// || !existingResiMap.get("GRID_ID").equals(newResiMap.get("GRID_ID"))
// || !existingResiMap.get("VILLAGE_ID").equals(newResiMap.get("VILLAGE_ID"))
// || !existingResiMap.get("BUILD_ID").equals(newResiMap.get("BUILD_ID"))
// || !existingResiMap.get("UNIT_ID").equals(newResiMap.get("UNIT_ID"))
// || !existingResiMap.get("HOME_ID").equals(newResiMap.get("HOME_ID"))
//}
/**
* 生成导入调动数据
* @param existingResiMap
* @param newResiMap
* @return
*/
private ResiImportChangedData getResiImportTrasferData(Map<String, String> existingResiMap, Map<String, String> newResiMap) {
// 维度未变化,则返回null
if (existingResiMap.get("AGENCY_ID").equals(newResiMap.get("AGENCY_ID"))
&& existingResiMap.get("GRID_ID").equals(newResiMap.get("GRID_ID"))
&& existingResiMap.get("VILLAGE_ID").equals(newResiMap.get("VILLAGE_ID"))
&& existingResiMap.get("BUILD_ID").equals(newResiMap.get("BUILD_ID"))
&& existingResiMap.get("UNIT_ID").equals(newResiMap.get("UNIT_ID"))
&& existingResiMap.get("HOME_ID").equals(newResiMap.get("HOME_ID"))) {
return null;
}
HashMap<String, String> existingResiCategories = new HashMap<>();
HashMap<String, String> newResiCategories = new HashMap<>();
for (String categoryColumnName : resiCategoryItemsCache.get()) {
String oldCategoryValue = existingResiMap.get(categoryColumnName);
String newCategoryValue = newResiMap.get(categoryColumnName);
if (StringUtils.isNotBlank(oldCategoryValue) && "1".equals(oldCategoryValue)) {
existingResiCategories.put(categoryColumnName, oldCategoryValue);
}
if (StringUtils.isNotBlank(newCategoryValue) && "1".equals(newCategoryValue)) {
newResiCategories.put(categoryColumnName, newResiMap.get(categoryColumnName));
}
}
ResiImportCategoryData oldOne = new ResiImportCategoryData(
existingResiMap.get("AGENCY_ID"),
existingResiMap.get("GRID_ID"),
existingResiMap.get("VILLAGE_ID"),
existingResiMap.get("BUILD_ID"),
existingResiMap.get("UNIT_ID"),
existingResiMap.get("HOME_ID"),
existingResiCategories);
ResiImportCategoryData newOne = new ResiImportCategoryData(existingResiMap.get("AGENCY_ID"),
newResiMap.get("GRID_ID"),
newResiMap.get("VILLAGE_ID"),
newResiMap.get("BUILD_ID"),
newResiMap.get("UNIT_ID"),
newResiMap.get("HOME_ID"),
newResiCategories);
return new ResiImportChangedData(oldOne, newOne);
}
/**
* 类别变更的居民信息封装
* @param existingResiMap
* @param newResiMap
* @return
*/
private ResiImportChangedData getResiImportCategoryChangedData(Map<String, String> existingResiMap, Map<String, String> newResiMap) {
// 发生变化的类别列明
HashMap<String, String> oldCategories = new HashMap<>();
HashMap<String, String> newCategories = new HashMap<>();
List<String> categoryColumnNames = resiCategoryItemsCache.get();
for (String categoryColumnName : categoryColumnNames) {
String existingColumnValue = existingResiMap.get(categoryColumnName);
String newColumnValue = newResiMap.get(categoryColumnName);
if (StringUtils.isAllBlank(existingColumnValue, newColumnValue)) {
// 都为空,则没发生变化
continue;
} else if (StringUtils.isNoneBlank(existingColumnValue, newColumnValue)) {
// 都不为空,则执行比较
if (!existingColumnValue.equals(newColumnValue)) {
oldCategories.put(categoryColumnName, existingColumnValue);
newCategories.put(categoryColumnName, newColumnValue);
continue;
}
} else {
// 一个为空一个不为空,则发生变化
oldCategories.put(categoryColumnName, existingColumnValue);
newCategories.put(categoryColumnName, newColumnValue);
}
}
if (oldCategories.size() == 0) {
return null;
}
ResiImportCategoryData oldOne = new ResiImportCategoryData(
existingResiMap.get("AGENCY_ID"),
existingResiMap.get("GRID_ID"),
existingResiMap.get("VILLAGE_ID"),
existingResiMap.get("BUILD_ID"),
existingResiMap.get("UNIT_ID"),
existingResiMap.get("HOME_ID"),
oldCategories);
ResiImportCategoryData newOne = new ResiImportCategoryData(existingResiMap.get("AGENCY_ID"),
newResiMap.get("GRID_ID"),
newResiMap.get("VILLAGE_ID"),
newResiMap.get("BUILD_ID"),
newResiMap.get("UNIT_ID"),
newResiMap.get("HOME_ID"),
newCategories);
return new ResiImportChangedData(oldOne, newOne);
}
}

10
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -560,4 +560,14 @@
ORDER BY CREATED_TIME DESC
</select>
<!--查询居民信息(map格式)-->
<select id="selectResiInfoMap" resultType="java.util.Map">
select * from ic_resi_user
<where>
<if test="idCard != null and idCard != ''">
ID_CARD=#{idCard}
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save