Browse Source

Merge branch 'dev_ic_platform' into develop

master
wangxianzhang 4 years ago
parent
commit
74cc2e3f48
  1. 3
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  2. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
  3. 12
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java
  4. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java
  5. 19
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  6. 94
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  7. 26
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

3
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -522,4 +522,7 @@ public interface GovOrgOpenFeignClient {
@PostMapping("/gov/org/building/buildinglistbyids") @PostMapping("/gov/org/building/buildinglistbyids")
Result<List<BuildingResultDTO>> buildingListByIds(@RequestBody List<String> buildingIdList); Result<List<BuildingResultDTO>> buildingListByIds(@RequestBody List<String> buildingIdList);
@PostMapping("/gov/org/icneighborhood/getlistbyids")
Result<List<IcNeighborHoodDTO>> getListByIds(@RequestBody List<String> ids);
} }

5
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java

@ -320,6 +320,11 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "buildingListByIds", buildingIdList); return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "buildingListByIds", buildingIdList);
} }
@Override
public Result<List<IcNeighborHoodDTO>> getListByIds(List<String> ids) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getListByIds", ids);
}
@Override @Override
public Result<String> selectPidsByGridId(String gridId) { public Result<String> selectPidsByGridId(String gridId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId); return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId);

12
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java

@ -95,4 +95,16 @@ public class IcNeighborHoodController {
return new Result<List<OptionResultDTO>>().ok(icNeighborHoodService.getNeighborHoodOptions(dto.getAgencyId(), dto.getGridId())); return new Result<List<OptionResultDTO>>().ok(icNeighborHoodService.getNeighborHoodOptions(dto.getAgencyId(), dto.getGridId()));
} }
/**
* @Description 通过ID查询小区信息
* @Param ids
* @Return {@link Result< List< IcNeighborHoodDTO>>}
* @Author zhaoqifeng
* @Date 2021/11/8 10:46
*/
@PostMapping("getlistbyids")
public Result<List<IcNeighborHoodDTO>> getListByIds(@RequestBody List<String> ids) {
return new Result<List<IcNeighborHoodDTO>>().ok(icNeighborHoodService.getListByIds(ids));
}
} }

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java

@ -103,4 +103,13 @@ public interface IcNeighborHoodService extends BaseService<IcNeighborHoodEntity>
* @Date 2021/10/26 14:32 * @Date 2021/10/26 14:32
*/ */
List<OptionResultDTO> getNeighborHoodOptions(String agencyId, String gridId); List<OptionResultDTO> getNeighborHoodOptions(String agencyId, String gridId);
/**
* @Description 通过ID查询小区信息
* @Param ids
* @Return {@link List< IcNeighborHoodDTO>}
* @Author zhaoqifeng
* @Date 2021/11/8 10:45
*/
List<IcNeighborHoodDTO> getListByIds(List<String> ids);
} }

19
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java

@ -134,4 +134,23 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
/**
* @param ids
* @Description 通过ID查询小区信息
* @Param ids
* @Return {@link List< IcNeighborHoodDTO>}
* @Author zhaoqifeng
* @Date 2021/11/8 10:45
*/
@Override
public List<IcNeighborHoodDTO> getListByIds(List<String> ids) {
if (CollectionUtils.isEmpty(ids)) {
return Collections.emptyList();
}
LambdaQueryWrapper<IcNeighborHoodEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.in(IcNeighborHoodEntity::getId, ids);
List<IcNeighborHoodEntity> list = baseDao.selectList(wrapper);
return ConvertUtils.sourceToTarget(list, IcNeighborHoodDTO.class);
}
} }

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

@ -61,6 +61,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>(); 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<Map<String, List<SkipedRow>>> skipedRows = new ThreadLocal<>();
// 导入数字赋能平台居民信息form_code
public static final String IMPORT_IC_RESI_FORM_CODE = "resi_base_info";
@Autowired @Autowired
private LoginUserUtil loginUserUtil; private LoginUserUtil loginUserUtil;
@ -183,7 +186,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
// 上传主表信息 // 上传主表信息
importIcResiBaseInfoFromExcel(excelPathName, IcResiUserTableEnums.IC_RESI_USER.getSheetNo(), IcResiUserTableEnums.IC_RESI_USER.getHeadRowNo(), importIcResiBaseInfoFromExcel(excelPathName, IcResiUserTableEnums.IC_RESI_USER.getSheetNo(), IcResiUserTableEnums.IC_RESI_USER.getHeadRowNo(),
currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnums.IC_RESI_USER.getTableName()); currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnums.IC_RESI_USER.getTableName());
// 上传附表信息 // 上传附表信息
for (IcResiUserTableEnums sheet : IcResiUserTableEnums.values()) { for (IcResiUserTableEnums sheet : IcResiUserTableEnums.values()) {
@ -257,7 +260,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
Map<Integer, List<String>> headers = mergeHead(headList); Map<Integer, List<String>> headers = mergeHead(headList);
// 查询form相关信息 // 查询form相关信息
List<FormItem> customerItems = listFormItems("resi_base_info"); List<FormItem> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE);
// 清洗表头数据 // 清洗表头数据
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems);
@ -306,7 +309,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
Map<Integer, List<String>> headers = mergeHead(headList); Map<Integer, List<String>> headers = mergeHead(headList);
// 查询form相关信息 // 查询form相关信息
List<FormItem> customerItems = listFormItems("resi_base_info"); List<FormItem> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE);
// 清洗表头数据 // 清洗表头数据
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems);
@ -361,27 +364,34 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
columnAndValues.put("AGENCY_ID", currUserAgencyId); columnAndValues.put("AGENCY_ID", currUserAgencyId);
columnAndValues.put("PIDS", currUserAgencyPids); columnAndValues.put("PIDS", currUserAgencyPids);
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId());
columnAndValues.put("CREATED_BY", currentUserId);
columnAndValues.put("UPDATED_BY", currentUserId); columnAndValues.put("UPDATED_BY", currentUserId);
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", ""));
// 验证居民信息是否存在 // 验证居民信息是否存在
String idCard = columnAndValues.get("ID_CARD"); String idCard = columnAndValues.get("ID_CARD");
LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>();
idCardQuery.eq(IcResiUserEntity::getIdCard, idCard); idCardQuery.eq(IcResiUserEntity::getIdCard, idCard);
IcResiUserEntity resiBaseInfo = icResiUserDao.selectOne(idCardQuery);
if (icResiUserDao.selectCount(idCardQuery) > 0) { if (resiBaseInfo != null) {
//log.info("身份证号为【{}】的居民信息已存在,跳过导入", idCard); icResiUserDao.upTable(tableName, resiBaseInfo.getId(), columnAndValues);
SkipedRow skipedRow = new SkipedRow(); } else {
skipedRow.setName(columnAndValues.get("NAME")); columnAndValues.put("CREATED_BY", currentUserId);
skipedRow.setIdCard(idCard); columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", ""));
skipedRow.setInfo("身份证号已存在,跳过导入"); icResiUserDao.add(tableName, columnAndValues);
skipedRow.setTableName(tableName);
skipedRows.get().get(IcResiUserTableEnums.IC_RESI_USER.getTableName()).add(skipedRow);
continue;
} }
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;
//}
} catch (Exception e) { } catch (Exception e) {
String errorMsg; String errorMsg;
if (e instanceof RenException) { if (e instanceof RenException) {
@ -440,32 +450,42 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
String icResiId = icResiUserBaseInfo.getId(); String icResiId = icResiUserBaseInfo.getId();
// 验证党员信息是否存在 //if (CollectionUtils.isNotEmpty(icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName))) {
if (CollectionUtils.isNotEmpty(icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName))) { // log.info("身份证号为【{}】的居民【{}】信息已存在,跳过导入", idCard, targetTableName);
log.info("身份证号为【{}】的居民【{}】信息已存在,跳过导入", idCard, targetTableName); //
// SkipedRow skipedRow = new SkipedRow();
SkipedRow skipedRow = new SkipedRow(); // skipedRow.setName(columnAndValues.get("NAME"));
skipedRow.setName(columnAndValues.get("NAME")); // skipedRow.setIdCard(columnAndValues.get("ID_CARD"));
skipedRow.setIdCard(columnAndValues.get("ID_CARD")); // skipedRow.setInfo("信息已存在,跳过导入");
skipedRow.setInfo("信息已存在,跳过导入"); // skipedRow.setTableName(targetTableName);
skipedRow.setTableName(targetTableName); // skipedRows.get().get(targetTableName).add(skipedRow);
skipedRows.get().get(targetTableName).add(skipedRow); //
// continue;
continue; //}
}
columnAndValues.put("IC_RESI_USER", icResiId); columnAndValues.put("IC_RESI_USER", icResiId);
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId());
columnAndValues.put("CREATED_BY", currentUserId);
columnAndValues.put("UPDATED_BY", currentUserId); columnAndValues.put("UPDATED_BY", currentUserId);
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", ""));
// 移除excel中存在,但是数据库表中不存在的无效列,方式sql语法错误
columnAndValues = removeNeedlessColumns(columnAndValues); columnAndValues = removeNeedlessColumns(columnAndValues);
icResiUserDao.add(targetTableName, columnAndValues); // 更新主表的人员类型及更新时间
updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnums.getObjectByTableName(targetTableName)), icResiId); updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnums.getObjectByTableName(targetTableName)), icResiId);
// 验证附加信息是否存在
List<Map<String, Object>> subInfos = icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName);
if (CollectionUtils.isNotEmpty(subInfos)) {
Map<String, Object> subInfo = subInfos.get(0);
// 附加信息存在,更新附加表内容
icResiUserDao.upTable(targetTableName, subInfo.get("ID").toString(), columnAndValues);
} else {
// 新增附加表信息
columnAndValues.put("CREATED_BY", currentUserId);
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", ""));
icResiUserDao.add(targetTableName, columnAndValues);
}
} catch (Exception e) { } catch (Exception e) {
String errorMsg; String errorMsg;
if (e instanceof RenException) { if (e instanceof RenException) {
@ -517,8 +537,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @param target 要将数据放到哪个对象中 * @param target 要将数据放到哪个对象中
*/ */
private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> headerColumnWrapper, Map<Integer, String> row, private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> headerColumnWrapper, Map<Integer, String> row,
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel,
LinkedHashMap<String, String> target) { LinkedHashMap<String, String> target) {
boolean interupt = false; boolean interupt = false;
@ -654,7 +674,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @return * @return
*/ */
private Map<String, ColumnWrapper> convertExcelHeaders2DBColumnWrappers(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders, private Map<String, ColumnWrapper> convertExcelHeaders2DBColumnWrappers(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders,
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) { List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) {
// HashMap<String, List<ColumnWrapper>> tables = new HashMap<>(); // HashMap<String, List<ColumnWrapper>> tables = new HashMap<>();
Map<String, ColumnWrapper> columns = new LinkedHashMap<>(combinedHeaders.size()); Map<String, ColumnWrapper> columns = new LinkedHashMap<>(combinedHeaders.size());
@ -906,7 +926,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
list.addAll(entry.getValue()); list.addAll(entry.getValue());
} }
list.forEach(row -> row.setSheetName(IcResiUserTableEnums.getObjectByTableName(row.tableName).getTableComment())); list.forEach(row -> {System.out.println(row.getTableName());row.setSheetName(IcResiUserTableEnums.getObjectByTableName(row.tableName).getTableComment());});
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的条目列表","导入失败"), Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的条目列表","导入失败"),
ErrorRow.class, list); ErrorRow.class, list);

26
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -43,6 +43,7 @@ import com.epmet.dao.IcResiUserDao;
import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.IcHouseDTO; import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.IcResiUserEntity; import com.epmet.entity.IcResiUserEntity;
@ -545,11 +546,32 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
Integer no = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); Integer no = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
PageInfo<SearchByNameResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.searchByName(formDTO.getName(), staffInfo.getAgencyId(), no)); PageInfo<SearchByNameResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.searchByName(formDTO.getName(), staffInfo.getAgencyId(), no));
List<SearchByNameResultDTO> result = pageInfo.getList(); List<SearchByNameResultDTO> result = pageInfo.getList();
// 查询小区,楼号,网格
// TODO
if (CollectionUtils.isEmpty(result)){ if (CollectionUtils.isEmpty(result)){
return new ArrayList<>(); return new ArrayList<>();
} }
// 查询小区,楼号,网格
Result<List<AllGridsByUserIdResultDTO>> gridResult = govOrgOpenFeignClient.getGridListByGridIds(result.stream().map(SearchByNameResultDTO::getGridId).collect(Collectors.toList()));
if (!gridResult.success()) {
throw new RenException(gridResult.getCode(),gridResult.getMsg());
}
Map<String, String> gridMap = gridResult.getData().stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, AllGridsByUserIdResultDTO::getGridName));
Result<List<IcNeighborHoodDTO>> neighborHoodResult = govOrgOpenFeignClient.getListByIds(result.stream().map(SearchByNameResultDTO::getNeighborHoodId).collect(Collectors.toList()));
if (!neighborHoodResult.success()) {
throw new RenException(neighborHoodResult.getCode(),neighborHoodResult.getMsg());
}
Map<String, String> neighborHoodMap = neighborHoodResult.getData().stream().collect(Collectors.toMap(IcNeighborHoodDTO::getId, IcNeighborHoodDTO::getNeighborHoodName));
Result<List<BuildingResultDTO>> buildResult = govOrgOpenFeignClient.buildingListByIds(result.stream().map(SearchByNameResultDTO::getBuildId).collect(Collectors.toList()));
if (!buildResult.success()) {
throw new RenException(buildResult.getCode(),buildResult.getMsg());
}
Map<String, String> buildMap = buildResult.getData().stream().collect(Collectors.toMap(BuildingResultDTO::getBuildingId, BuildingResultDTO::getBuildingName));
result.forEach(item -> {
item.setGridName(gridMap.get(item.getGridId()));
item.setNeighborHoodName(neighborHoodMap.get(item.getNeighborHoodId()));
item.setBuildNum(buildMap.get(item.getBuildId()));
});
return result; return result;
} }

Loading…
Cancel
Save