Browse Source

Merge remote-tracking branch 'origin/dev_ic_platform' into dev_ic_platform

master
lzh 4 years ago
parent
commit
64f9748e26
  1. 1
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/IcFormResColumnDTO.java
  2. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/CustomerFootBarDao.xml
  3. 5
      epmet-module/epmet-demo/epmet-demo-server/pom.xml
  4. 58
      epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/utils/ExcelPaseTest.java
  5. 20
      epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/utils/IndexOrNameData.java
  6. 82
      epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/utils/TempDynamicEasyExcelListener.java
  7. 60
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java
  8. 3
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  9. 6
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
  10. 16
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  11. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
  12. 5
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
  13. 4
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
  14. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  15. 23
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  16. 18
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormResColumnDTO.java
  17. 28
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  18. 17
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  19. 37
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java
  20. 26
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  21. 8
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java
  22. 21
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  23. 54
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  24. 26
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiDetailFormDTO.java
  25. 38
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
  26. 20
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiUserQueryValueDTO.java
  27. 17
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeUserResultDTO.java
  28. 173
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserPageResultDTO.java
  29. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java
  30. 81
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  31. 29
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  32. 23
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  33. 199
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  34. 55
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

1
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/IcFormResColumnDTO.java

@ -12,6 +12,5 @@ public class IcFormResColumnDTO {
private String tableName;
private String columnName;
private String label;
private String link;
}

6
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/CustomerFootBarDao.xml

@ -43,14 +43,12 @@
select
temp.table_name,
concat(temp.table_name,'.',temp.columnName) as columnName,
temp.LABEL,
temp.link
temp.LABEL
from (
SELECT
( CASE WHEN M.ITEM_GROUP_ID = '0' THEN 'ic_resi_user' ELSE g.TABLE_NAME END ) AS table_name,
m.COLUMN_NAME AS columnName,
m.LABEL,
g.link
m.LABEL
FROM
ic_form_item m
LEFT JOIN ic_form_item_group g ON ( m.ITEM_GROUP_ID = g.id )

5
epmet-module/epmet-demo/epmet-demo-server/pom.xml

@ -13,6 +13,11 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-tools</artifactId>

58
epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/utils/ExcelPaseTest.java

@ -0,0 +1,58 @@
package com.epmet.utils;
import com.alibaba.excel.EasyExcelFactory;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @description excel解析
*
* @return
* @author wxz
* @date 2021.10.28 13:36:26
*/
public class ExcelPaseTest {
public static void main(String[] args) {
new ExcelPaseTest().sqlizeGridNameAndCodeFromExcel();
}
/**
* @description 读取excel生成根据网格name更新网格code的sql
*
* @param
* @return
* @author wxz
* @date 2021.10.28 13:34:31
*/
public void sqlizeGridNameAndCodeFromExcel() {
TempDynamicEasyExcelListener readListener = new TempDynamicEasyExcelListener();
EasyExcelFactory.read(new File("/Users/wangxianzhang/Documents/1027平阴县网格编码及人员统计表.xls"), IndexOrNameData.class, readListener).headRowNumber(4).sheet(0).doRead();
List<Map<Integer, String>> headList = readListener.getHeadList();
List<IndexOrNameData> dataList = readListener.getDataList();
List<String> exceptList = new ArrayList<>();
for (IndexOrNameData data : dataList) {
String content = data.getColumn();
int startIndex = content.indexOf("370");
if (startIndex == -1) {
exceptList.add(content);
} else {
String gridName = content.substring(0, startIndex).trim();
String gridCode = content.substring(startIndex);
String sqlPattern = String.format("update customer_grid set CODE='%s' where GRID_NAME='%s';", gridCode, gridName);
System.out.println(sqlPattern);
}
}
System.err.println("========异常行=======");
for (String s : exceptList) {
System.err.println(s);
}
}
}

20
epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/utils/IndexOrNameData.java

@ -0,0 +1,20 @@
package com.epmet.utils;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class IndexOrNameData {
/**
* 强制读取第三个 这里不建议 index name 同时用要么一个对象只用index要么一个对象只用name去匹配
*/
@ExcelProperty(index = 3)
private String column;
///**
// * 用名字去匹配,这里需要注意,如果名字重复,会导致只有一个字段读取到数据
// */
//@ExcelProperty("字符串标题")
//private String string;
//@ExcelProperty("日期标题")
//private Date date;
}

82
epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/utils/TempDynamicEasyExcelListener.java

@ -0,0 +1,82 @@
package com.epmet.utils;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 创建一个监听器
*/
@Slf4j
public class TempDynamicEasyExcelListener extends AnalysisEventListener<IndexOrNameData> {
/**
* 表头数据存储所有的表头数据
*/
private List<Map<Integer, String>> headList = new ArrayList<>();
/**
* 数据体
*/
private List<IndexOrNameData> dataList = new ArrayList<>();
/**
* 这里会一行行的返回头
*
* @param headMap
* @param context
*/
//@Override
//public void invokeHeadMap(IcResiUserController.IndexOrNameData headMap, AnalysisContext context) {
// log.info("解析到一条头数据:{}", JSON.toJSONString(headMap));
// //存储全部表头数据
// headList.add(headMap);
//}
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
log.info("解析到一条头数据:{}", JSON.toJSONString(headMap));
//存储全部表头数据
headList.add(headMap);
}
/**
* 这个每一条数据解析都会来调用
*
* @param data
* one row value. Is is same as {@link AnalysisContext#readRowHolder()}
* @param context
*/
@Override
public void invoke(IndexOrNameData data, AnalysisContext context) {
//log.info("解析到一条数据:{}", JSON.toJSONString(data));
if (data.getColumn() != null) {
dataList.add(data);
}
}
/**
* 所有数据解析完成了 都会来调用
*
* @param context
*/
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 这里也要保存数据,确保最后遗留的数据也存储到数据库
log.info("所有数据解析完成!");
}
public List<Map<Integer, String>> getHeadList() {
return headList;
}
public List<IndexOrNameData> getDataList() {
return dataList;
}
}

60
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java

@ -0,0 +1,60 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2021/11/1 1:42 下午
*/
@Data
public class HouseInfoDTO implements Serializable {
private static final long serialVersionUID = -419899682683323110L;
/**
* 所属家庭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;
/**
* 房屋类型1楼房2平房3别墅
*/
private String houseType;
}

3
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -450,4 +450,7 @@ public interface GovOrgOpenFeignClient {
*/
@PostMapping("/gov/org/grid/getbaseinfo")
Result<CustomerGridDTO> getGridBaseInfoByGridId(CustomerGridFormDTO customerGridFormDTO);
@PostMapping(value = "/gov/org/house/queryListHouseInfo",consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<HouseInfoDTO>> queryListHouseInfo(@RequestBody Set<String> houseIds);
}

6
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java

@ -271,8 +271,14 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridBaseInfoByGridId", customerGridFormDTO);
}
@Override
public Result<List<HouseInfoDTO>> queryListHouseInfo(Set<String> houseIds) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "queryListHouseInfo", houseIds);
}
@Override
public Result<String> selectPidsByGridId(String gridId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId);
}
}

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

@ -20,37 +20,29 @@ package com.epmet.controller;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.exception.ErrorCode;
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.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.constant.NeighborhoodConstant;
import com.epmet.dto.form.IcHouseFormDTO;
import com.epmet.dto.form.IcNeighborHoodFormDTO;
import com.epmet.dto.form.ListIcNeighborHoodFormDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.excel.IcBuildingExcel;
import com.epmet.excel.IcHouseExcel;
import com.epmet.excel.IcNeighborHoodExcel;
import com.epmet.service.HouseService;
import com.epmet.service.NeighborHoodService;
import com.epmet.util.ExcelPoiUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
@ -165,4 +157,8 @@ public class HouseController {
return new Result().ok("导入成功");
}
@PostMapping( "queryListHouseInfo")
Result<List<HouseInfoDTO>> queryListHouseInfo(@RequestBody Set<String> houseIds){
return new Result<List<HouseInfoDTO>>().ok(houseService.queryListHouseInfo(houseIds));
}
}

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java

@ -17,19 +17,17 @@
package com.epmet.dao;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcBuildingEntity;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.entity.IcHouseEntity;
import com.epmet.entity.IcNeighborHoodEntity;
import com.epmet.excel.IcHouseExcel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 房屋信息
@ -52,4 +50,6 @@ public interface IcHouseDao extends BaseDao<IcHouseEntity> {
@Param("house") IcHouseEntity house);
List<IcHouseExcel> searchAllHouse(@Param("house") IcHouseEntity house);
List<HouseInfoDTO> queryHouseInfo(@Param("houseIdList") Set<String> houseIdList);
}

5
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java

@ -19,12 +19,13 @@ package com.epmet.service;
import com.epmet.dto.form.IcHouseFormDTO;
import com.epmet.dto.form.ListIcNeighborHoodFormDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.excel.IcHouseExcel;
import com.epmet.excel.IcNeighborHoodExcel;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Set;
/**
* 小区表
@ -51,4 +52,6 @@ public interface HouseService {
IcNeighborHoodResultDTO listNeighborhood(ListIcNeighborHoodFormDTO formDTO);
void exportBuildinginfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception;
List<HouseInfoDTO> queryListHouseInfo(Set<String> houseIds);
}

4
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java

@ -582,8 +582,8 @@ public class AgencyServiceImpl implements AgencyService {
if (null == staffInfo){
return result;
}
formDTO.setOrgId(staffInfo.getFromOrgId());
formDTO.setLevel(staffInfo.getFromOrgType());
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setLevel(OrgInfoConstant.AGENCY);
}
if (formDTO.getLevel().equals(OrgInfoConstant.AGENCY)){
CustomerAgencyEntity entity = customerAgencyDao.selectById(formDTO.getOrgId());

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -14,6 +14,7 @@ import com.epmet.dto.IcBuildingUnitDTO;
import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.form.IcHouseFormDTO;
import com.epmet.dto.form.ListIcNeighborHoodFormDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcNeighborHoodResultDTO;
import com.epmet.entity.IcBuildingEntity;
import com.epmet.entity.IcHouseEntity;
@ -239,5 +240,11 @@ public class HouseServiceImpl implements HouseService {
return mapIPage;
}
@Override
public List<HouseInfoDTO> queryListHouseInfo(Set<String> houseIdList) {
if(org.apache.commons.collections4.CollectionUtils.isEmpty(houseIdList)){
return new ArrayList<>();
}
return icHouseDao.queryHouseInfo(houseIdList);
}
}

23
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -230,5 +230,26 @@
</select>-->
<select id="queryHouseInfo" parameterType="map" resultType="com.epmet.dto.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,
ih.house_type
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>

18
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormResColumnDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 列表展示列返参结构
* @Author yinzuomei
* @Date 2021/11/1 12:49 下午
*/
@Data
public class IcFormResColumnDTO implements Serializable {
private String tableName;
private String columnName;
private String label;
}

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

@ -10,6 +10,7 @@ import com.epmet.dto.form.CustomerFunctionListFormDTO;
import com.epmet.dto.result.CheckFloatFootBarResultDTO;
import com.epmet.dto.result.CustomerFormResultDTO;
import com.epmet.dto.result.DefaultFunctionListResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.feign.fallback.OperCustomizeOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Set;
/**
* 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -24,6 +26,7 @@ import java.util.List;
* @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:16
*/
//@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class,url = "http://localhost:8089")
@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class)
public interface OperCustomizeOpenFeignClient {
@ -52,4 +55,29 @@ public interface OperCustomizeOpenFeignClient {
*/
@PostMapping(value = "/oper/customize/icform/getcustomerform", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result<CustomerFormResultDTO> getCustomerForm(@RequestBody CustomerFormQueryDTO formDto);
/**
* 返回用于列表展示的列
*
* @param queryDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.result.IcFormResColumnDTO>>
* @author yinzuomei
* @date 2021/11/1 12:53 下午
*/
@PostMapping(value = "/oper/customize/icform/queryConditions", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result<List<IcFormResColumnDTO>> queryConditions(@RequestBody CustomerFormQueryDTO queryDTO);
/**
* 构造出所有的子表连接语句格式left join table_name on (ic_resi_user.ID=table_name.IC_RESI_USER AND table_name.del_flag='0')
*
* @param queryDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @author yinzuomei
* @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);
@PostMapping(value = "/oper/customize/icform/queryIcResiSubTables", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result<Set<String>> queryIcResiSubTables(@RequestBody CustomerFormQueryDTO queryDTO);
}

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

@ -11,9 +11,11 @@ import com.epmet.dto.form.CustomerFunctionListFormDTO;
import com.epmet.dto.result.CheckFloatFootBarResultDTO;
import com.epmet.dto.result.CustomerFormResultDTO;
import com.epmet.dto.result.DefaultFunctionListResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import java.util.List;
import java.util.Set;
/**
* 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -55,4 +57,19 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe
public Result<CustomerFormResultDTO> getCustomerForm(CustomerFormQueryDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getCustomerForm", formDto);
}
@Override
public Result<List<IcFormResColumnDTO>> queryConditions(CustomerFormQueryDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "queryConditions", formDto);
}
@Override
public Result<List<String>> querySubTables(CustomerFormQueryDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "querySubTables", formDto);
}
@Override
public Result<Set<String>> queryIcResiSubTables(CustomerFormQueryDTO queryDTO) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "queryIcResiSubTables", queryDTO);
}
}

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

@ -31,6 +31,7 @@ import com.epmet.dto.IcFormDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.CustomerFormResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.excel.IcFormExcel;
import com.epmet.service.IcFormItemService;
@ -42,6 +43,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@ -142,4 +144,39 @@ public class IcFormController {
ValidatorUtils.validateEntity(formDto,CustomerFormQueryDTO.AddUserInternalGroup.class);
return new Result<List<TableHeaderResultDTO>>().ok(icFormItemService.queryTableHeaderList(formDto));
}
/**
* feigin:返回用于列表展示的列
*
* @param formQueryDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.result.IcFormResColumnDTO>>
* @author yinzuomei
* @date 2021/11/1 12:54 下午
*/
@PostMapping(value = "queryConditions")
Result<List<IcFormResColumnDTO>> queryConditions(@RequestBody CustomerFormQueryDTO formQueryDTO) {
ValidatorUtils.validateEntity(formQueryDTO,CustomerFormQueryDTO.AddUserInternalGroup.class);
return new Result<List<IcFormResColumnDTO>>().ok(icFormItemService.queryConditions(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode()));
}
/**
* 构造出所有子表关联语句
*
* @param formQueryDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @author yinzuomei
* @date 2021/11/1 1:25 下午
*/
@PostMapping(value = "querySubTables")
Result<List<String>> querySubTables(@RequestBody CustomerFormQueryDTO formQueryDTO){
ValidatorUtils.validateEntity(formQueryDTO,CustomerFormQueryDTO.AddUserInternalGroup.class);
return new Result<List<String>>().ok(icFormItemService.querySubTables(formQueryDTO.getCustomerId(),formQueryDTO.getFormCode()));
}
@PostMapping(value = "queryIcResiSubTables")
Result<Set<String>> queryIcResiSubTables(@RequestBody CustomerFormQueryDTO queryDTO){
ValidatorUtils.validateEntity(queryDTO,CustomerFormQueryDTO.AddUserInternalGroup.class);
return new Result<Set<String>>().ok(icFormItemService.queryIcResiSubTables(queryDTO.getCustomerId(),queryDTO.getFormCode()));
}
}

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

@ -19,12 +19,14 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.entity.IcFormItemEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
* 表单项
@ -38,4 +40,28 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
List<ConditionResultDTO> selectConditionList(@Param("customerId") String customerId, @Param("formCode") String formCode);
List<TableHeaderResultDTO> queryTableHeaderList(@Param("customerId") String customerId, @Param("formCode") String formCode);
/**
* 返回用于列表展示的列有哪些table.列名
*
* @param customerId
* @param formCode
* @return java.util.List<com.epmet.dto.result.IcFormResColumnDTO>
* @author yinzuomei
* @date 2021/11/1 12:58 下午
*/
List<IcFormResColumnDTO> queryConditions(@Param("customerId") String customerId, @Param("formCode")String formCode);
/**
* 构造出所有子表关联语句
*
* @param customerId
* @param formCode
* @return java.util.List<java.lang.String>
* @author yinzuomei
* @date 2021/11/1 1:25 下午
*/
List<String> querySubTables(@Param("customerId") String customerId, @Param("formCode")String formCode);
Set<String> queryIcResiSubTables(@Param("customerId") String customerId, @Param("formCode")String formCode);
}

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

@ -22,11 +22,13 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcFormItemDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.entity.IcFormItemEntity;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 表单项
@ -107,4 +109,10 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
List<ConditionResultDTO> queryConditionList(CustomerFormQueryDTO formDto);
List<TableHeaderResultDTO> queryTableHeaderList(CustomerFormQueryDTO formDto);
List<IcFormResColumnDTO> queryConditions(String customerId,String formCode);
List<String> querySubTables(String customerId, String formCode);
Set<String> queryIcResiSubTables(String customerId, String formCode);
}

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

@ -28,6 +28,7 @@ import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcFormItemDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.TableHeaderResultDTO;
import com.epmet.entity.IcFormItemEntity;
import com.epmet.service.IcFormItemService;
@ -36,10 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 表单项
@ -140,4 +138,19 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
return list;
}
@Override
public List<IcFormResColumnDTO> queryConditions(String customerId,String formCode) {
return baseDao.queryConditions(customerId,formCode);
}
@Override
public List<String> querySubTables(String customerId, String formCode) {
return baseDao.querySubTables(customerId,formCode);
}
@Override
public Set<String> queryIcResiSubTables(String customerId, String formCode) {
return baseDao.queryIcResiSubTables(customerId,formCode);
}
}

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

@ -87,4 +87,58 @@
and m.CUSTOMER_ID=#{customerId}
order by m.SORT asc
</select>
<!-- 用于列表展示的列:table.列名 -->
<select id="queryConditions" parameterType="map" resultType="com.epmet.dto.result.IcFormResColumnDTO">
select
temp.table_name,
concat(temp.table_name,'.',temp.columnName) as columnName,
temp.LABEL
from (
SELECT
( CASE WHEN M.ITEM_GROUP_ID = '0' THEN 'ic_resi_user' ELSE g.TABLE_NAME END ) AS table_name,
m.COLUMN_NAME AS columnName,
m.LABEL
FROM
ic_form_item m
LEFT JOIN ic_form_item_group g ON ( m.ITEM_GROUP_ID = g.id )
WHERE
m.DEL_FLAG = '0'
AND m.CUSTOMER_ID = #{customerId}
and m.FORM_CODE=#{formCode}
AND m.LIST_DISPLAY = '1'
)temp
</select>
<!-- 构造出所有子表关联语句 -->
<select id="querySubTables" parameterType="map" resultType="java.lang.String">
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
from (
SELECT DISTINCT
m.TABLE_NAME
FROM
ic_form_item_group m
WHERE
m.DEL_FLAG = '0'
AND m.TABLE_NAME IS NOT NULL
AND m.TABLE_NAME != ''
AND m.CUSTOMER_ID = #{customerId}
AND m.FORM_CODE = #{formCode}
)temp
</select>
<select id="queryIcResiSubTables" parameterType="map" resultType="java.lang.String">
SELECT DISTINCT
m.TABLE_NAME
FROM
ic_form_item_group m
WHERE
m.DEL_FLAG = '0'
AND m.TABLE_NAME IS NOT NULL
AND m.TABLE_NAME != ''
AND m.CUSTOMER_ID = #{customerId}
AND m.FORM_CODE = #{formCode}
</select>
</mapper>

26
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiDetailFormDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 查看详情回显表单
* @Author yinzuomei
* @Date 2021/10/27 10:22 下午
*/
@Data
public class IcResiDetailFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
@NotBlank(message = "icResiUserId不能为空",groups = AddUserInternalGroup.class)
private String icResiUserId;
@NotBlank(message = "formCode不能为空", groups = AddUserInternalGroup.class)
private String formCode;
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
}

38
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java

@ -0,0 +1,38 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @Description 居民信息分页查询入参
* @Author yinzuomei
* @Date 2021/10/27 2:06 下午
*/
@Data
public class IcResiUserPageFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
@NotNull(message = "pageNo不能为空", groups = AddUserInternalGroup.class)
private Integer pageNo;
@NotNull(message = "pageSize不能为空", groups = AddUserInternalGroup.class)
private Integer pageSize;
@NotBlank(message = "formCode不能为空", groups = AddUserInternalGroup.class)
private String formCode;
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
/**
* 表对应的字段及值
*/
private List<ResiUserQueryValueDTO> conditions;
private Boolean pageFlag;
}

20
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiUserQueryValueDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2021/10/27 6:02 下午
*/
@Data
public class ResiUserQueryValueDTO implements Serializable {
private String queryType;
private List<String> columnValue;
private String columnName;
private String tableName;
}

17
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeUserResultDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author zhaoqifeng
* @Date 2021/11/1 10:47
*/
@Data
public class HomeUserResultDTO implements Serializable {
private static final long serialVersionUID = -8441112171986914418L;
private String userId;
private String name;
}

173
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserPageResultDTO.java

@ -0,0 +1,173 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2021/11/1 10:34 上午
*/
@Data
public class IcResiUserPageResultDTO implements Serializable {
private static final long serialVersionUID = 5621052927788129250L;
private String icResiUserId;
private String gridId;
private String gridName;
/**
* 所属小区ID
*/
private String villageId;
private String vallageName;
/**
* 所属楼宇Id
*/
private String buildId;
private String buildName;
/**
* 单元id
*/
private String unitId;
private String unitName;
/**
* 所属家庭Id
*/
private String homeId;
private String homeName;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String mobile;
/**
* 性别
*/
private String gender;
/**
* 身份证号
*/
private String idCard;
/**
* 出生日期
*/
private String birthday;
/**
* 备注
*/
private String remarks;
/**
* 是否党员
*/
private Boolean isParty;
/**
* 是否低保户
*/
private Boolean isDbh;
/**
* 是否保障房
*/
private Boolean isEnsureHouse;
/**
* 是否失业
*/
private Boolean isUnemployed;
/**
* 是否育龄妇女
*/
private Boolean isYlfn;
/**
* 是否退役军人
*/
private Boolean isVeterans;
/**
* 是否统战人员
*/
private Boolean isUnitedFront;
/**
* 是否信访人员
*/
private Boolean isXfry;
/**
* 是否志愿者
*/
private Boolean isVolunteer;
/**
* 是否老年人
*/
private Boolean isOldPeople;
/**
* 是否空巢
*/
private Boolean isKc;
/**
* 是否失独
*/
private Boolean isSd;
/**
* 是否失能
*/
private Boolean isSn;
/**
* 是否失智
*/
private Boolean isSz;
/**
* 是否残疾
*/
private Boolean isCj;
/**
* 是否大病
*/
private Boolean isDb;
/**
* 是否慢病
*/
private Boolean isMb;
/**
* 是否特殊人群
*/
private Boolean isSpecial;
// 以下属性都需要单独处理,不是直接取数据库的字段
private String demandCategoryIds;
private String demandName;
/**
* 房屋类型1楼房2平房3别墅
*/
private String houseType;}

4
epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java

@ -97,4 +97,8 @@ public interface UserConstant {
* 先生/女士
*/
String MAN_WOMAN = "先生/女士";
String GRID_ID="GRID_ID";
String GENDER="GENDER";
String HOUSE_TYPE_KEY="HOUSE_TYPE";
}

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

@ -36,15 +36,17 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.form.IcResiDetailFormDTO;
import com.epmet.dto.form.IcResiUserFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.dto.result.CustomerFormResultDTO;
import com.epmet.dto.result.FormGroupDTO;
import com.epmet.dto.result.FormItem;
import com.epmet.dto.result.HomeUserResultDTO;
import com.epmet.excel.IcResiUserExcel;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.IcResiUserService;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
@ -150,14 +152,15 @@ public class IcResiUserController {
for (Map.Entry<String, List<ExcelExportEntity>> entry : sheetHeaderMap.entrySet()) {
String sheetName = entry.getKey();
List<ExcelExportEntity> headers = entry.getValue();
ExportParams exportParams = new ExportParams();
exportParams.setSheetName(sheetName);
exportParams.setAutoSize(true);
new ExcelExportService().createSheetForMap(workbook, exportParams, headers,new ArrayList<>());
System.out.println("headers:"+sheetName+JSON.toJSONString(headers));
ExportParams exportParams = new ExportParams(null,sheetName);
//exportParams.setAutoSize(true);
List<Map<String,String>> dataSet = new ArrayList<>();
HashMap<String, String> map = new HashMap<>();
map.put("1","2");
dataSet.add(map);
new ExcelExportService().createSheetForMap(workbook, exportParams, headers, dataSet);
}
List<? extends Name> allNames = workbook.getAllNames();
System.out.println("======"+allNames);
FileOutputStream fos = new FileOutputStream("//Users/liujianjun/Downloads/基础信息表/Dow.tt.xls");
workbook.write(fos);
@ -174,38 +177,38 @@ public class IcResiUserController {
Map<String,List<ExcelExportEntity>> everySheetHeaderMap = new LinkedHashMap<>();
List<ExcelExportEntity> firstSheetHeaderList = new ArrayList<>();
//Map<String, String> groupNameMap = groupList.stream().collect(Collectors.toMap(FormGroupDTO::getGroupId,FormGroupDTO::getLabel));
itemList.forEach(item->{
if (StringUtils.isBlank(item.getColumnName())){
return;
}
ExcelExportEntity header = new ExcelExportEntity(item.getLabel(),item.getColumnName().concat(String.valueOf(item.getColumnNum())),30);
header.setNeedMerge(true);
if (item.getChildGroup() == null){
System.out.println(item.getLabel());
ExcelExportEntity header = new ExcelExportEntity(item.getLabel(),item.getColumnName().concat(String.valueOf(item.getColumnNum())),30);
header.setNeedMerge(true);
firstSheetHeaderList.add(header);
return;
}
everySheetHeaderMap.putIfAbsent(resultForm.getData().getFormName(),firstSheetHeaderList);
//这些是动态的 formGroup
if (item.getChildGroup() != null){
//baseTableName单独的一个sheet
System.out.println("childGroup:"+item.getLabel());
if (BASE_TABLE_NAME.equals(item.getTableName())){
header = new ExcelExportEntity(item.getChildGroup().getLabel(),item.getChildGroup().getTableName());
header.setNeedMerge(true);
// header = new ExcelExportEntity(item.getChildGroup().getLabel(),item.getChildGroup().getTableName());
//header.setNeedMerge(true);
List<ExcelExportEntity> otherSheetHeaderList = new ArrayList<>();
List<ExcelExportEntity> secondHeaderList = new ArrayList<>();
//这里是设置除基础信息之外的sheet的表头
item.getChildGroup().getItemList().forEach(item2->{
if (!BASE_TABLE_NAME.equals(item2.getTableName())){
everySheetHeaderMap.putIfAbsent(item.getLabel(),otherSheetHeaderList);
}
ExcelExportEntity secondHeader = new ExcelExportEntity(item2.getLabel(),item2.getColumnName().concat(String.valueOf(item2.getColumnNum())));
secondHeader.setNeedMerge(true);
secondHeaderList.add(secondHeader);
if (!item2.getItemType().equals("radio") && com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(item2.getOptions())){
otherSheetHeaderList.add(secondHeader);
if (!"radio".equals(item2.getItemType()) && CollectionUtils.isNotEmpty(item2.getOptions())){
secondHeader.setNeedMerge(true);
List<ExcelExportEntity> thirdHeaderList = new ArrayList<>();
item2.getOptions().forEach(child->{
ExcelExportEntity thirdHeader = new ExcelExportEntity(child.getLabel());
@ -215,18 +218,16 @@ public class IcResiUserController {
}
});
header.setList(secondHeaderList);
otherSheetHeaderList.add(header);
//header.setList(secondHeaderList);
//otherSheetHeaderList.add(header);
}
}
});
//List<ExcelExportEntity> firstSheetHeaderList = new ArrayList<>();
groupList.forEach(item->{
/* if (!"兴趣爱好".equals(item.getLabel()) && !"宗教信仰".equals(item.getLabel())){
return;
}*/
if (!BASE_TABLE_NAME.equals(item.getTableName())){
System.out.println(item.getLabel()+"--"+item.getTableName());
if (!BASE_TABLE_NAME.equals(item.getTableName())){
return;
}
ExcelExportEntity header = new ExcelExportEntity(item.getLabel(),item.getTableName());
@ -279,4 +280,38 @@ public class IcResiUserController {
everySheetHeaderMap.putIfAbsent(item.getLabel(),firstSheetHeaderList);
}
/**
* @Description 根据房间号查人
* @Param formDTO
* @Return {@link Result<List<HomeUserResultDTO>>}
* @Author zhaoqifeng
* @Date 2021/11/1 11:04
*/
@PostMapping("getpeoplebyroom")
public Result<List<HomeUserResultDTO>> getPeopleByRoom(@RequestBody IcResiUserDTO formDTO) {
return new Result<List<HomeUserResultDTO>>().ok(icResiUserService.getPeopleByRoom(formDTO.getHomeId()));
}
@PostMapping("listresi")
public Result<PageData<Map<String,Object>>> queryListResi1(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO){
//pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc");
pageFormDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(pageFormDTO,IcResiUserPageFormDTO.AddUserInternalGroup.class);
return new Result<PageData<Map<String,Object>>>().ok(icResiUserService.pageResiMap(pageFormDTO));
}
/**
* 编辑页面显示居民信息详情
*
* @param pageFormDTO
* @return com.epmet.commons.tools.utils.Result
* @author yinzuomei
* @date 2021/10/28 10:29 上午
*/
@PostMapping("detail")
public Result queryIcResiDetail(@LoginUser TokenDto tokenDto,@RequestBody IcResiDetailFormDTO pageFormDTO){
//pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc");
pageFormDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(pageFormDTO,IcResiDetailFormDTO.AddUserInternalGroup.class);
return new Result().ok(icResiUserService.queryIcResiDetail(pageFormDTO));
}
}

29
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -18,10 +18,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.ResiUserQueryValueDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.entity.IcResiUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
@ -44,4 +47,30 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* @Description 更新或新增居民信息各表数据
**/
void upTable(@Param("tableName") String tableName, @Param("id") String id, @Param("map") Map<String, String> map);
List<Map<String,Object>> selectListResiMap(@Param("customerId") String customerId,
@Param("formCode") String formCode,
@Param("conditions") List<ResiUserQueryValueDTO> conditions,
@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>> selectListMapById(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);
}

23
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -21,7 +21,10 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.IcResiDetailFormDTO;
import com.epmet.dto.form.IcResiUserFormDTO;
import com.epmet.dto.result.HomeUserResultDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.entity.IcResiUserEntity;
import java.util.List;
@ -106,4 +109,24 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
* @Description 党建互联平台--修改居民信息
**/
void edit(TokenDto tokenDto, List<IcResiUserFormDTO> formDTO);
/**
* @Description 获取房间内人员
* @Param homeId
* @Return {@link List< HomeUserResultDTO>}
* @Author zhaoqifeng
* @Date 2021/11/1 10:52
*/
List<HomeUserResultDTO> getPeopleByRoom(String homeId);
PageData<Map<String,Object>> pageResiMap(IcResiUserPageFormDTO formDTO);
/**
* 编辑页面显示居民信息详情
*
* @param pageFormDTO
* @return java.util.Map
* @author yinzuomei
* @date 2021/10/28 10:29 上午
*/
Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO);
}

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

@ -17,25 +17,42 @@
package com.epmet.service.impl;
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;
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.constant.StrConstant;
import com.epmet.commons.tools.enums.GenderEnum;
import com.epmet.commons.tools.enums.HouseTypeEnum;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserConstant;
import com.epmet.dao.IcResiUserDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.form.IcResiDetailFormDTO;
import com.epmet.dto.form.IcResiUserFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.HomeUserResultDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.redis.IcResiUserRedis;
import com.epmet.service.IcResiUserService;
import oracle.sql.NUMBER;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -44,6 +61,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 用户基础信息
@ -51,6 +70,7 @@ import java.util.*;
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Slf4j
@Service
public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResiUserEntity> implements IcResiUserService {
private Logger logger = LogManager.getLogger(IcResiUserServiceImpl.class);
@ -58,6 +78,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
private IcResiUserRedis icResiUserRedis;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
@Override
public PageData<IcResiUserDTO> page(Map<String, Object> params) {
@ -216,4 +240,177 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
/**
* @param homeId
* @Description 获取房间内人员
* @Param homeId
* @Return {@link List< HomeUserResultDTO >}
* @Author zhaoqifeng
* @Date 2021/11/1 10:52
*/
@Override
public List<HomeUserResultDTO> getPeopleByRoom(String homeId) {
if(StringUtils.isBlank(homeId)) {
return Collections.emptyList();
}
LambdaQueryWrapper<IcResiUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiUserEntity::getHomeId, homeId);
wrapper.orderByAsc(IcResiUserEntity::getYhzgx);
List<IcResiUserEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
return list.stream().map(item -> {
HomeUserResultDTO dto = new HomeUserResultDTO();
dto.setUserId(item.getId());
dto.setName(item.getName());
return dto;
}).collect(Collectors.toList());
}
@Override
public PageData<Map<String, Object>> pageResiMap(IcResiUserPageFormDTO formDTO) {
// 查询列表展示项,如果没有,直接返回
CustomerFormQueryDTO queryDTO1=new CustomerFormQueryDTO();
queryDTO1.setCustomerId(formDTO.getCustomerId());
queryDTO1.setFormCode(formDTO.getFormCode());
Result<List<IcFormResColumnDTO>> resultColumnRes=operCustomizeOpenFeignClient.queryConditions(queryDTO1);
if (!resultColumnRes.success() || CollectionUtils.isEmpty(resultColumnRes.getData())) {
log.warn("没有配置列表展示列");
return new PageData(new ArrayList(), NumConstant.ZERO);
}
List<IcFormResColumnDTO> resultColumns = resultColumnRes.getData();
// 查询列表展示项需要用到哪些子表
Result<List<String>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO1);
List<String> subTables =subTablesRes.getData();
PageInfo<Map<String, Object>> pageInfo=new PageInfo<>();
if (null == formDTO.getPageFlag()||formDTO.getPageFlag()) {
//分页
pageInfo= PageHelper.startPage(formDTO.getPageNo(),
formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectListResiMap(formDTO.getCustomerId(),
formDTO.getFormCode(),
formDTO.getConditions(),
resultColumns,
subTables));
}else{
List<Map<String,Object>> list=baseDao.selectListResiMap(formDTO.getCustomerId(),
formDTO.getFormCode(),
formDTO.getConditions(),
resultColumns,
subTables);
pageInfo.setTotal(CollectionUtils.isEmpty(list)?NumConstant.ZERO:list.size());
pageInfo.setList(list);
}
List<Map<String, Object>> list = pageInfo.getList();
//查询网格名称
List<String> gridIds = new ArrayList<>();
Set<String> houseIds = new HashSet<>();
for (Map<String, Object> map : list) {
log.warn(JSON.toJSONString(map));
if (map.containsKey(UserConstant.GRID_ID) && null != map.get(UserConstant.GRID_ID) && StringUtils.isNotBlank(map.get(UserConstant.GRID_ID).toString())) {
gridIds.add(map.get(UserConstant.GRID_ID).toString());
}
if (map.containsKey("HOME_ID") && null != map.get("HOME_ID") && StringUtils.isNotBlank(map.get("HOME_ID").toString())) {
houseIds.add(map.get("HOME_ID").toString());
}
}
Result<List<AllGridsByUserIdResultDTO>> gridInfoRes=govOrgOpenFeignClient.getGridListByGridIds(gridIds);
List<AllGridsByUserIdResultDTO> gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>();
Map<String, AllGridsByUserIdResultDTO> gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity()));
//查询房子名称
Result<List<HouseInfoDTO>> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds);
List<HouseInfoDTO> houseInfoDTOList = houseInfoRes.success() && !CollectionUtils.isEmpty(houseInfoRes.getData()) ? houseInfoRes.getData() : new ArrayList<>();
Map<String, HouseInfoDTO> houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity()));
for (Map<String, Object> resultMap : list) {
String gridIdValue = null != resultMap.get(UserConstant.GRID_ID) ? resultMap.get(UserConstant.GRID_ID).toString() : StrConstant.EPMETY_STR;
resultMap.put("GRID_ID_VALUE", gridIdValue);
if (null != gridInfoMap && gridInfoMap.containsKey(gridIdValue) && null != gridInfoMap.get(gridIdValue)) {
//GRID_NAME
resultMap.put(UserConstant.GRID_ID, gridInfoMap.get(gridIdValue).getGridName());
}
String homeId = null != resultMap.get("HOME_ID") ? resultMap.get("HOME_ID").toString() : StrConstant.EPMETY_STR;
resultMap.put("HOME_ID_VALUE", homeId);
if (null != houseInfoMap && houseInfoMap.containsKey(homeId) && null != houseInfoMap.get(homeId)) {
HouseInfoDTO houseInfoDTO = houseInfoMap.get(homeId);
String buildName = StringUtils.isNotBlank(houseInfoDTO.getBuildingName()) ? houseInfoDTO.getBuildingName() : StrConstant.EPMETY_STR;
resultMap.put("BUILD_NAME", buildName);
String neighBorName = StringUtils.isNotBlank(houseInfoDTO.getNeighborHoodName()) ? houseInfoDTO.getNeighborHoodName() : StrConstant.EPMETY_STR;
resultMap.put("VILLAGE_NAME", neighBorName);
String unitName = StringUtils.isNotBlank(houseInfoDTO.getUnitName()) ? houseInfoDTO.getUnitName() : StrConstant.EPMETY_STR;
resultMap.put("UNIT_NAME", unitName);
String doorName = StringUtils.isNotBlank(houseInfoDTO.getDoorName()) ? houseInfoDTO.getDoorName() : StrConstant.EPMETY_STR;
resultMap.put("DOOR_NAME", doorName);
String houseType = StringUtils.isNotBlank(houseInfoDTO.getHouseType()) ? houseInfoDTO.getHouseType() : StrConstant.EPMETY_STR;
//房屋类型,1楼房,2平房,3别墅
resultMap.put(UserConstant.HOUSE_TYPE_KEY, "");
if (HouseTypeEnum.LOUFANG.getCode().equals(houseType)) {
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.LOUFANG.getName());
} else if (HouseTypeEnum.PINGFANG.getCode().equals(houseType)) {
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.PINGFANG.getName());
} else if (HouseTypeEnum.BIESHU.getCode().equals(houseType)) {
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.BIESHU.getName());
}
resultMap.put("HOME_ID", neighBorName.concat(buildName).concat(unitName).concat(doorName));
}
if (resultMap.containsKey(UserConstant.GENDER)) {
String genderValue = null != resultMap.get(UserConstant.GENDER) ? resultMap.get(UserConstant.GENDER).toString() : StrConstant.EPMETY_STR;
if (GenderEnum.MAN.getCode().equals(genderValue)) {
resultMap.put(UserConstant.GENDER, GenderEnum.MAN.getName());
} else if (GenderEnum.WOMAN.getCode().equals(genderValue)) {
resultMap.put(UserConstant.GENDER, GenderEnum.WOMAN.getName());
} else if (GenderEnum.UN_KNOWN.getCode().equals(genderValue)) {
resultMap.put(UserConstant.GENDER, GenderEnum.UN_KNOWN.getName());
}
}
}
pageInfo.setList(list);
return new PageData<>(pageInfo.getList(), pageInfo.getTotal());
}
/**
* 编辑页面显示居民信息详情
*
* @param pageFormDTO
* @return java.util.Map
* @author yinzuomei
* @date 2021/10/28 10:29 上午
*/
@Override
public Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO) {
Map resultMap = new HashMap();
// 先查询主表,主表没有记录,直接返回空
List<Map<String, Object>> icResiUserMapList = baseDao.selectListMapById(pageFormDTO.getIcResiUserId());
if (CollectionUtils.isEmpty(icResiUserMapList)) {
return new HashMap();
}
resultMap.put("ic_resi_user", icResiUserMapList);
CustomerFormQueryDTO queryDTO=ConvertUtils.sourceToTarget(pageFormDTO,CustomerFormQueryDTO.class);
//循环查询每个子表的记录
Result<Set<String>> subTableRes=operCustomizeOpenFeignClient.queryIcResiSubTables(queryDTO);
if(subTableRes.success()&&!CollectionUtils.isEmpty(subTableRes.getData())){
for (String subTalbeName : subTableRes.getData()) {
List<Map<String, Object>> list = baseDao.selectSubTableRecords(pageFormDTO.getIcResiUserId(), subTalbeName);
if (!CollectionUtils.isEmpty(list)) {
resultMap.put(subTalbeName, list);
}
//else{
// resultMap.put(subTalbeName,new ArrayList<>());
//}
}
}
return resultMap;
}
}

55
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -35,4 +35,59 @@
WHERE id = #{id}
</update>
<select id="selectListMapById" parameterType="java.lang.String" resultType="map">
select * from ic_resi_user where del_flag='0' and id=#{icResiUserId}
</select>
<select id="selectSubTableRecords" parameterType="map" resultType="map">
select * from ${tableName} where del_flag='0' and IC_RESI_USER=#{icResiUserId}
</select>
<select id="selectListResiMap" parameterType="map" resultType="map">
select
ic_resi_user.id as icResiUserId,
<foreach item="column" collection="resultColumns" open="" separator="," close="">
${column.columnName}
</foreach>
,
GROUP_CONCAT(ic_resi_demand.CATEGORY_CODE) as DEMAND_CATEGORY_IDS,
GROUP_CONCAT(ic_resi_demand_dict.CATEGORY_NAME) as DEMAND_NAME
FROM
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}
<if test="null != conditions and conditions.size() > 0">
<foreach item="subCondition" collection="conditions" open="" separator="" close="">
<if test="null != subCondition.columnValue and subCondition.columnValue.size() > 0">
<if test="subCondition.queryType!= null and subCondition.queryType == 'equal' ">
and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]}
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'like' ">
and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%')
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'daterange' ">
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>
</mapper>
Loading…
Cancel
Save