Browse Source

Merge remote-tracking branch 'origin/dev_addcate_and_import' into develop

dev
yinzuomei 4 years ago
parent
commit
60659f66fc
  1. 55
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  2. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java
  3. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java
  4. 6
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java
  5. 118
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java
  6. 2
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java
  7. 6
      epmet-module/gov-org/gov-org-server/pom.xml
  8. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java
  9. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java
  10. 51
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  11. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java
  12. 65
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java
  13. 52
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java
  14. 41
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModelDTO.java
  15. 253
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java
  16. 213
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java
  17. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java
  18. 18
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  19. 62
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml
  20. 3
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java
  21. 26
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java

55
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -640,4 +640,59 @@ public class RedisKeys {
public static String getHouseInfoCacheKey(String houseId,String customerId){
return rootPrefix.concat("house:").concat(customerId).concat(":").concat(houseId);
}
/**
* @Description 临时房屋缓存key
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 9:38 上午
*/
public static String getTemporaryHouseInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryHouse:").concat(customerId).concat(":").concat(userId);
}
/**
* @Description 临时网格缓存key
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 9:38 上午
*/
public static String getTemporaryGridInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryGrid:").concat(customerId).concat(":").concat(userId);
}
/**
* @Description 临时小区缓存key
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 9:39 上午
*/
public static String getTemporaryNeighborHoodInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryNeighborHood:").concat(customerId).concat(":").concat(userId);
}
/**
* @Description 临时楼栋缓存key
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 9:39 上午
*/
public static String getTemporaryBuildingInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryBuilding:").concat(customerId).concat(":").concat(userId);
}
/**
* @Description 临时楼栋单元缓存key
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 1:54 下午
*/
public static String getTemporaryBuildingUnitInfoCacheKey(String customerId,String userId){
return rootPrefix.concat("temporary:").concat("temporaryBuildingUnit:").concat(customerId).concat(":").concat(userId);
}
}

7
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java

@ -20,6 +20,7 @@ package com.epmet.controller;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelPoiUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
@ -27,10 +28,8 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.AddSocietyOrgFormDTO;
import com.epmet.dto.form.EditSocietyOrgFormDTO;
import com.epmet.dto.form.GetListPlaceOrgFormDTO;
import com.epmet.dto.form.GetListSocietyOrgFormDTO;
import com.epmet.dto.form.demand.ServiceQueryFormDTO;
import com.epmet.dto.result.GetListPlaceOrgResultDTO;
import com.epmet.dto.result.GetListSocietyOrgResultDTO;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.excel.IcSocietyOrgExcel;
@ -164,9 +163,9 @@ public class IcSocietyOrgController {
Collections.sort(resultList);
String subList = resultList.stream().map(String::valueOf).collect(Collectors.joining("、"));
log.warn(str + "第" + subList + "行未成功!");
return new Result().error(9999, str + "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str + "第" + subList + "行未成功!");
}
return new Result().ok(str);
}
}
}

7
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java

@ -24,6 +24,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.dto.TokenDto;
@ -267,7 +268,7 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl<IcPartyActivityD
if (CollectionUtils.isEmpty(result)) {
Collections.sort(numList);
String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、"));
return new Result().error(9999, "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "第" + subList + "行未成功!");
}
List<IcPartyActivityEntity> list = result.stream().map(item -> {
@ -296,7 +297,7 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl<IcPartyActivityD
Collections.sort(numList);
String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、"));
log.warn(str + "第" + subList + "行未成功!");
return new Result().error(9999, str + "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str + "第" + subList + "行未成功!");
}
return new Result().ok(str);
}
@ -422,4 +423,4 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl<IcPartyActivityD
formDTO.setEndTime(DateUtils.parse(end.concat(" 23:59:59"), DateUtils.DATE_TIME_PATTERN));
}
}
}

6
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java

@ -375,7 +375,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl<IcPartyUnitDao, IcPa
if (CollectionUtils.isEmpty(result)) {
Collections.sort(numList);
String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、"));
return new Result().error(9999, "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "第" + subList + "行未成功!");
}
List<IcPartyUnitEntity> list = result.stream().map(item -> {
@ -405,7 +405,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl<IcPartyUnitDao, IcPa
Collections.sort(numList);
String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、"));
log.warn(str + "第" + subList + "行未成功!");
return new Result().error(9999, str + "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str + "第" + subList + "行未成功!");
}
return new Result().ok(str);
}
@ -493,4 +493,4 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl<IcPartyUnitDao, IcPa
return StringUtils.join(list, StrConstant.COMMA);
}
}
}

118
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportHouseGeneralDTO.java

@ -0,0 +1,118 @@
package com.epmet.dto;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/2/13 4:32 下午
* @DESC
*/
@Data
public class ImportHouseGeneralDTO implements Serializable {
private static final long serialVersionUID = -345610717773879687L;
/**
* 组织名ID
*/
private String agencyName;
private String agencyId;
/**
* agencyId的pid
*/
private String pid;
private String pids;
/**
* 网格名ID
*/
private String gridName;
private String gridId;
/**
* 小区名ID
*/
private String neighborHoodName;
private String neighborHoodId;
/**
* 所属楼栋ID
*/
private String buildingName;
private String buildingId;
/**
* 房屋类型
*/
private String type;
/**
* 单元数
*/
private Integer totalUnitNum = NumConstant.ONE;
/**
* 层数
*/
private Integer totalFloorNum;
/**
* 户数
*/
private Integer totalHouseNum;
/**
* 单元号ID
*/
private Integer buildingUnit;
private String buildingUnitId;
/**
* 门牌号
*/
private String doorName;
/**
* 房屋类型
*/
private String houseType;
/**
* 房屋用途
*/
private String purpose;
/**
* 是否出租
*/
private String rentFlag;
/**
* 姓名
*/
private String ownerName;
/**
* 电话
*/
private String ownerPhone;
/**
* 身份证
*/
private String ownerIdCard;
/**
* 行号
*/
private Integer num;
/**
* 房屋ID
*/
private String houseId;
}

2
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java

@ -24,7 +24,7 @@ public class ImportInfoFormDTO implements Serializable {
private String orgId;
/**
* 组织类型 agency:组织grid:网格
* 组织类型 agency:组织grid:网格neighborHood小区building楼栋
*/
@NotBlank(message = "orgType不能为空",groups = ImportInfoForm.class)
private String orgType;

6
epmet-module/gov-org/gov-org-server/pom.xml

@ -125,6 +125,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java

@ -16,4 +16,6 @@ public interface CustomerGridConstant {
String DEPT = "dept";
String GRID = "grid";
String NEIGHBORHOOD = "neighborHood";
}

3
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java

@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@ -195,7 +196,7 @@ public class BuildingController {
Collections.sort(resultList);
String subList = resultList.stream().map(String::valueOf).collect(Collectors.joining("、"));
log.warn(str + "第" + subList + "行未成功!");
return new Result().error(9999, str+"第"+subList+"行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str+"第"+subList+"行未成功!");
}
return new Result().ok(str);
}

51
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -19,6 +19,9 @@ package com.epmet.controller;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
@ -28,16 +31,17 @@ import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.IcHouseFormDTO;
import com.epmet.dto.form.IcNeighborHoodFormDTO;
import com.epmet.dto.form.ListIcNeighborHoodFormDTO;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dao.IcBuildingDao;
import com.epmet.dto.form.*;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.excel.IcHouseExcel;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.model.HouseInfoModel;
import com.epmet.model.ImportHouseInfoListener;
import com.epmet.redis.IcHouseRedis;
import com.epmet.service.HouseService;
import com.epmet.util.ExcelPoiUtils;
import lombok.extern.slf4j.Slf4j;
@ -49,6 +53,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
@ -69,6 +74,10 @@ public class HouseController implements ResultDataResolver {
@Autowired
private EpmetUserOpenFeignClient userOpenFeignClient;
@Autowired
private IcBuildingDao icBuildingDao;
@Autowired
private IcHouseRedis icHouseRedis;
@PostMapping("houselist")
@ -223,7 +232,7 @@ public class HouseController implements ResultDataResolver {
Collections.sort(resultList);
String subList = resultList.stream().map(String::valueOf).collect(Collectors.joining("、"));
log.warn(str + "第" + subList + "行未成功!");
return new Result().error(9999, str+"第"+subList+"行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str+"第"+subList+"行未成功!");
}
return new Result().ok(str);
}
@ -232,4 +241,36 @@ public class HouseController implements ResultDataResolver {
Result<List<HouseInfoDTO>> queryListHouseInfo(@RequestBody Set<String> houseIds, @RequestParam("customerId") String customerId){
return new Result<List<HouseInfoDTO>>().ok(houseService.queryListHouseInfo(houseIds,customerId));
}
@PostMapping("houseimport")
public Result houseImport(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file,
@RequestParam("orgId")String orgId,
@RequestParam("orgType")String orgType){
ImportInfoFormDTO formDTO = new ImportInfoFormDTO();
formDTO.setCustomerId(tokenDTO.getCustomerId());
formDTO.setOrgType(orgType);
formDTO.setOrgId(orgId);
formDTO.setUserId(tokenDTO.getUserId());
ExcelReader excelReader = null;
try {
InputStream inputStream = null;
try {
inputStream = file.getInputStream();
} catch (IOException e) {
return new Result<String>().error("读取文件失败");
}
excelReader = EasyExcel.read(inputStream).build();
// 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener
ReadSheet readSheet = EasyExcel.readSheet(0).head(HouseInfoModel.class)
.registerReadListener(new ImportHouseInfoListener(formDTO,icBuildingDao,icHouseRedis))
.build();
excelReader.read(readSheet);
} finally {
if (excelReader != null) {
excelReader.finish();
}
}
return new Result<>();
}
}

3
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java

@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@ -223,7 +224,7 @@ public class NeighborHoodController {
Collections.sort(resultList);
String subList = resultList.stream().map(String::valueOf).collect(Collectors.joining("、"));
log.warn(str + "第" + subList + "行未成功!");
return new Result().error(9999, str + "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str + "第" + subList + "行未成功!");
}
return new Result().ok(str);
}

65
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java

@ -19,6 +19,7 @@ package com.epmet.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.ImportHouseGeneralDTO;
import com.epmet.dto.result.BaseInfoFamilyBuildingResultDTO;
import com.epmet.dto.result.BuildingResultDTO;
import com.epmet.entity.CustomerAgencyEntity;
@ -73,4 +74,68 @@ public interface IcBuildingDao extends BaseDao<IcBuildingEntity> {
List<BuildingResultDTO> buildingListByIds(@Param("buildingIdList") List<String> buildingIdList);
IPage<BuildingResultDTO> buildingListByIds(IPage<IcBuildingEntity> page,@Param("buildingIdList") List<String> buildingIdList);
/**
* @Description 根据ID查询楼栋名
* @param orgId
* @author zxc
* @date 2022/2/13 2:32 下午
*/
String selectBuildingNameById(@Param("orgId")String orgId);
/**
* @Description 根据ID查询小区名
* @param orgId
* @author zxc
* @date 2022/2/13 4:21 下午
*/
String selectNeighborHoodNameById(@Param("orgId")String orgId);
/**
* @Description 根据ID查询网格名
* @param orgId
* @author zxc
* @date 2022/2/13 4:26 下午
*/
String selectGridNameById(@Param("orgId")String orgId);
/**
* @Description 根据ID查询组织名
* @param orgId
* @author zxc
* @date 2022/2/13 4:29 下午
*/
String selectAgencyNameById(@Param("orgId")String orgId);
/**
* @Description 查询组织下所有网格信息
* @param orgId
* @author zxc
* @date 2022/2/14 9:48 上午
*/
List<ImportHouseGeneralDTO> selectAllGridByOrgId(@Param("orgId")String orgId);
/**
* @Description 查询网格下所有的小区
* @param orgId
* @author zxc
* @date 2022/2/14 10:21 上午
*/
List<ImportHouseGeneralDTO> selectAllNeighborHoodByGridIds(@Param("orgIds")List<String> orgId);
/**
* @Description 根据小区ID查询楼栋
* @param neighborHoodId
* @author zxc
* @date 2022/2/14 1:25 下午
*/
List<ImportHouseGeneralDTO> selectAllBuildingByNeighborHoodId(@Param("neighborHoodId")String neighborHoodId);
/**
* @Description 根据楼栋ID查询楼栋单元
* @param building
* @author zxc
* @date 2022/2/14 1:58 下午
*/
List<ImportHouseGeneralDTO> selectAllBuildingUnitByBuildingId(@Param("building")String building);
}

52
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java

@ -0,0 +1,52 @@
package com.epmet.model;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
/**
* @Author zxc
* @DateTime 2022/2/13 1:26 下午
* @DESC
*/
@Data
public class HouseInfoModel {
@ExcelProperty(value = "所属组织")
private String agencyName;
@ExcelProperty(value = "所属网格")
private String gridName;
@ExcelProperty(value = "所属小区")
@Length(max=50,message = "不能超过50个字")
private String neighborHoodName;
@ExcelProperty(value = "所属楼栋")
private String buildingName;
@ExcelProperty(value = "单元号")
private Integer buildingUnit;
@ExcelProperty(value = "门牌号")
private String doorName;
@ExcelProperty(value = "房屋类型")
private String houseType;
@ExcelProperty(value = "房屋用途")
private String purpose;
@ExcelProperty(value = "出租")
private String rentFlag;
@ExcelProperty(value = "房主姓名")
private String ownerName;
@ExcelProperty(value = "房主电话")
private String ownerPhone;
@ExcelProperty(value = "房主身份证")
private String ownerIdCard;
}

41
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModelDTO.java

@ -0,0 +1,41 @@
package com.epmet.model;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
/**
* @Author zxc
* @DateTime 2022/2/13 1:26 下午
* @DESC
*/
@Data
public class HouseInfoModelDTO {
private String agencyName;
private String gridName;
private String neighborHoodName;
private String buildingName;
private Integer buildingUnit;
private String doorName;
private String houseType;
private String purpose;
private String rentFlag;
private String ownerName;
private String ownerPhone;
private String ownerIdCard;
private Integer num;
}

253
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java

@ -0,0 +1,253 @@
package com.epmet.model;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcBuildingDao;
import com.epmet.dto.ImportHouseGeneralDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.redis.IcHouseRedis;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author zxc
* @DateTime 2022/2/13 1:25 下午
* @DESC
*/
public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoModel> {
List<Integer> nums = new ArrayList<>();
Integer num = NumConstant.ZERO;
List<ImportHouseGeneralDTO> needDisposeList = new ArrayList<>();
List<ImportHouseGeneralDTO> needInsertList = new ArrayList<>();
String buildingName = null;
String neighborHoodName = null;
String gridName = null;
String agencyName = null;
Map<String, Object> gridInfos = null;
List<ImportHouseGeneralDTO> gridInfoDTOs = null;
Map<String, Object> neighborHoodInfos = null;
List<ImportHouseGeneralDTO> neighborHoodInfoDTOs = null;
Map<String, Object> buildingInfos = null;
List<ImportHouseGeneralDTO> buildingInfoDTOs = null;
Map<String, Object> buildingUnitInfos = null;
List<ImportHouseGeneralDTO> buildingUnitInfoDTOs = null;
private ImportInfoFormDTO formDTO;
private IcBuildingDao icBuildingDao;
private IcHouseRedis icHouseRedis;
public ImportHouseInfoListener(ImportInfoFormDTO formDTO,IcBuildingDao icBuildingDao, IcHouseRedis icHouseRedis){
this.formDTO = formDTO;
this.icBuildingDao = icBuildingDao;
this.icHouseRedis = icHouseRedis;
}
@Override
public void invoke(HouseInfoModel data, AnalysisContext context) {
if (null == data){
return;
}
num = num + NumConstant.ONE;
ImportHouseGeneralDTO dto = ConvertUtils.sourceToTarget(data, ImportHouseGeneralDTO.class);
dto.setNum(num);
if (formDTO.getOrgType().equals("building")){
buildingName = null == buildingName ? icBuildingDao.selectBuildingNameById(formDTO.getOrgId()) : buildingName;
// 不是本楼的
if (!data.getBuildingName().equals(buildingName)){
nums.add(num);
}else {
/**
* 1根据楼宇查询
*/
needDisposeList.add(dto);
Map<String, Object> collect = needDisposeList.stream().collect(Collectors.toMap(n -> n.getBuildingId() + "_" + n.getBuildingUnitId() + "_" + n.getDoorName(), n -> StringUtils.isNotBlank(n.getHouseId()) ? n.getHouseId() : ""));
icHouseRedis.setTemporaryCacheHouse(formDTO.getCustomerId(), collect, formDTO.getUserId());
// Map<String, Object> temporaryCacheHouses = icHouseRedis.getTemporaryCacheHouses(formDTO.getCustomerId(), formDTO.getUserId());
// TODO 等待方法
List<ImportHouseGeneralDTO> result = new ArrayList<>();
//把房屋ID不为空的行号加入nums,说明已存在
result.forEach(r -> {
if (StringUtils.isNotBlank(r.getHouseId())){
nums.add(r.getNum());
}
});
}
}else if (formDTO.getOrgType().equals("neighborHood")){
disposeNeighborHoodHouse(dto);
}else if (formDTO.getOrgType().equals("grid")){
disposeGridHouse(dto);
}else if (formDTO.getOrgType().equals("agency")){
disposeAgencyHouse(dto);
}
}
public void disposeNeighborHoodHouse(ImportHouseGeneralDTO dto){
neighborHoodName = null == neighborHoodName ? icBuildingDao.selectNeighborHoodNameById(formDTO.getOrgId()) : neighborHoodName;
//不是本小区的
if (!dto.getNeighborHoodName().equals(neighborHoodName)){
nums.add(num);
}else {
}
}
/**
* @Description 左侧树点击网格时调用
* @param dto
* @author zxc
* @date 2022/2/14 2:14 下午
*/
public void disposeGridHouse(ImportHouseGeneralDTO dto){
gridName = null == gridName ? icBuildingDao.selectGridNameById(formDTO.getOrgId()) : gridName;
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
throw new EpmetException("查询网格失败...");
}
//排除不是本网格的 gridName不一样排除,gridName一样但是agencyName不一样也得排除
if (!dto.getGridName().equals(gridName) || (!dto.getAgencyName().equals(gridInfo.getAgencyName()) && dto.getGridName().equals(gridName))){
nums.add(num);
}else {
//
dto.setGridId(formDTO.getOrgId());
dto.setAgencyId(gridInfo.getPid());
fillData(dto);
}
}
/**
* @Description 左侧树点击组织时调用
* @param dto
* @author zxc
* @date 2022/2/14 1:35 下午
*/
public void disposeAgencyHouse(ImportHouseGeneralDTO dto){
agencyName = null == agencyName ? icBuildingDao.selectAgencyNameById(formDTO.getOrgId()) : agencyName;
//排除不是本组织的
if (!dto.getAgencyName().equals(agencyName)){
nums.add(num);
}else {
// 根据组织查询出所有网格,甩出不是本组织下的网格
gridInfos = null == gridInfos ? getGridInfos(formDTO.getOrgId()) : gridInfos;
if (null == gridInfos){
// 组织下确实不存在网格
nums.add(num);
return;
}
// 根据网格名对比,没有找到的就把行号加入到未执行成功队列中
Object cacheGridName = icHouseRedis.getTemporaryCacheGrid(formDTO.getCustomerId(), formDTO.getUserId(), dto.getGridName());
if (null == cacheGridName){
nums.add(num);
return;
}
dto.setGridId(cacheGridName.toString());
dto.setAgencyId(formDTO.getOrgId());
fillData(dto);
}
}
public void fillData(ImportHouseGeneralDTO dto){
neighborHoodInfos = null == neighborHoodInfos ? getNeighborHoodInfos(Arrays.asList(formDTO.getOrgId())) : neighborHoodInfos;
Object cacheNeighBorHood = icHouseRedis.getTemporaryCacheNeighBorHood(formDTO.getCustomerId(), formDTO.getUserId(), formDTO.getOrgId() + "_" + dto.getNeighborHoodName());
// 赋值小区ID
dto.setNeighborHoodId(null == cacheNeighBorHood ? "" : cacheNeighBorHood.toString());
if (StringUtils.isNotBlank(dto.getNeighborHoodId())){
//小区ID不为空赋值楼栋ID
buildingInfos = null == buildingInfos ? getBuildingInfos(dto.getNeighborHoodId()) : buildingInfos;
Object cacheBuilding = icHouseRedis.getTemporaryCacheBuilding(formDTO.getCustomerId(), formDTO.getUserId(), dto.getNeighborHoodId() + "_" + dto.getBuildingName());
dto.setBuildingId(null == cacheBuilding ? "" : cacheBuilding.toString());
if (StringUtils.isNotBlank(dto.getBuildingId())){
// 楼栋ID不为空赋值单元ID
buildingUnitInfos = null == buildingUnitInfos ? getBuildingUnitInfos(dto.getBuildingId()) : buildingUnitInfos;
Object cacheBuildingUnit = icHouseRedis.getTemporaryCacheBuildingUnit(formDTO.getCustomerId(), formDTO.getUserId(), dto.getBuildingId() + "_" + dto.getBuildingUnit());
dto.setBuildingUnitId(null == cacheBuildingUnit ? "" : cacheBuildingUnit.toString());
if (StringUtils.isNotBlank(dto.getBuildingUnitId())){
// 所有ID补充完毕,不需调用补用方法
needInsertList.add(dto);
}else {
needDisposeList.add(dto);
}
}else {
needDisposeList.add(dto);
}
}else {
needDisposeList.add(dto);
}
}
/**
* @Description 获取网格信息
* @param orgId
* @author zxc
* @date 2022/2/14 9:57 上午
*/
public Map<String,Object> getGridInfos(String orgId){
gridInfoDTOs = icBuildingDao.selectAllGridByOrgId(orgId);
gridInfos = gridInfoDTOs.stream().collect(Collectors.toMap(n -> n.getGridName(), n -> n.getGridId()));
icHouseRedis.setTemporaryCacheGrid(formDTO.getCustomerId(), gridInfos, formDTO.getUserId());
return gridInfos;
}
/**
* @Description 获取网格下的小区
* @param gridIds
* @author zxc
* @date 2022/2/14 10:16 上午
*/
public Map<String,Object> getNeighborHoodInfos(List<String> gridIds){
neighborHoodInfoDTOs = icBuildingDao.selectAllNeighborHoodByGridIds(gridIds);
neighborHoodInfos = neighborHoodInfoDTOs.stream().collect(Collectors.toMap(n -> n.getGridId() + "_" + n.getNeighborHoodName(), n -> n.getNeighborHoodId()));
icHouseRedis.setTemporaryCacheNeighBorHood(formDTO.getCustomerId(), neighborHoodInfos, formDTO.getUserId());
return neighborHoodInfos;
}
/**
* @Description 获取小区下的楼栋
* @param neighborHoodId
* @author zxc
* @date 2022/2/14 1:32 下午
*/
public Map<String,Object> getBuildingInfos(String neighborHoodId){
buildingInfoDTOs = icBuildingDao.selectAllBuildingByNeighborHoodId(neighborHoodId);
buildingInfos = buildingInfoDTOs.stream().collect(Collectors.toMap(n -> n.getNeighborHoodId() + "_" + n.getBuildingName(), n -> n.getBuildingId()));
icHouseRedis.setTemporaryCacheBuilding(formDTO.getCustomerId(), buildingInfos, formDTO.getUserId());
return buildingInfos;
}
/**
* @Description 获取楼栋下的单元
* @param buildingId
* @author zxc
* @date 2022/2/14 2:04 下午
*/
public Map<String,Object> getBuildingUnitInfos(String buildingId){
buildingUnitInfoDTOs = icBuildingDao.selectAllBuildingUnitByBuildingId(buildingId);
buildingUnitInfos = buildingInfoDTOs.stream().collect(Collectors.toMap(n -> n.getBuildingId() + "_" + n.getBuildingUnit(), n -> n.getBuildingUnitId()));
icHouseRedis.setTemporaryCacheBuildingUnit(formDTO.getCustomerId(), buildingUnitInfos, formDTO.getUserId());
return buildingInfos;
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 删除缓存
icHouseRedis.delTemporaryCacheGrids(formDTO.getCustomerId(), formDTO.getUserId());
icHouseRedis.delTemporaryCacheNeighBorHood(formDTO.getCustomerId(), formDTO.getUserId());
icHouseRedis.delTemporaryCacheBuilding(formDTO.getCustomerId(), formDTO.getUserId());
icHouseRedis.delTemporaryCacheBuildingUnit(formDTO.getCustomerId(), formDTO.getUserId());
icHouseRedis.delTemporaryCacheHouses(formDTO.getCustomerId(), formDTO.getUserId());
}
}

213
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java

@ -18,15 +18,23 @@
package com.epmet.redis;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcHouseDao;
import com.epmet.dto.ImportHouseGeneralDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.model.HouseInfoModel;
import com.epmet.model.HouseInfoModelDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -43,6 +51,9 @@ public class IcHouseRedis {
@Autowired
private IcHouseDao icHouseDao;
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void delete(Object[] ids) {
}
@ -79,4 +90,206 @@ public class IcHouseRedis {
return houseInfo;
}
/**
* @Description 存放房屋临时缓存
* @param customerId
* @param map
* @param userId
* @author zxc
* @date 2022/2/14 9:04 上午
*/
public void setTemporaryCacheHouse(String customerId, Map<String,Object> map,String userId){
String key = RedisKeys.getTemporaryHouseInfoCacheKey(customerId,userId);
redisUtils.hMSet(key,map,RedisUtils.NOT_EXPIRE);
}
/**
* @Description 获取房屋临时缓存
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 9:28 上午
*/
public Object getTemporaryCacheHouse(String customerId,String userId,String buildingIdAndUnitIdAndHouseName){
String key = RedisKeys.getTemporaryHouseInfoCacheKey(customerId,userId);
return redisUtils.hGet(key, buildingIdAndUnitIdAndHouseName);
}
/**
* @Description 删除房屋临时缓存
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 9:29 上午
*/
public void delTemporaryCacheHouses(String customerId,String userId){
String key = RedisKeys.getTemporaryHouseInfoCacheKey(customerId,userId);
redisUtils.delete(key);
}
/**
* @Description 保存网格临时缓存
* @param customerId
* @param map
* @param userId
* @author zxc
* @date 2022/2/14 1:49 下午
*/
public void setTemporaryCacheGrid(String customerId, Map<String,Object> map,String userId) {
String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId, userId);
redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE);
}
/**
* @Description 获取网格临时缓存单个
* @param customerId
* @param userId
* @param gridName
* @author zxc
* @date 2022/2/14 1:49 下午
*/
public Object getTemporaryCacheGrid(String customerId,String userId,String gridName){
String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId);
Object o = redisUtils.hGet(key, gridName);
return o;
}
/**
* @Description 获取网格临时缓存多个
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 1:50 下午
*/
public Map<String,Object> getTemporaryCacheGrids(String customerId,String userId){
String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId);
return redisUtils.hGetAll(key);
}
/**
* @Description 删除网格临时缓存
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 1:50 下午
*/
public void delTemporaryCacheGrids(String customerId,String userId){
String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId);
redisUtils.delete(key);
}
/**
* @Description 保存临时小区缓存
* @param customerId
* @param map
* @param userId
* @author zxc
* @date 2022/2/14 1:50 下午
*/
public void setTemporaryCacheNeighBorHood(String customerId, Map<String,Object> map,String userId) {
String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId, userId);
redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE);
}
/**
* @Description 获取临时小区缓存单个
* @param customerId
* @param userId
* @param gridIdAndNeighborHoodName
* @author zxc
* @date 2022/2/14 1:50 下午
*/
public Object getTemporaryCacheNeighBorHood(String customerId,String userId,String gridIdAndNeighborHoodName){
String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId);
return redisUtils.hGet(key, gridIdAndNeighborHoodName);
}
/**
* @Description 删除临时小区缓存
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 1:51 下午
*/
public void delTemporaryCacheNeighBorHood(String customerId,String userId){
String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId);
redisUtils.delete(key);
}
/**
* @Description 保存临时楼栋缓存
* @param customerId
* @param map
* @param userId
* @author zxc
* @date 2022/2/14 1:51 下午
*/
public void setTemporaryCacheBuilding(String customerId, Map<String,Object> map,String userId) {
String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId, userId);
redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE);
}
/**
* @Description 获取临时楼栋缓存单个
* @param customerId
* @param userId
* @param neighborHoodIdAndBuildingName
* @author zxc
* @date 2022/2/14 1:51 下午
*/
public Object getTemporaryCacheBuilding(String customerId,String userId,String neighborHoodIdAndBuildingName){
String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId);
return redisUtils.hGet(key, neighborHoodIdAndBuildingName);
}
/**
* @Description 删除临时楼栋缓存
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 1:51 下午
*/
public void delTemporaryCacheBuilding(String customerId,String userId){
String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId);
redisUtils.delete(key);
}
/**
* @Description 保存临时楼栋单元缓存
* @param customerId
* @param map
* @param userId
* @author zxc
* @date 2022/2/14 1:51 下午
*/
public void setTemporaryCacheBuildingUnit(String customerId, Map<String,Object> map,String userId) {
String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId, userId);
redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE);
}
/**
* @Description 获取临时楼栋单元缓存单个
* @param customerId
* @param userId
* @param buildingIdAndUnitName
* @author zxc
* @date 2022/2/14 1:51 下午
*/
public Object getTemporaryCacheBuildingUnit(String customerId,String userId,String buildingIdAndUnitName){
String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId,userId);
return redisUtils.hGet(key, buildingIdAndUnitName);
}
/**
* @Description 删除临时楼栋单元缓存
* @param customerId
* @param userId
* @author zxc
* @date 2022/2/14 1:51 下午
*/
public void delTemporaryCacheBuildingUnit(String customerId,String userId){
String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId,userId);
redisUtils.delete(key);
}
}

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java

@ -329,7 +329,7 @@ public class BuildingServiceImpl implements BuildingService {
icBuildingUnitService.insertBatch(icBuildingUnitEntityList);
/* if(!"".equals(str)){
return new Result().error(9999, str.append("不存在").toString());
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str.append("不存在").toString());
}*/
return numList;
}

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

@ -26,6 +26,7 @@ import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
@ -45,7 +46,6 @@ import com.epmet.dto.result.InfoByNamesResultDTO;
import com.epmet.entity.IcNeighborHoodEntity;
import com.epmet.entity.IcNeighborHoodPropertyEntity;
import com.epmet.entity.IcPropertyManagementEntity;
import com.epmet.excel.IcBuildingExcel;
import com.epmet.excel.IcNeighborHoodExcel;
import com.epmet.service.IcNeighborHoodPropertyService;
import com.epmet.service.IcNeighborHoodService;
@ -226,10 +226,10 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
*/
public Result disposeImportNeighborhood(ImportInfoFormDTO formDTO, List<IcNeighborHoodExcel> result){
if (CollectionUtils.isEmpty(result)){
return new Result().error(9999,"excel表格内没有数据");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"excel表格内没有数据");
}
List<Integer> nums = new ArrayList<>();
List<String> gridNames = result.stream().map(m -> m.getGridName()).distinct().collect(Collectors.toList());
List<String> gridNames = result.stream().map(IcNeighborHoodExcel::getGridName).distinct().collect(Collectors.toList());
// 1. 查询数据网格是否存在
List<InfoByNamesResultDTO> gridInfos = customerGridDao.selectGridInfoByNames(gridNames, formDTO.getCustomerId());
if (CollectionUtils.isEmpty(gridInfos)){
@ -238,7 +238,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
nums.add(i);
}
String str = String.format("共%s条,成功导入%s条。",result.size(),0);
return new Result().error(9999,str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
result.forEach(r -> {
for (InfoByNamesResultDTO g : gridInfos) {
@ -253,7 +253,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
// 只获取能查询到的网格
List<IcNeighborHoodExcel> neighborHoods = groupStatus.get(true);
// 2. 查询组织选中组织下存在的小区
List<String> existNames = baseDao.selectNeighborhoodNameByNames(neighborHoods.stream().map(m -> m.getNeighborHoodName()).distinct().collect(Collectors.toList()), formDTO.getCustomerId());
List<String> existNames = baseDao.selectNeighborhoodNameByNames(neighborHoods.stream().map(IcNeighborHoodExcel::getNeighborHoodName).distinct().collect(Collectors.toList()), formDTO.getCustomerId());
// 为了显示多少行插入成功,未成功
result.forEach(r -> {
for (String s : existNames) {
@ -272,7 +272,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
nums.add(i);
}
String str = String.format("共%s条,成功导入%s条。",result.size(),0);
return new Result().error(9999,str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
if (formDTO.getOrgType().equals(CustomerGridConstant.AGENCY)){
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getOrgId());
@ -304,7 +304,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
nums.add(i);
}
String str = String.format("共%s条,成功导入%s条。",result.size(),0);
return new Result().error(9999,str +"第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),str +"第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
Map<String, Long> collect = finalNeedInsert.stream().collect(Collectors.groupingBy(o -> o.getGridName() + "_" + o.getNeighborHoodName(), Collectors.counting()));
collect.forEach((k,v) -> {
@ -368,7 +368,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
}
String str = String.format("共%s条,成功导入%s条。",result.size(),entities.size());
if (CollectionUtils.isNotEmpty(nums)){
return new Result().error(9999,str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
return new Result().ok(str);
}
@ -406,4 +406,4 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
});
}
}
}

62
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml

@ -221,4 +221,66 @@
order by gridName,neighborHoodName,buildingName
</select>
<!-- 根据ID查询楼栋名 -->
<select id="selectBuildingNameById" resultType="java.lang.String">
SELECT BUILDING_NAME FROM ic_building WHERE DEL_FLAG = '0' AND ID = #{orgId}
</select>
<!-- 根据ID查询小区名 -->
<select id="selectNeighborHoodNameById" resultType="java.lang.String">
SELECT NEIGHBOR_HOOD_NAME FROM ic_neighbor_hood WHERE del_flag = '0' AND id = #{orgId}
</select>
<!-- 根据ID查询网格名 -->
<select id="selectGridNameById" resultType="java.lang.String">
SELECT grid_name FROM customer_grid WHERE DEL_FLAG = '0' AND ID = #{orgId}
</select>
<!-- 根据ID查询组织名 -->
<select id="selectAgencyNameById" resultType="java.lang.String">
SELECT ORGANIZATION_NAME FROM customer_agency WHERE DEL_FLAG = '0' AND ID = #{orgId}
</select>
<!-- 查询组织下所有网格信息 -->
<select id="selectAllGridByOrgId" resultType="com.epmet.dto.ImportHouseGeneralDTO">
SELECT ID AS gridId,GRID_NAME FROM customer_grid WHERE DEL_FLAG = '0' AND PID = #{orgId}
</select>
<!-- 查询网格下所有的小区 -->
<select id="selectAllNeighborHoodByGridIds" resultType="com.epmet.dto.ImportHouseGeneralDTO">
SELECT
ID AS neighborHoodId,
NEIGHBOR_HOOD_NAME,
GRID_ID
FROM ic_neighbor_hood
WHERE DEL_FLAG = '0'
AND GRID_ID IN (
<foreach collection="orgIds" item="o" separator=",">
#{o}
</foreach>
)
</select>
<!-- 根据小区ID查询楼栋 -->
<select id="selectAllBuildingByNeighborHoodId" resultType="com.epmet.dto.ImportHouseGeneralDTO">
SELECT
ID AS buildingId,
NEIGHBOR_HOOD_ID,
BUILDING_NAME
FROM ic_building
WHERE DEL_FLAG = '0'
AND NEIGHBOR_HOOD_ID = #{neighborHoodId}
</select>
<!-- 根据楼栋ID查询楼栋单元 -->
<select id="selectAllBuildingUnitByBuildingId" resultType="com.epmet.dto.ImportHouseGeneralDTO">
SELECT
ID AS buildingUnitId,
UNIT_NUM AS buildingUnit,
BUILDING_ID
FROM ic_building_unit
WHERE DEL_FLAG = '0'
AND BUILDING_ID = #{building}
</select>
</mapper>

3
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java

@ -44,9 +44,6 @@ public class IcPartymemberStyleImportExcel extends ExcelVerifyInfo {
@NotBlank(message = "此列不能为空")
private String mainDeed;
@Excel(name = "照片")
private String imageUrl;
@Excel(name="所属分类")
@NotBlank(message = "此列不能为空")
private String categoryName;

26
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java

@ -18,7 +18,6 @@
package com.epmet.modules.partymember.service.impl;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -27,6 +26,7 @@ import com.epmet.commons.tools.constant.FieldConstant;
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.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
@ -197,6 +197,7 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
wrapper.like(StringUtils.isNotBlank(formDTO.getName()), IcPartymemberStyleEntity::getName, formDTO.getName());
wrapper.like(StringUtils.isNotBlank(formDTO.getMainDeed()), IcPartymemberStyleEntity::getMainDeed, formDTO.getMainDeed());
wrapper.eq(StringUtils.isNotBlank(formDTO.getCategoryId()),IcPartymemberStyleEntity::getCategoryId,formDTO.getCategoryId());
wrapper.orderByDesc(IcPartymemberStyleEntity::getCreatedTime);
List<IcPartymemberStyleEntity> list = baseDao.selectList(wrapper);
PageInfo<IcPartymemberStyleEntity> pageInfo = new PageInfo<>(list);
List<IcPartymemberStyleDTO> dtoList = ConvertUtils.sourceToTarget(list, IcPartymemberStyleDTO.class);
@ -232,7 +233,6 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
ExcelImportResult<IcPartymemberStyleImportExcel> importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcPartymemberStyleImportExcel.class);
List<IcPartymemberStyleImportExcel> failList = importResult.getFailList();
log.info("excel中的数据校验失败:"+JSON.toJSONString(failList,true));
//存放错误数据行号
List<Integer> numList = new ArrayList<>();
if (!org.springframework.util.CollectionUtils.isEmpty(failList)) {
@ -275,7 +275,7 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
if (CollectionUtils.isEmpty(result)) {
Collections.sort(numList);
String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、"));
return new Result().error(9999, "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "第" + subList + "行未成功!");
}
List<IcPartymemberStyleImageEntity> imageList = new ArrayList<>();
List<IcPartymemberStyleEntity> list = result.stream().map(item -> {
@ -290,22 +290,6 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
entity.setCategoryId(null == dictEntity ? StrConstant.EPMETY_STR : dictEntity.getId());
entity.setCategoryCode(null == dictEntity ? StrConstant.EPMETY_STR : dictEntity.getCategoryCode());
AtomicInteger i = new AtomicInteger();
if (StringUtils.isNotBlank(item.getImageUrl())) {
Arrays.asList(item.getImageUrl().split(StrConstant.COMMA)).forEach(url -> {
IcPartymemberStyleImageEntity urlEntity = new IcPartymemberStyleImageEntity();
urlEntity.setImageUrl(url);
urlEntity.setCustomerId(tokenDto.getCustomerId());
urlEntity.setStyleId(entity.getId());
urlEntity.setSort(i.getAndIncrement());
urlEntity.setRevision(NumConstant.ZERO);
urlEntity.setDelFlag(NumConstant.ZERO_STR);
urlEntity.setCreatedBy(tokenDto.getUserId());
urlEntity.setUpdatedBy(tokenDto.getUserId());
urlEntity.setCreatedTime(new Date());
urlEntity.setUpdatedTime(new Date());
imageList.add(urlEntity);
});
}
return entity;
}).collect(Collectors.toList());
@ -317,9 +301,9 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
Collections.sort(numList);
String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、"));
log.warn(str + "第" + subList + "行未成功!");
return new Result().error(9999, str + "第" + subList + "行未成功!");
return new Result().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), str + "第" + subList + "行未成功!");
}
return new Result().ok(str);
}
}
}

Loading…
Cancel
Save