Browse Source

楼长单元1

master
yinzuomei 2 years ago
parent
commit
6f25c600ba
  1. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/CommunityBuildingManagerImportListener.java
  2. 69
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/CommunityBuildingManagerImportListener.java

@ -17,6 +17,7 @@ import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Description * @Description
@ -28,6 +29,7 @@ public class CommunityBuildingManagerImportListener implements ReadListener<Comm
// 最大条数阈值 // 最大条数阈值
public static final int MAX_THRESHOLD = 200; public static final int MAX_THRESHOLD = 200;
private Map<String, String> gridMap;
private String customerId; private String customerId;
private String staffId; private String staffId;
private String agencyId; private String agencyId;
@ -40,7 +42,8 @@ public class CommunityBuildingManagerImportListener implements ReadListener<Comm
// 要插入的数据 // 要插入的数据
private List<CommunityBuildingManagerDTO> excelDataList = new ArrayList<>(); private List<CommunityBuildingManagerDTO> excelDataList = new ArrayList<>();
public CommunityBuildingManagerImportListener(String customerId, String staffId, String agencyId,String districtId,String streetId,String rediPrex,CommunityBuildingManagerServiceImpl communityBuildingManagerService) { public CommunityBuildingManagerImportListener(Map<String, String> gridMap,String customerId, String staffId, String agencyId, String districtId, String streetId, String rediPrex, CommunityBuildingManagerServiceImpl communityBuildingManagerService) {
this.gridMap=gridMap;
this.customerId = customerId; this.customerId = customerId;
this.staffId = staffId; this.staffId = staffId;
this.agencyId=agencyId; this.agencyId=agencyId;
@ -73,7 +76,7 @@ public class CommunityBuildingManagerImportListener implements ReadListener<Comm
if (e instanceof ValidateException) { if (e instanceof ValidateException) {
errorMsg = ((ValidateException) e).getMsg(); errorMsg = ((ValidateException) e).getMsg();
} else if (e instanceof EpmetException) { } else if (e instanceof EpmetException) {
errorMsg = ((EpmetException) e).getInternalMsg(); errorMsg = ((EpmetException) e).getMsg();
} else { } else {
errorMsg = "未知错误"; errorMsg = "未知错误";
log.error("【楼长单元长ic_property_management导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); log.error("【楼长单元长ic_property_management导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
@ -96,7 +99,7 @@ public class CommunityBuildingManagerImportListener implements ReadListener<Comm
private void execPersist() { private void execPersist() {
try { try {
if (CollectionUtils.isNotEmpty(excelDataList)) { if (CollectionUtils.isNotEmpty(excelDataList)) {
communityBuildingManagerService.handleImportExcelData(customerId,staffId,agencyId, districtId, streetId,rediPrex,excelDataList,this); communityBuildingManagerService.handleImportExcelData(gridMap,customerId,staffId,agencyId, districtId, streetId,rediPrex,excelDataList,this);
} }
} finally { } finally {
excelDataList.clear(); excelDataList.clear();

69
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java

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

Loading…
Cancel
Save