Browse Source

gaobule

dev_shibei_match
yinzuomei 4 years ago
parent
commit
508325a863
  1. 61
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/HouseInfoDTO.java
  2. 17
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java
  3. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
  4. 51
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiUserServiceImpl.java
  5. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  6. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  7. 16
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml
  8. 21
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml

61
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/HouseInfoDTO.java

@ -0,0 +1,61 @@
package com.epmet.dataaggre.dto.govorg.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2021/10/28 2:05 下午
*/
@Data
public class HouseInfoDTO implements Serializable {
private static final long serialVersionUID = -5204197079709062825L;
/**
* 所属家庭Id
*/
private String homeId;
/**
* 小区id
*/
private String neighborHoodId;
/**
* 小区名称
*/
private String neighborHoodName;
/**
* 所属楼栋id
*/
private String buildingId;
/**
* 楼栋名称
*/
private String buildingName;
/**
* 所属单元id
*/
private String buildingUnitId;
/**
* 单元名
*/
private String unitName;
/**
* 门牌号
*/
private String doorName;
/**
* 房屋类型这里存储字典value就可以
*/
private String houseType;
}

17
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java

@ -17,8 +17,25 @@ public interface IcResiUserDao {
@Param("resultColumns") List<IcFormResColumnDTO> resultColumns,
@Param("subTables") List<String> subTables);
/**
* 查询主表
*
* @param icResiUserId
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
* @author yinzuomei
* @date 2021/10/28 11:20 上午
*/
List<Map<String, Object>> selectById(String icResiUserId);
/**
* 根据ic_resi_user.id去查询各个子表记录动态传入表名
*
* @param icResiUserId
* @param tableName
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
* @author yinzuomei
* @date 2021/10/28 11:19 上午
*/
List<Map<String, Object>> selectSubTableRecords(@Param("icResiUserId") String icResiUserId,@Param("tableName") String tableName);
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java

@ -24,6 +24,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
* 机关单位信息表
@ -98,4 +99,6 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
* @Date 2021/9/23 10:16
*/
List<String> getOrgList(@Param("staffId") String staffId);
List<HouseInfoDTO> queryHouseInfo(@Param("houseIdList") Set<String> houseIdList);
}

51
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiUserServiceImpl.java

@ -1,5 +1,6 @@
package com.epmet.dataaggre.service.epmetuser.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
@ -9,7 +10,10 @@ import com.epmet.dataaggre.dto.epmetuser.IcFormResColumnDTO;
import com.epmet.dataaggre.dto.epmetuser.form.IcResiDetailFormDTO;
import com.epmet.dataaggre.dto.epmetuser.form.IcResiUserPageFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.IcResiUserPageResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.HouseInfoDTO;
import com.epmet.dataaggre.service.epmetuser.IcResiUserService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.opercustomize.CustomerFootBarService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -19,6 +23,8 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Description TODO
@ -33,7 +39,8 @@ public class IcResiUserServiceImpl implements IcResiUserService {
private IcResiUserDao icResiUserDao;
@Autowired
private CustomerFootBarService customerFootBarService;
@Autowired
private GovOrgService govOrgService;
/**
@ -52,10 +59,11 @@ public class IcResiUserServiceImpl implements IcResiUserService {
log.warn("没有配置列表展示列");
return new PageData(new ArrayList(), NumConstant.ZERO);
}
log.warn("列表展示项:"+JSON.toJSONString(resultColumns));
// 查询列表展示项需要用到哪些子表
// 拼接好的left join table_name on (ic_resi_user.ID=table_name.IC_RESI_USER AND table_name.del_flag='0')
List<String> subTables=customerFootBarService.querySubTables(formDTO.getCustomerId(),formDTO.getFormCode());
log.warn("子表:"+JSON.toJSONString(subTables));
/* Set<String> subTableList=resultColumns.stream().filter(item->!item.getTableName().equals("ic_resi_user")
&& StringUtils.isNotBlank(item.getLink()))
.map(IcFormResColumnDTO :: getTableName).collect(Collectors.toSet());
@ -72,10 +80,30 @@ public class IcResiUserServiceImpl implements IcResiUserService {
resultColumns,
subTables));
List<IcResiUserPageResultDTO> list = pageInfo.getList();
//todo 还早着呢
//查询网格名称
List<String> gridIds=list.stream().map(IcResiUserPageResultDTO::getGridId).collect(Collectors.toList());
log.warn("gridIds:"+JSON.toJSONString(gridIds));
List<GridsInfoListResultDTO> gridInfoList=govOrgService.gridListByIds(gridIds);
log.warn(JSON.toJSONString(gridInfoList));
Map<String, GridsInfoListResultDTO> gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(GridsInfoListResultDTO::getGridId, Function.identity()));
//查询房子名称
Set<String> houseIds=list.stream().map(IcResiUserPageResultDTO::getHomeId).collect(Collectors.toSet());
List<HouseInfoDTO> houseInfoDTOList=govOrgService.queryHouseInfo(houseIds);
Map<String, HouseInfoDTO> houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity()));
for(IcResiUserPageResultDTO resultDTO:list){
if(null !=gridInfoMap&&gridInfoMap.containsKey(resultDTO.getGridId())){
resultDTO.setGridName(gridInfoMap.get(resultDTO.getGridId()).getGridName());
}
if(null !=houseInfoMap &&houseInfoMap.containsKey(resultDTO.getHomeId())){
resultDTO.setBuildName(houseInfoMap.get(resultDTO.getHomeId()).getBuildingName());
resultDTO.setVallageName(houseInfoMap.get(resultDTO.getHomeId()).getNeighborHoodName());
resultDTO.setUnitName(houseInfoMap.get(resultDTO.getHomeId()).getUnitName());
resultDTO.setHomeName(houseInfoMap.get(resultDTO.getHomeId()).getDoorName());
}
}
pageInfo.setList(list);
return new PageData<>(pageInfo.getList(),pageInfo.getTotal());
}
@ -94,6 +122,7 @@ public class IcResiUserServiceImpl implements IcResiUserService {
@Override
public Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO) {
Map resultMap=new HashMap();
// 先查询主表,主表没有记录,直接返回空
List<Map<String,Object>> icResiUserMapList=icResiUserDao.selectById(pageFormDTO.getIcResiUserId());
if(CollectionUtils.isEmpty(icResiUserMapList)){
return new HashMap();
@ -104,8 +133,12 @@ public class IcResiUserServiceImpl implements IcResiUserService {
Set<String> subTableList=customerFootBarService.queryIcResiSubTables(pageFormDTO.getCustomerId(),pageFormDTO.getFormCode());
for(String subTalbeName:subTableList){
List<Map<String,Object>> list=icResiUserDao.selectSubTableRecords(pageFormDTO.getIcResiUserId(),subTalbeName);
resultMap.put(subTalbeName,list);
if(!CollectionUtils.isEmpty(list)){
resultMap.put(subTalbeName,list);
}
//else{
// resultMap.put(subTalbeName,new ArrayList<>());
//}
}
return resultMap;
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java

@ -12,6 +12,7 @@ import com.epmet.dataaggre.dto.govorg.result.*;
import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO;
import java.util.List;
import java.util.Set;
/**
* @Author zxc
@ -154,4 +155,6 @@ public interface GovOrgService {
* @Date 2021/9/23 10:14
*/
List<String> getStaffOrgList(String staffId);
List<HouseInfoDTO> queryHouseInfo(Set<String> houseIdList);
}

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -532,4 +532,12 @@ public class GovOrgServiceImpl implements GovOrgService {
return customerAgencyDao.getOrgList(staffId);
}
@Override
public List<HouseInfoDTO> queryHouseInfo(Set<String> houseIdList) {
if(CollectionUtils.isEmpty(houseIdList)){
return new ArrayList<>();
}
return customerAgencyDao.queryHouseInfo(houseIdList);
}
}

16
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml

@ -31,14 +31,21 @@
<foreach item="column" collection="resultColumns" open="" separator="," close="">
${column.columnName}
</foreach>
,
GROUP_CONCAT(ic_resi_demand.CATEGORY_CODE),
GROUP_CONCAT(ic_resi_demand_dict.CATEGORY_NAME)
FROM
ic_resi_user
ic_resi_user
<if test="null != subTables and subTables.size() > 0">
<foreach item="subTableName" collection="subTables" open="" separator="" close="">
${subTableName}
</foreach>
</if>
left join ic_resi_demand_dict
on(ic_resi_user.customer_id=ic_resi_demand_dict.CUSTOMER_ID
and ic_resi_demand.CATEGORY_CODE=ic_resi_demand_dict.CATEGORY_CODE )
WHERE
ic_resi_user.DEL_FLAG = '0'
and ic_resi_user.customer_id=#{customerId}
@ -47,19 +54,20 @@
<if test="null != subCondition.columnValue and subCondition.columnValue.size() > 0">
<if test="subCondition.queryType!= null and subCondition.queryType == 'equal' ">
and ${subCondition.columnName} = #{subCondition.columnValue[0]}
and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]}
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'like' ">
and ${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%')
and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%')
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'daterange' ">
and ${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]}
and ${subCondition.tableName}.${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]}
</if>
</if>
</foreach>
</if>
group by IC_RESI_USER.id
order by ic_resi_user.CREATED_TIME desc
</select>

21
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml

@ -286,4 +286,25 @@
AND USER_ID = #{staffId}
</select>
<select id="queryHouseInfo" parameterType="map" resultType="com.epmet.dataaggre.dto.govorg.result.HouseInfoDTO">
SELECT
ih.ID as homeId,
ih.NEIGHBOR_HOOD_ID as neighborHoodId,
n.NEIGHBOR_HOOD_NAME as neighborHoodName,
ih.BUILDING_ID as buildingId,
ib.BUILDING_NAME as buildingName,
ih.BUILDING_UNIT_ID as buildingUnitId,
u.UNIT_NAME as unitName,
ih.DOOR_NAME as doorName
FROM
ic_house ih
left JOIN ic_neighbor_hood n ON ( ih.NEIGHBOR_HOOD_ID = n.id )
left JOIN ic_building ib ON ( ih.BUILDING_ID = ib.id )
left JOIN ic_building_unit u ON ( ih.BUILDING_UNIT_ID = u.ID )
WHERE
ih.DEL_FLAG = '0'
<foreach collection="houseIdList" item="houseId" separator=" OR " open="AND (" close=")">
ih.ID = #{houseId}
</foreach>
</select>
</mapper>

Loading…
Cancel
Save