Browse Source

居民列表查询

release
yinzuomei 4 years ago
parent
commit
6ee54df764
  1. 13
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/SubTableJoinDTO.java
  2. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  3. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  4. 4
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java
  5. 7
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  6. 7
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java
  7. 19
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  8. 5
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  9. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  10. 33
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

13
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/SubTableJoinDTO.java

@ -0,0 +1,13 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
@Data
public class SubTableJoinDTO implements Serializable {
private static final long serialVersionUID = 8243764437194993736L;
private String tableName;
private String joinTableSql;
}

2
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -75,7 +75,7 @@ public interface OperCustomizeOpenFeignClient {
* @date 2021/11/1 1:07 下午
*/
@PostMapping(value = "/oper/customize/icform/querySubTables", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result<List<String>> querySubTables(@RequestBody CustomerFormQueryDTO queryDTO);
Result<List<SubTableJoinDTO>> querySubTables(@RequestBody CustomerFormQueryDTO queryDTO);
@PostMapping(value = "/oper/customize/icform/queryIcResiSubTables", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result<Set<String>> queryIcResiSubTables(@RequestBody CustomerFormQueryDTO queryDTO);

2
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java

@ -61,7 +61,7 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe
}
@Override
public Result<List<String>> querySubTables(CustomerFormQueryDTO formDto) {
public Result<List<SubTableJoinDTO>> querySubTables(CustomerFormQueryDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "querySubTables", formDto);
}

4
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java

@ -133,9 +133,9 @@ public class IcFormController {
* @date 2021/11/1 1:25 下午
*/
@PostMapping(value = "querySubTables")
Result<List<String>> querySubTables(@RequestBody CustomerFormQueryDTO formQueryDTO){
Result<List<SubTableJoinDTO>> querySubTables(@RequestBody CustomerFormQueryDTO formQueryDTO){
ValidatorUtils.validateEntity(formQueryDTO,CustomerFormQueryDTO.AddUserInternalGroup.class);
return new Result<List<String>>().ok(icFormItemService.querySubTables(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode()));
return new Result<List<SubTableJoinDTO>>().ok(icFormItemService.querySubTables(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode()));
}
@PostMapping(value = "queryIcResiSubTables")

7
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java

@ -18,10 +18,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -62,7 +59,7 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
* @author yinzuomei
* @date 2021/11/1 1:25 下午
*/
List<String> querySubTables(@Param("customerId") String customerId, @Param("formCode")String formCode);
List<SubTableJoinDTO> querySubTables(@Param("customerId") String customerId, @Param("formCode")String formCode);
Set<String> queryIcResiSubTables(@Param("customerId") String customerId, @Param("formCode")String formCode);

7
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java

@ -19,10 +19,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import java.util.List;
@ -49,7 +46,7 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
List<IcFormResColumnDTO> queryConditions(String customerId,String formCode);
List<String> querySubTables(String customerId, String formCode);
List<SubTableJoinDTO> querySubTables(String customerId, String formCode);
Set<String> queryIcResiSubTables(String customerId, String formCode);

19
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java

@ -17,28 +17,19 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcFormItemDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import com.epmet.service.IcFormItemService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* 表单项
@ -100,7 +91,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
}
@Override
public List<String> querySubTables(String customerId, String formCode) {
public List<SubTableJoinDTO> querySubTables(String customerId, String formCode) {
return baseDao.querySubTables(customerId,formCode);
}

5
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -113,9 +113,10 @@
</select>
<!-- 构造出所有子表关联语句 -->
<select id="querySubTables" parameterType="map" resultType="java.lang.String">
<select id="querySubTables" parameterType="map" resultType="com.epmet.dto.result.SubTableJoinDTO">
select
CONCAT('left join ',temp.TABLE_NAME, ' on ( ic_resi_user.ID=',temp.TABLE_NAME,'.IC_RESI_USER and ',temp.TABLE_NAME,'.del_flag="0" )') as subTables
temp.TABLE_NAME as tableName,
CONCAT('left join ',temp.TABLE_NAME, ' on ( ic_resi_user.ID=',temp.TABLE_NAME,'.IC_RESI_USER and ',temp.TABLE_NAME,'.del_flag="0" )') as joinTableSql
from (
SELECT DISTINCT
m.TABLE_NAME

3
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -256,6 +256,9 @@ public class IcResiUserController {
pageFormDTO.setCustomerId(tokenDto.getCustomerId());
pageFormDTO.setStaffId(tokenDto.getUserId());
ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class);
if(null==pageFormDTO.getConditions()){
pageFormDTO.setConditions(new ArrayList<>());
}
return new Result<PageData<Map<String, Object>>>().ok(icResiUserService.pageResiMap(pageFormDTO));
}

33
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -335,9 +335,29 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
return new PageData(new ArrayList(), NumConstant.ZERO);
}
List<IcFormResColumnDTO> resultColumns = resultColumnRes.getData();
// 查询结果列对应的表:
Set<String> resultColumnTables=resultColumns.stream().map(IcFormResColumnDTO::getTableName).collect(Collectors.toSet());
// 查询列表展示项需要用到哪些子表
Result<List<String>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO1);
List<String> subTables =subTablesRes.getData();
Result<List<SubTableJoinDTO>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO1);
List<SubTableJoinDTO> subTables =subTablesRes.getData();
log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true));
//关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重
Set<String> whereConditionTables=formDTO.getConditions().stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet());
Set<String> tables=new HashSet<>();
tables.addAll(whereConditionTables);
tables.addAll(resultColumnTables);
log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true));
//最终关联的子表对应的sql:
List<String> finalSubTables =new ArrayList<>();
subTables.forEach(subTable->{
if(tables.contains(subTable.getTableName())){
finalSubTables.add(subTable.getJoinTableSql());
}
});
PageInfo<Map<String, Object>> pageInfo=new PageInfo<>();
if (null == formDTO.getPageFlag()||formDTO.getPageFlag()) {
//分页
@ -347,7 +367,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
formDTO.getFormCode(),
formDTO.getConditions(),
resultColumns,
subTables,
finalSubTables,
staffInfoCacheResult.getAgencyId(), finalStaffOrgPath,null
));
}else{
@ -355,7 +375,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
formDTO.getFormCode(),
formDTO.getConditions(),
resultColumns,
subTables,staffInfoCacheResult.getAgencyId(),
finalSubTables,
staffInfoCacheResult.getAgencyId(),
staffOrgPath,null);
pageInfo.setTotal(CollectionUtils.isEmpty(list)?NumConstant.ZERO:list.size());
pageInfo.setList(list);
@ -515,10 +536,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
queryDTO.setCustomerId(customerId);
queryDTO.setFormCode(formCode);
//所有的子表
Result<List<String>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO);
Result<List<SubTableJoinDTO>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO);
List<String> subTables=new ArrayList<>();
if(subTablesRes.success()&&CollectionUtils.isNotEmpty(subTablesRes.getData())){
subTables =subTablesRes.getData();
subTables =subTablesRes.getData().stream().map(SubTableJoinDTO::getJoinTableSql).collect(Collectors.toList());
}
return baseDao.dynamicQuery(customerId,resultTableName,conditions,subTables,currentStaffAgencyId,staffOrgPath);
}

Loading…
Cancel
Save