|
|
@ -15,6 +15,7 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
|
import com.epmet.commons.tools.exception.EpmetException; |
|
|
|
import com.epmet.commons.tools.exception.ExceptionUtils; |
|
|
|
import com.epmet.commons.tools.page.PageData; |
|
|
|
import com.epmet.commons.tools.redis.RedisUtils; |
|
|
|
import com.epmet.commons.tools.redis.common.CustomerOrgRedis; |
|
|
|
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; |
|
|
|
import com.epmet.commons.tools.utils.*; |
|
|
@ -23,6 +24,7 @@ import com.epmet.dao.CommunityBuildingManagerDao; |
|
|
|
import com.epmet.dao.IcBuildingDao; |
|
|
|
import com.epmet.dto.CustomerAgencyDTO; |
|
|
|
import com.epmet.dto.CustomerGridDTO; |
|
|
|
import com.epmet.dto.IcBuildingDTO; |
|
|
|
import com.epmet.dto.form.ImportTaskCommonFormDTO; |
|
|
|
import com.epmet.dto.form.NeighborHoodOptionFormDTO; |
|
|
|
import com.epmet.dto.form.yt.CommunityBuildingManagerPageFormDTO; |
|
|
@ -78,7 +80,8 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
private OssFeignClient ossFeignClient; |
|
|
|
@Autowired |
|
|
|
private CustomerGridService customerGridService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private RedisUtils redisUtils; |
|
|
|
|
|
|
|
/** |
|
|
|
* 列表分页查询 |
|
|
@ -276,8 +279,10 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
List<OptionResultDTO> gridList=customerGridService.getGridOption(staffInfoCacheResult.getAgencyId(), "addorupdate"); |
|
|
|
Map<String, String> gridMap = gridList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); |
|
|
|
String uuid = IdWorker.getIdStr(); |
|
|
|
String redisKey = "community_building_manager_import".concat(StrConstant.COLON).concat(uuid); |
|
|
|
|
|
|
|
try { |
|
|
|
CommunityBuildingManagerImportListener listener = new CommunityBuildingManagerImportListener(gridMap,customerId,staffId,staffInfoCacheResult.getAgencyId(),districtId,streetId,uuid, |
|
|
|
CommunityBuildingManagerImportListener listener = new CommunityBuildingManagerImportListener(gridMap,customerId,staffId,staffInfoCacheResult.getAgencyId(),districtId,streetId,redisKey, |
|
|
|
SpringContextUtils.getBean(CommunityBuildingManagerServiceImpl.class)); |
|
|
|
|
|
|
|
EasyExcel.read(filePath.toFile(), CommunityBuildingManagerImportExcelData.class, listener).headRowNumber(1).sheet(0).doRead(); |
|
|
@ -355,8 +360,8 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
// todo 删除 网格缓存、小区缓存、楼栋缓存、单元缓存
|
|
|
|
|
|
|
|
//删除小区缓存、楼栋缓存、单元缓存
|
|
|
|
redisUtils.deleteByPrex(redisKey); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -381,6 +386,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
CommunityBuildingManagerImportListener listener) { |
|
|
|
List<CommunityBuildingManagerEntity> insertList = new ArrayList<>(); |
|
|
|
List<CommunityBuildingManagerEntity> updateList = new ArrayList<>(); |
|
|
|
List<IcBuildingDTO> buildingUpdateList=new ArrayList<>(); |
|
|
|
for (CommunityBuildingManagerDTO dto : excelDataList) { |
|
|
|
try { |
|
|
|
CommunityBuildingManagerEntity entity = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerEntity.class); |
|
|
@ -399,12 +405,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
|
|
|
|
// 查询当前网格下的小区
|
|
|
|
// 所属小区
|
|
|
|
NeighborHoodOptionFormDTO neighborHoodOptionFormDTO = new NeighborHoodOptionFormDTO(); |
|
|
|
neighborHoodOptionFormDTO.setCustomerId(customerId); |
|
|
|
neighborHoodOptionFormDTO.setStaffId(staffId); |
|
|
|
neighborHoodOptionFormDTO.setAgencyId(agencyId); |
|
|
|
neighborHoodOptionFormDTO.setGridId(gridId); |
|
|
|
List<OptionResultDTO> viliageList = SpringContextUtils.getBean(IcNeighborHoodService.class).queryNeighborHoodOptions(neighborHoodOptionFormDTO); |
|
|
|
List<OptionResultDTO> viliageList =queryViliageList(customerId,staffId,agencyId,gridId,rediPrex); |
|
|
|
Map<String, String> viliageMap = viliageList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); |
|
|
|
if (MapUtils.isEmpty(viliageMap) || !viliageMap.containsKey(dto.getViliageName()) || StringUtils.isBlank(viliageMap.get(dto.getViliageName()))) { |
|
|
|
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class); |
|
|
@ -418,7 +419,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
|
|
|
|
// 查询当前小区下的楼栋
|
|
|
|
// 所属楼栋
|
|
|
|
List<OptionResultDTO> buildingList = SpringContextUtils.getBean(IcBuildingService.class).getBuildingOptions(viliageId); |
|
|
|
List<OptionResultDTO> buildingList=queryBuildingList(viliageId,rediPrex); |
|
|
|
Map<String, String> buildingMap = buildingList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); |
|
|
|
if (MapUtils.isEmpty(buildingMap) || !buildingMap.containsKey(dto.getBuildingName()) || StringUtils.isBlank(buildingMap.get(dto.getBuildingName()))) { |
|
|
|
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class); |
|
|
@ -433,7 +434,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
String unitId = ""; |
|
|
|
if (StringUtils.isNotBlank(dto.getUnitName())) { |
|
|
|
// 查询楼栋下的单元列表
|
|
|
|
List<OptionResultDTO> unitList = SpringContextUtils.getBean(IcBuildingUnitService.class).getUnitOptions(buildingId); |
|
|
|
List<OptionResultDTO> unitList=queryUnitList(buildingId,rediPrex); |
|
|
|
Map<String, String> unitMap = unitList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); |
|
|
|
if (MapUtils.isEmpty(unitMap) || !unitMap.containsKey(dto.getUnitName()) || StringUtils.isBlank(unitMap.get(dto.getUnitName()))) { |
|
|
|
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class); |
|
|
@ -442,8 +443,8 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
continue; |
|
|
|
} |
|
|
|
unitId = unitMap.get(dto.getUnitName()); |
|
|
|
entity.setUnitId(unitId); |
|
|
|
} |
|
|
|
entity.setUnitId(unitId); |
|
|
|
|
|
|
|
LambdaQueryWrapper<CommunityBuildingManagerEntity> countQuery = new LambdaQueryWrapper<>(); |
|
|
|
countQuery.eq(CommunityBuildingManagerEntity::getType, entity.getType()) |
|
|
@ -457,6 +458,17 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
entity.setId(origin.getId()); |
|
|
|
updateList.add(entity); |
|
|
|
} |
|
|
|
// 同步更新至ic_building
|
|
|
|
IcBuildingDTO icBuildingDTO = new IcBuildingDTO(); |
|
|
|
icBuildingDTO.setId(entity.getBuildingId()); |
|
|
|
icBuildingDTO.setBuildingLeaderMobile(entity.getPhone()); |
|
|
|
icBuildingDTO.setBuildingLeaderIdCard(entity.getIdCard()); |
|
|
|
icBuildingDTO.setBuildingLeaderType(entity.getType()); |
|
|
|
icBuildingDTO.setBuildingLeaderName(entity.getName()); |
|
|
|
icBuildingDTO.setUpdatedBy(staffId); |
|
|
|
icBuildingDTO.setUpdatedTime(new Date()); |
|
|
|
buildingUpdateList.add(icBuildingDTO); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class); |
|
|
|
errorRow.setErrorInfo("数据处理异常"); |
|
|
@ -466,6 +478,49 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
// 同步到ic_building
|
|
|
|
this.insertBatch(insertList); |
|
|
|
this.updateBatchById(updateList); |
|
|
|
SpringContextUtils.getBean(IcBuildingService.class).updateBuildingLeader(buildingUpdateList); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private List<OptionResultDTO> queryViliageList(String customerId, String staffId, String agencyId, String gridId, String rediPrex) { |
|
|
|
String redisKey = rediPrex.concat(StrConstant.COLON).concat("viliage_list").concat(StrConstant.COLON).concat(gridId); |
|
|
|
List<OptionResultDTO> viliageList = redisUtils.lrange(redisKey, NumConstant.ZERO, NumConstant.ONE_NEG, OptionResultDTO.class); |
|
|
|
if (!CollectionUtils.isEmpty(viliageList)) { |
|
|
|
return viliageList; |
|
|
|
} |
|
|
|
NeighborHoodOptionFormDTO neighborHoodOptionFormDTO = new NeighborHoodOptionFormDTO(); |
|
|
|
neighborHoodOptionFormDTO.setCustomerId(customerId); |
|
|
|
neighborHoodOptionFormDTO.setStaffId(staffId); |
|
|
|
neighborHoodOptionFormDTO.setAgencyId(agencyId); |
|
|
|
neighborHoodOptionFormDTO.setGridId(gridId); |
|
|
|
List<OptionResultDTO> resultList = SpringContextUtils.getBean(IcNeighborHoodService.class).queryNeighborHoodOptions(neighborHoodOptionFormDTO); |
|
|
|
// 有效时间1小时
|
|
|
|
redisUtils.leftPush(redisKey, resultList, RedisUtils.HOUR_ONE_EXPIRE); |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
|
private List<OptionResultDTO> queryBuildingList(String viliageId, String rediPrex) { |
|
|
|
String redisKey = rediPrex.concat(StrConstant.COLON).concat("building_List").concat(StrConstant.COLON).concat(viliageId); |
|
|
|
List<OptionResultDTO> buildingList = redisUtils.lrange(redisKey, NumConstant.ZERO, NumConstant.ONE_NEG, OptionResultDTO.class); |
|
|
|
if (!CollectionUtils.isEmpty(buildingList)) { |
|
|
|
return buildingList; |
|
|
|
} |
|
|
|
List<OptionResultDTO> resultList = SpringContextUtils.getBean(IcBuildingService.class).getBuildingOptions(viliageId); |
|
|
|
// 有效时间1小时
|
|
|
|
redisUtils.leftPush(redisKey, resultList, RedisUtils.HOUR_ONE_EXPIRE); |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
|
private List<OptionResultDTO> queryUnitList(String buildingId, String rediPrex) { |
|
|
|
String redisKey = rediPrex.concat(StrConstant.COLON).concat("unit_List").concat(StrConstant.COLON).concat(buildingId); |
|
|
|
List<OptionResultDTO> unitList = redisUtils.lrange(redisKey, NumConstant.ZERO, NumConstant.ONE_NEG, OptionResultDTO.class); |
|
|
|
if (!CollectionUtils.isEmpty(unitList)) { |
|
|
|
return unitList; |
|
|
|
} |
|
|
|
List<OptionResultDTO> resultList = SpringContextUtils.getBean(IcBuildingUnitService.class).getUnitOptions(buildingId); |
|
|
|
// 有效时间1小时
|
|
|
|
redisUtils.leftPush(redisKey, resultList, RedisUtils.HOUR_ONE_EXPIRE); |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|