Browse Source

小区信息导入关联物业

dev
zxc 4 years ago
parent
commit
04d5d026c8
  1. 42
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/NeighborHoodAndManagementDTO.java
  2. 20
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java
  3. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java
  4. 68
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  5. 25
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml

42
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/NeighborHoodAndManagementDTO.java

@ -0,0 +1,42 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/2/13 8:51 上午
* @DESC
*/
@Data
public class NeighborHoodAndManagementDTO implements Serializable {
private static final long serialVersionUID = -7500263771019585308L;
private String gridId;
/**
* 小区ID
*/
private String id;
private String gridName;
/**
* 小区名字
*/
private String neighborHoodName;
private String neighborHoodId;
/**
* 物业ID
*/
private String propertyId;
/**
* 物业名字
*/
private String propertyName;
}

20
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java

@ -20,6 +20,10 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcPropertyManagementEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 物业表
@ -31,4 +35,20 @@ import org.apache.ibatis.annotations.Mapper;
public interface IcPropertyManagementDao extends BaseDao<IcPropertyManagementEntity> {
IcPropertyManagementEntity selectByName(String name);
/**
* @Description 根据物业名查询已存在的物业名
* @param names
* @author zxc
* @date 2022/2/13 9:21 上午
*/
List<String> selectExistNames(@Param("names")List<String> names);
/**
* @Description 根据名字查ID
* @param names
* @author zxc
* @date 2022/2/13 9:59 上午
*/
List<IcPropertyManagementEntity> selectIdByName(@Param("names")List<String> names);
}

3
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java

@ -101,4 +101,7 @@ public class IcNeighborHoodEntity extends BaseEpmetEntity {
@TableField(exist = false)
private String gridName;
@TableField(exist = false)
private String propertyName;
}

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

@ -37,13 +37,19 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerGridConstant;
import com.epmet.dao.CustomerGridDao;
import com.epmet.dao.IcNeighborHoodDao;
import com.epmet.dao.IcPropertyManagementDao;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.NeighborHoodAndManagementDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
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;
import com.epmet.service.IcPropertyManagementService;
import com.epmet.util.ExcelPoiUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@ -70,6 +76,12 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
@Autowired
private CustomerGridDao customerGridDao;
@Autowired
private IcPropertyManagementDao propertyManagementDao;
@Autowired
private IcPropertyManagementService propertyManagementService;
@Autowired
private IcNeighborHoodPropertyService neighborHoodPropertyService;
@Override
public PageData<IcNeighborHoodDTO> page(Map<String, Object> params) {
@ -217,7 +229,7 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
return new Result().error(9999,"excel表格内没有数据");
}
List<Integer> nums = new ArrayList<>();
List<String> gridNames = result.stream().map(m -> m.getGridName()).collect(Collectors.toList());
List<String> gridNames = result.stream().map(m -> m.getGridName()).distinct().collect(Collectors.toList());
// 1. 查询数据网格是否存在
List<InfoByNamesResultDTO> gridInfos = customerGridDao.selectGridInfoByNames(gridNames, formDTO.getCustomerId());
if (CollectionUtils.isEmpty(gridInfos)){
@ -241,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()).collect(Collectors.toList()), formDTO.getCustomerId());
List<String> existNames = baseDao.selectNeighborhoodNameByNames(neighborHoods.stream().map(m -> m.getNeighborHoodName()).distinct().collect(Collectors.toList()), formDTO.getCustomerId());
// 为了显示多少行插入成功,未成功
result.forEach(r -> {
for (String s : existNames) {
@ -324,8 +336,31 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
}
}
});
// 物业表插入
List<String> propertyNames = finalNeedInsert.stream().map(m -> m.getPropertyName()).distinct().collect(Collectors.toList());
List<String> disposePropertyNames = finalNeedInsert.stream().map(m -> m.getPropertyName()).distinct().collect(Collectors.toList());
List<String> existPropertyNames = propertyManagementDao.selectExistNames(propertyNames);
disposePropertyNames.removeAll(existPropertyNames);
List<IcPropertyManagementEntity> propertyManagementEntities = new ArrayList<>();
if (CollectionUtils.isNotEmpty(disposePropertyNames)){
disposePropertyNames.forEach(name -> {
IcPropertyManagementEntity e = new IcPropertyManagementEntity();
e.setName(name);
propertyManagementEntities.add(e);
});
}
importInsert(entities,propertyManagementEntities);
// 小区物业关系表插入
List<NeighborHoodAndManagementDTO> neighborHoodAndManagementDTOS = ConvertUtils.sourceToTarget(entities, NeighborHoodAndManagementDTO.class);
List<IcPropertyManagementEntity> propertyManagementInfos = propertyManagementDao.selectIdByName(propertyNames);
neighborHoodAndManagementDTOS.forEach(n -> propertyManagementInfos.stream().filter(p -> p.getName().equals(n.getPropertyName()))
.forEach(p -> {
n.setPropertyId(p.getId());
n.setNeighborHoodId(n.getId());
}));
List<IcNeighborHoodPropertyEntity> icNeighborHoodPropertyEntities = ConvertUtils.sourceToTarget(neighborHoodAndManagementDTOS, IcNeighborHoodPropertyEntity.class);
neighborHoodPropertyInsert(icNeighborHoodPropertyEntities);
importInsert(entities);
for (int i = NumConstant.ZERO; i < result.size(); i++) {
if (result.get(i).getStatus() == false || result.get(i).getExistNameStatus() == true || result.get(i).getAgencyNameStatus() == false || result.get(i).getReStatus() == true){
nums.add(i + NumConstant.ONE);
@ -338,12 +373,37 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
return new Result().ok(str);
}
/**
* @Description 小区插入物业插入
* @param entities
* @param propertyManagementEntities
* @author zxc
* @date 2022/2/13 10:09 上午
*/
@Transactional(rollbackFor = Exception.class)
public void importInsert(List<IcNeighborHoodEntity> entities){
public void importInsert(List<IcNeighborHoodEntity> entities,List<IcPropertyManagementEntity> propertyManagementEntities){
List<List<IcNeighborHoodEntity>> partition = ListUtils.partition(entities, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
insertBatch(p);
});
List<List<IcPropertyManagementEntity>> partition1 = ListUtils.partition(propertyManagementEntities, NumConstant.ONE_HUNDRED);
partition1.forEach(p -> {
propertyManagementService.insertBatch(p);
});
}
/**
* @Description 小区物业关系表插入
* @param entities
* @author zxc
* @date 2022/2/13 10:09 上午
*/
@Transactional(rollbackFor = Exception.class)
public void neighborHoodPropertyInsert(List<IcNeighborHoodPropertyEntity> entities){
List<List<IcNeighborHoodPropertyEntity>> partition = ListUtils.partition(entities, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
neighborHoodPropertyService.insertBatch(p);
});
}
}

25
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml

@ -23,4 +23,29 @@
m.DEL_FLAG = '0'
AND m.`NAME` = #{name}
</select>
<!-- 根据物业名查询已存在的物业名 -->
<select id="selectExistNames" resultType="java.lang.String">
SELECT `NAME` FROM ic_property_management
WHERE
DEL_FLAG = '0'
AND `NAME` IN (
<foreach collection="names" item="n" separator=",">
#{n}
</foreach>
)
</select>
<!-- 根据名字查ID -->
<select id="selectIdByName" resultType="com.epmet.entity.IcPropertyManagementEntity">
SELECT ID,`NAME` FROM ic_property_management
WHERE
DEL_FLAG = '0'
AND `NAME` IN (
<foreach collection="names" item="n" separator=",">
#{n}
</foreach>
)
</select>
</mapper>
Loading…
Cancel
Save