|
|
@ -8,6 +8,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.constant.StrConstant; |
|
|
|
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; |
|
|
|
import com.epmet.commons.tools.dto.result.OptionResultDTO; |
|
|
|
import com.epmet.commons.tools.enums.OrgLevelEnum; |
|
|
|
import com.epmet.commons.tools.enums.OrgTypeEnum; |
|
|
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
@ -23,6 +24,7 @@ import com.epmet.dao.IcBuildingDao; |
|
|
|
import com.epmet.dto.CustomerAgencyDTO; |
|
|
|
import com.epmet.dto.CustomerGridDTO; |
|
|
|
import com.epmet.dto.form.ImportTaskCommonFormDTO; |
|
|
|
import com.epmet.dto.form.NeighborHoodOptionFormDTO; |
|
|
|
import com.epmet.dto.form.yt.CommunityBuildingManagerPageFormDTO; |
|
|
|
import com.epmet.dto.result.CommunityBuildingManagerDTO; |
|
|
|
import com.epmet.dto.result.UploadImgResultDTO; |
|
|
@ -34,13 +36,12 @@ import com.epmet.excel.yt.CommunityBuildingManagerImportExcelData; |
|
|
|
import com.epmet.excel.yt.IcPropertyManagementImportExcelData; |
|
|
|
import com.epmet.feign.EpmetCommonServiceOpenFeignClient; |
|
|
|
import com.epmet.feign.OssFeignClient; |
|
|
|
import com.epmet.service.CommunityBuildingManagerService; |
|
|
|
import com.epmet.service.CustomerAgencyService; |
|
|
|
import com.epmet.service.CustomerGridService; |
|
|
|
import com.epmet.service.*; |
|
|
|
import com.epmet.utils.ImportTaskUtils; |
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.collections4.MapUtils; |
|
|
|
import org.apache.commons.fileupload.FileItem; |
|
|
|
import org.apache.commons.fileupload.disk.DiskFileItemFactory; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
@ -57,10 +58,8 @@ import java.io.IOException; |
|
|
|
import java.io.OutputStream; |
|
|
|
import java.nio.file.Files; |
|
|
|
import java.nio.file.Path; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.UUID; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* 楼长单元长信息表(烟台) |
|
|
@ -77,7 +76,9 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient; |
|
|
|
@Autowired |
|
|
|
private OssFeignClient ossFeignClient; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private CustomerGridService customerGridService; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 列表分页查询 |
|
|
@ -260,16 +261,23 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
@Async |
|
|
|
@Override |
|
|
|
public void execAsyncExcelImport(Path filePath, String importTaskId) { |
|
|
|
String staffId = null; |
|
|
|
String staffId = EpmetRequestHolder.getLoginUserId(); |
|
|
|
String customerId = EpmetRequestHolder.getLoginUserCustomerId(); |
|
|
|
// 当前登录用户缓存信息
|
|
|
|
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, staffId); |
|
|
|
// 当前登录用户所属组织信息
|
|
|
|
CustomerAgencyDTO community = SpringContextUtils.getBean(CustomerAgencyService.class).get(staffInfoCacheResult.getAgencyId()); |
|
|
|
String streetId = community.getPid(); |
|
|
|
// 社区上级街道信息
|
|
|
|
CustomerAgencyDTO street = SpringContextUtils.getBean(CustomerAgencyService.class).get(streetId); |
|
|
|
String districtId = street.getPid(); |
|
|
|
|
|
|
|
//查询当前社区下的网格列表
|
|
|
|
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(); |
|
|
|
try { |
|
|
|
staffId = EpmetRequestHolder.getLoginUserId(); |
|
|
|
String customerId = EpmetRequestHolder.getLoginUserCustomerId(); |
|
|
|
CustomerStaffInfoCacheResult staffInfoCacheResult=CustomerStaffRedis.getStaffInfo(customerId,staffId); |
|
|
|
// todo
|
|
|
|
String districtId=""; |
|
|
|
String streetId=""; |
|
|
|
String uuid= IdWorker.getIdStr(); |
|
|
|
CommunityBuildingManagerImportListener listener = new CommunityBuildingManagerImportListener(customerId,staffId,staffInfoCacheResult.getAgencyId(),districtId,streetId,uuid, |
|
|
|
CommunityBuildingManagerImportListener listener = new CommunityBuildingManagerImportListener(gridMap,customerId,staffId,staffInfoCacheResult.getAgencyId(),districtId,streetId,uuid, |
|
|
|
SpringContextUtils.getBean(CommunityBuildingManagerServiceImpl.class)); |
|
|
|
|
|
|
|
EasyExcel.read(filePath.toFile(), CommunityBuildingManagerImportExcelData.class, listener).headRowNumber(1).sheet(0).doRead(); |
|
|
@ -362,7 +370,8 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
* @param excelDataList |
|
|
|
* @param listener |
|
|
|
*/ |
|
|
|
public void handleImportExcelData(String customerId, |
|
|
|
public void handleImportExcelData(Map<String, String> gridMap, |
|
|
|
String customerId, |
|
|
|
String staffId, |
|
|
|
String agencyId, |
|
|
|
String districtId, |
|
|
@ -377,50 +386,62 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi |
|
|
|
CommunityBuildingManagerEntity entity = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerEntity.class); |
|
|
|
entity.setDistrictId(districtId); |
|
|
|
entity.setStreetId(streetId); |
|
|
|
//查询当前社区下的网格列表
|
|
|
|
|
|
|
|
// 所属网格
|
|
|
|
String gridId = ""; |
|
|
|
if (StringUtils.isBlank(gridId)) { |
|
|
|
if (MapUtils.isEmpty(gridMap) || !gridMap.containsKey(dto.getGridName()) || StringUtils.isBlank(gridMap.get(dto.getGridName()))) { |
|
|
|
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class); |
|
|
|
errorRow.setErrorInfo("网格不存在"); |
|
|
|
listener.getErrorRows().add(errorRow); |
|
|
|
continue; |
|
|
|
} |
|
|
|
// todo
|
|
|
|
String gridId = gridMap.get(dto.getGridName()); |
|
|
|
entity.setOrgIdPath(CustomerOrgRedis.getOrgIdPath(gridId, OrgTypeEnum.GRID.getCode())); |
|
|
|
|
|
|
|
//查询当前网格下的小区
|
|
|
|
// 查询当前网格下的小区
|
|
|
|
// 所属小区
|
|
|
|
String viliageId = ""; |
|
|
|
if (StringUtils.isBlank(viliageId)) { |
|
|
|
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); |
|
|
|
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); |
|
|
|
errorRow.setErrorInfo("小区不存在"); |
|
|
|
listener.getErrorRows().add(errorRow); |
|
|
|
continue; |
|
|
|
} |
|
|
|
String viliageId = viliageMap.get(dto.getViliageName()); |
|
|
|
entity.setViliageId(viliageId); |
|
|
|
|
|
|
|
//查询当前小区下的楼栋
|
|
|
|
|
|
|
|
// 查询当前小区下的楼栋
|
|
|
|
// 所属楼栋
|
|
|
|
String buildingId = ""; |
|
|
|
if (StringUtils.isBlank(buildingId)) { |
|
|
|
List<OptionResultDTO> buildingList = SpringContextUtils.getBean(IcBuildingService.class).getBuildingOptions(viliageId); |
|
|
|
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); |
|
|
|
errorRow.setErrorInfo("楼栋不存在"); |
|
|
|
listener.getErrorRows().add(errorRow); |
|
|
|
continue; |
|
|
|
} |
|
|
|
String buildingId = buildingMap.get(dto.getBuildingName()); |
|
|
|
entity.setBuildingId(buildingId); |
|
|
|
|
|
|
|
// 所属单元
|
|
|
|
String unitId = ""; |
|
|
|
if (StringUtils.isNotBlank(dto.getUnitName())) { |
|
|
|
// 查询楼栋下的单元列表
|
|
|
|
if (StringUtils.isBlank(unitId)) { |
|
|
|
List<OptionResultDTO> unitList = SpringContextUtils.getBean(IcBuildingUnitService.class).getUnitOptions(buildingId); |
|
|
|
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); |
|
|
|
errorRow.setErrorInfo("单元不存在"); |
|
|
|
listener.getErrorRows().add(errorRow); |
|
|
|
continue; |
|
|
|
} |
|
|
|
unitId = unitMap.get(dto.getUnitName()); |
|
|
|
entity.setUnitId(unitId); |
|
|
|
} |
|
|
|
|
|
|
|