Browse Source

Merge branch 'yantai_zhengwu_master' of http://git.elinkit.com.cn:7070/r/epmet-cloud into yantai_zhengwu_master

dev
wxz 2 years ago
parent
commit
507d31c4a1
  1. 32
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CommunityCountCensusFormDTO.java
  2. 13
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePageFormDTO.java
  3. 34
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseCountPictureFormDTO.java
  4. 15
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/yt/EnterpriseCountPlaceTypeFormDTO.java
  5. 3
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyCountCensusResultDTO.java
  6. 23
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityCountCensusResultDTO.java
  7. 33
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityListByAgencyIdResultDTO.java
  8. 23
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseCountPictureListResultDTO.java
  9. 24
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseCountPictureResultDTO.java
  10. 37
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HousePictureListResultDTO.java
  11. 24
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/yt/EnterpriseCountPlaceTypeDetailDTO.java
  12. 17
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/yt/EnterpriseCountPlaceTypeResDTO.java
  13. 41
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
  14. 17
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java
  15. 113
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java
  16. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java
  17. 14
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
  18. 11
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java
  19. 7
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
  20. 50
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/HousePictureListExcelDTO.java
  21. 27
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
  22. 12
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java
  23. 7
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java
  24. 128
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
  25. 52
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java
  26. 91
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java
  27. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffLoginLogServiceImpl.java
  28. 76
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
  29. 48
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml
  30. 131
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  31. 16
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/StaffLoginLogDao.xml
  32. 33
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/resi/ResiPortrayalCommonFormDTO.java
  33. 121
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java
  34. 28
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResultDTO.java
  35. 97
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  36. 30
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  37. 36
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  38. 176
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  39. 201
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

32
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CommunityCountCensusFormDTO.java

@ -0,0 +1,32 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* @ClassName AgencyCountCensus$
* @Description
* @Date 2023/4/6 16:46
* @Author lichao
**/
@Data
public class CommunityCountCensusFormDTO implements Serializable {
private static final long serialVersionUID = 4360690752084258055L;
@NotBlank(message = "组织Id不能为空")
private String agencyId;
private Date timeStart;
private Date timeEnd;
private Integer pageNum;
private Integer pageSize;
}

13
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePageFormDTO.java

@ -10,6 +10,19 @@ import java.io.Serializable;
*/
@Data
public class EnterprisePageFormDTO implements Serializable {
/**
* 组织id或者网格id
* 04.10添加次入参原型地址https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvzaghxlqxhe
*/
private String orgId;
/**
* 组织agency
* 网格grid
* 04.10添加次入参原型地址https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvzaghxlqxhe
*/
private String orgType;
/**
* 场所区域
*/

34
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseCountPictureFormDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 根据小区楼宇单元名称校验是否存在
* @Author wgf
* @Date 2022/8/24 9:03
*/
@Data
public class HouseCountPictureFormDTO implements Serializable {
private static final long serialVersionUID = 2636608477324780974L;
private String orgIdPath;
private String orgId;
private String orgType;
private Date timeStart;
private Date timeEnd;
private String purpose;
private Integer rentFlag;
private Integer pageSize;
private Integer pageNo;
}

15
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/yt/EnterpriseCountPlaceTypeFormDTO.java

@ -0,0 +1,15 @@
package com.epmet.dto.form.yt;
import lombok.Data;
/**
* @Description 九小场所分析
* @Author yzm
* @Date 2023/4/7 16:47
*/
@Data
public class EnterpriseCountPlaceTypeFormDTO {
private String orgId;
private String orgType;
}

3
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyCountCensusResultDTO.java

@ -1,5 +1,7 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
@ -8,6 +10,7 @@ import java.io.Serializable;
* @Date 2023/4/6 16:46
* @Author lichao
**/
@Data
public class AgencyCountCensusResultDTO implements Serializable {
private static final long serialVersionUID = 4360690752084258055L;

23
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityCountCensusResultDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @ClassName AgencyCountCensus$
* @Description
* @Date 2023/4/6 16:46
* @Author lichao
**/
@Data
public class CommunityCountCensusResultDTO implements Serializable {
private static final long serialVersionUID = 4360690752084258055L;
private String agencyId;
private String agencyName;
private Integer count;
}

33
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityListByAgencyIdResultDTO.java

@ -0,0 +1,33 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Description:
* @Author: lichao
* @Date: 2023/4/7 16:43
*/
@Data
public class CommunityListByAgencyIdResultDTO implements Serializable {
private static final long serialVersionUID = -1677303397440121269L;
private String id;
private String pids;
private String name;
private String streeName;
// private String streeId;
private String districtName;
// private String districtId;
private Date createTime;
}

23
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseCountPictureListResultDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Description:
* @Author: lichao
* @Date: 2023/4/11 15:05
*/
@NoArgsConstructor
@Data
public class HouseCountPictureListResultDTO implements Serializable {
private static final long serialVersionUID = 2063032844842070847L;
private String type;
private Integer count;
}

24
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseCountPictureResultDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Description:
* @Author: lichao
* @Date: 2023/4/11 15:05
*/
@NoArgsConstructor
@Data
public class HouseCountPictureResultDTO implements Serializable {
private static final long serialVersionUID = 2063032844842070847L;
private Integer total;
private List<HouseCountPictureListResultDTO> list;
}

37
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HousePictureListResultDTO.java

@ -0,0 +1,37 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Description:
* @Author: lichao
* @Date: 2023/4/11 14:41
*/
@NoArgsConstructor
@Data
public class HousePictureListResultDTO implements Serializable {
private static final long serialVersionUID = 2063032844842070847L;
private String houseId;
private String districtName;
private String streetName;
private String communityName;
private String gridName;
private String houseName;
private String purposeName;
private String rentFlagName;
private String orgIdPath;
}

24
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/yt/EnterpriseCountPlaceTypeDetailDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.result.yt;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
/**
* @Description 九小场所分析
* @Author yzm
* @Date 2023/4/7 16:48
*/
@Data
public class EnterpriseCountPlaceTypeDetailDTO {
private String placeType;
private String placeTypeName;
private Integer total;
public EnterpriseCountPlaceTypeDetailDTO() {
this.total = NumConstant.ZERO;
}
}

17
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/yt/EnterpriseCountPlaceTypeResDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result.yt;
import lombok.Data;
import java.util.List;
/**
* @Description 九小场所分析
* @Author yzm
* @Date 2023/4/7 16:47
*/
@Data
public class EnterpriseCountPlaceTypeResDTO {
private Integer total;
private List<EnterpriseCountPlaceTypeDetailDTO> list;
}

41
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java

@ -251,6 +251,17 @@ public class CustomerAgencyController {
return new Result<StaffInAgencyListResultDTO>().ok(customerAgencyService.staffInAgencyList(tokenDTO.getUserId()));
}
/**
* @param tokenDTO
* @return
* @Author sun
* @Description 工作端-查询当前人员所属组织及所有下级组织到区县级
**/
@PostMapping("staffinAgencyLevelList")
public Result<StaffInAgencyListResultDTO> staffinAgencyLevelList(@LoginUser TokenDto tokenDTO) {
return new Result<StaffInAgencyListResultDTO>().ok(customerAgencyService.staffinAgencyLevelList(tokenDTO.getUserId()));
}
/**
* @Description 对外接口根据customerId返回Element UI中Tree结构的agency列表
* @param map
@ -517,12 +528,40 @@ public class CustomerAgencyController {
return customerAgencyService.getCurrentUserCommunityInfo(tokenDTO);
}
/**
* @Description: 返回下级数量统计
* @param agencyId:
* @Return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.AgencyCountCensusResultDTO>>
* @Author: lichao
* @Date: 2023/4/7 14:48
*/
@GetMapping("getAgencyCountList")
public Result<List<AgencyCountCensusResultDTO>> getAgencyCountList(@RequestParam String agencyId){
return new Result<List<AgencyCountCensusResultDTO>>().ok(customerAgencyService.getAgencyCountList(agencyId));
}
/**
* @Description: 获取下级组织数量统计
* @param dto:
* @Return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.CommunityCountCensusResultDTO>>
* @Author: lichao
* @Date: 2023/4/7 15:08
*/
@PostMapping("getCommunityCountList")
public Result<List<CommunityCountCensusResultDTO>> getCommunityCountList(@RequestBody CommunityCountCensusFormDTO dto){
return new Result<List<CommunityCountCensusResultDTO>>().ok(customerAgencyService.getCommunityCountList(dto));
}
/**
* @Description: 根据agencyId获取下级社区列表
* @param dto:
* @Return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.CommunityListByAgencyIdResultDTO>>
* @Author: lichao
* @Date: 2023/4/7 16:49
*/
@PostMapping("getCommunityList")
public Result<PageData<CommunityListByAgencyIdResultDTO>> getCommunityList(@RequestBody CommunityCountCensusFormDTO dto){
return new Result<PageData<CommunityListByAgencyIdResultDTO>>().ok(customerAgencyService.getCommunityList(dto));
}
}

17
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java

@ -22,14 +22,15 @@ import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.dto.form.EnterpriseFormDTO;
import com.epmet.dto.form.EnterprisePageFormDTO;
import com.epmet.dto.form.EnterprisePatrolFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.yt.EnterpriseCountPlaceTypeFormDTO;
import com.epmet.dto.result.EnterpriseDetailDTO;
import com.epmet.dto.result.EnterprisePatrolResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.yt.EnterpriseCountPlaceTypeResDTO;
import com.epmet.excel.EnterpriseExportExcelDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.service.IcEnterpriseService;
@ -69,6 +70,7 @@ public class IcEnterpriseController implements ResultDataResolver {
private IcEnterpriseService icEnterpriseService;
@Autowired
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
/**
* 企事业单位巡查新增/编辑
*
@ -359,4 +361,17 @@ public class IcEnterpriseController implements ResultDataResolver {
icEnterpriseService.qrCodeExport(formDTO,response);
}
/**
* 九小场所分析:返回各个场所类型的数量
*
* @param formDTO
* @return
*/
@PostMapping("count-type")
public Result<EnterpriseCountPlaceTypeResDTO> countType(@RequestBody EnterpriseCountPlaceTypeFormDTO formDTO) {
return new Result<EnterpriseCountPlaceTypeResDTO>().ok(icEnterpriseService.countType(formDTO.getOrgId(), formDTO.getOrgType()));
}
}

113
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java

@ -17,24 +17,47 @@
package com.epmet.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.MaskResponse;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.form.PageFormDTO;
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.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.form.CheckHouseInfoFormDTO;
import com.epmet.dto.form.HouseCountPictureFormDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.result.HouseAgencyInfoResultDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.HouseListResultDTO;
import com.epmet.dto.result.HousesNameResultDTO;
import com.epmet.dto.result.*;
import com.epmet.excel.EnterpriseExportExcelDTO;
import com.epmet.excel.HousePictureListExcelDTO;
import com.epmet.service.IcHouseService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -45,6 +68,7 @@ import java.util.Map;
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-25
*/
@Slf4j
@RestController
@RequestMapping("ichouse")
public class IcHouseController {
@ -161,4 +185,85 @@ public class IcHouseController {
return icHouseService.checkHomeInfo(formDTO);
}
/**
* @Description: 房屋画像-用途统计
* @param dto:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.HouseCountPictureResultDTO>
* @Author: lichao
* @Date: 2023/4/11 15:08
*/
@PostMapping("getHousePurposeCount")
public Result<HouseCountPictureResultDTO> getHousePurposeCount(@RequestBody HouseCountPictureFormDTO dto){
return new Result<HouseCountPictureResultDTO>().ok(icHouseService.getHousePurposeCount(dto));
}
/**
* @Description: 房屋画像-状态统计
* @param dto:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.HouseCountPictureResultDTO>
* @Author: lichao
* @Date: 2023/4/11 15:07
*/
@PostMapping("getHouseStatusCount")
public Result<HouseCountPictureResultDTO> getHouseStatusCount(@RequestBody HouseCountPictureFormDTO dto){
return new Result<HouseCountPictureResultDTO>().ok(icHouseService.getHouseStatusCount(dto));
}
/**
* @Description: 房屋画像-列表
* @param dto:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData < com.epmet.dto.result.HousePictureListResultDTO>>
* @Author: lichao
* @Date: 2023/4/11 16:20
*/
@PostMapping("getHousePictureList")
public Result<PageData<HousePictureListResultDTO>> getHousePictureList(@RequestBody HouseCountPictureFormDTO dto){
return new Result<PageData<HousePictureListResultDTO>>().ok(icHouseService.getHousePictureList(dto));
}
@PostMapping("export")
public void export(@RequestBody HouseCountPictureFormDTO formDTO, HttpServletResponse response) throws IOException {
ExcelWriter excelWriter = null;
formDTO.setPageNo(NumConstant.ONE);
formDTO.setPageSize(NumConstant.TEN_THOUSAND);
try {
String fileName = "房屋列表" + DateUtils.format(new Date()) + ".xlsx";
// 头的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 背景设置为红色
headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
FreezeAndFilter writeHandler = new FreezeAndFilter();
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), HousePictureListExcelDTO.class)
.registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.registerWriteHandler(writeHandler).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
PageData<HousePictureListResultDTO> data = null;
List<HousePictureListExcelDTO> list = null;
do {
data = icHouseService.getHousePictureList(formDTO);
list = ConvertUtils.sourceToTarget(data.getList(), HousePictureListExcelDTO.class);
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
excelWriter.write(list, writeSheet);
} while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize());
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
} catch (Exception e) {
log.error("房屋列表导出异常export exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
}

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java

@ -141,11 +141,11 @@ public class StaffLoginLogController {
PageData<AccountActivityInfo> res = staffLoginLogService.getAccountActivityInfo(formDTO);
if (!CollectionUtils.isEmpty(res.getList())) {
if("1".equals(formDTO.getIsActivity())){
List<AccountActivityExcel> accountActivityExcels = ConvertUtils.sourceToTarget(res.getList(), AccountActivityExcel.class);
ExcelUtils.exportExcelToTarget(response, null, accountActivityExcels, AccountActivityInfo.class);
// List<AccountActivityExcel> accountActivityExcels = ConvertUtils.sourceToTarget(res.getList(), AccountActivityExcel.class);
ExcelUtils.exportExcelToTarget(response, null, res.getList(), AccountActivityExcel.class);
}else {
List<AccountInactivityExcel> accountActivityExcels = ConvertUtils.sourceToTarget(res.getList(), AccountInactivityExcel.class);
ExcelUtils.exportExcelToTarget(response, null, accountActivityExcels, AccountActivityInfo.class);
// List<AccountInactivityExcel> accountActivityExcels = ConvertUtils.sourceToTarget(res.getList(), AccountInactivityExcel.class);
ExcelUtils.exportExcelToTarget(response, null, res.getList(), AccountInactivityExcel.class);
}
}

14
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java

@ -108,6 +108,8 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
**/
List<AgencySubResultDTO> selectSubAgencyList(@Param("subAgencyPids") String subAgencyPids);
List<AgencySubResultDTO> selectSubAgencyLevelList(@Param("subAgencyPids") String subAgencyPids);
/**
* 查询客户根级组织
*
@ -195,6 +197,8 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
**/
AgencyResultDTO selectAgencyByStaffId(@Param("staffId") String staffId);
// AgencyResultDTO selectAgencyByLevelStaffId(@Param("staffId") String staffId);
/**
* @param customerId
* @param pid
@ -430,6 +434,14 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
*/
List<AgencyResultDTO> getAllCommunity(String customerId);
Integer agencyCount(@Param("pids") String pids,@Param("level") String level);
List<AgencyCountCensusResultDTO> agencyCount(@Param("pids") String pids);
Integer agencyGridCount(@Param("pids") String pids);
Integer agencyStaffCount(@Param("pids") String pids);
Integer getCommunityCount(@Param("pids")String pids,@Param("timeStart")Date timeStart,@Param("timeEnd")Date timeEnd);
List<CommunityListByAgencyIdResultDTO> getCommunityByPidList (@Param("pids")String pids,@Param("timeStart")Date timeStart,@Param("timeEnd")Date timeEnd);
}

11
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java

@ -3,6 +3,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.EnterprisePageFormDTO;
import com.epmet.dto.result.EnterpriseDetailDTO;
import com.epmet.dto.result.yt.EnterpriseCountPlaceTypeDetailDTO;
import com.epmet.entity.IcEnterpriseEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -32,4 +33,14 @@ public interface IcEnterpriseDao extends BaseDao<IcEnterpriseEntity> {
List<EnterpriseDetailDTO> selectList(EnterprisePageFormDTO formDTO);
List<IcEnterpriseEntity> selectForUniqueName(@Param("gridId") String gridId, @Param("placeOrgName") String placeOrgName, @Param("enterpriseId") String enterpriseId);
/**
* 按场所类型
* @param orgId
* @param orgType
* @return
*/
List<EnterpriseCountPlaceTypeDetailDTO> selectCountByPlaceType(@Param("customerId")String customerId,
@Param("orgId") String orgId,
@Param("orgType") String orgType);
}

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

@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;
@ -218,4 +219,10 @@ public interface IcHouseDao extends BaseDao<IcHouseEntity> {
* @return
*/
List<GroupRentHouseResultDTO> selectGroupRentHouseList(GroupRentHouseFormDTO formDTO);
List<HouseCountPictureListResultDTO> getHousePurposeCount(@Param("orgId") String orgId,@Param("orgType") String orgType, @Param("timeStart")Date timeStart,@Param("timeEnd")Date timeEnd);
List<HouseCountPictureListResultDTO> getHouseStatusCount(@Param("orgId") String orgId,@Param("orgType") String orgType, @Param("timeStart")Date timeStart,@Param("timeEnd")Date timeEnd);
List<HousePictureListResultDTO> getHousePictureList(@Param("orgId") String orgId,@Param("orgType") String orgType, @Param("timeStart")Date timeStart,@Param("timeEnd")Date timeEnd,@Param("purpose") String purpose,@Param("rentFlag") Integer rentFlag);
}

50
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/HousePictureListExcelDTO.java

@ -0,0 +1,50 @@
package com.epmet.excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.util.Date;
/**
* 企事业单位导出excel
*/
@Data
public class HousePictureListExcelDTO {
@ExcelIgnore
private String houseId;
@ExcelProperty(value = "区县")
@ColumnWidth(25)
private String districtName;
@ExcelProperty(value = "镇街")
@ColumnWidth(25)
private String streetName;
@ExcelProperty(value = "社区")
@ColumnWidth(25)
private String communityName;
@ExcelProperty(value = "网格")
@ColumnWidth(25)
private String gridName;
@ExcelProperty(value = "房屋名称")
@ColumnWidth(25)
private String houseName;
@ExcelProperty(value = "房屋用途")
@ColumnWidth(25)
private String purposeName;
@ExcelProperty(value = "房屋状态")
@ColumnWidth(25)
private String rentFlagName;
@ExcelIgnore
private String orgIdPath;
}

27
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java

@ -215,6 +215,9 @@ public interface CustomerAgencyService extends BaseService<CustomerAgencyEntity>
**/
StaffInAgencyListResultDTO staffInAgencyList(String staffId);
StaffInAgencyListResultDTO staffinAgencyLevelList(String staffId);
/**
* @Description 运营端-返回element ui - tree 结构agency列表
* @param customerId
@ -362,5 +365,29 @@ public interface CustomerAgencyService extends BaseService<CustomerAgencyEntity>
* @return
*/
String getOrgIdPath(String orgId);
/**
* 返回下级数量
* @param agencyId
* @return
*/
List<AgencyCountCensusResultDTO> getAgencyCountList(String agencyId);
/**
* @Description: 获取下级组织的社区数量
* @param dto:
* @Return java.util.List<com.epmet.dto.result.CommunityCountCensusResultDTO>
* @Author: lichao
* @Date: 2023/4/7 15:09
*/
List<CommunityCountCensusResultDTO> getCommunityCountList(CommunityCountCensusFormDTO dto);
/**
* @Description: 根据agencyId获取下级社区列表
* @param dto:
* @Return java.util.List<com.epmet.dto.result.CommunityListByAgencyIdResultDTO>
* @Author: lichao
* @Date: 2023/4/7 16:49
*/
PageData<CommunityListByAgencyIdResultDTO> getCommunityList(CommunityCountCensusFormDTO dto);
}

12
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java

@ -2,19 +2,17 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.dto.form.EnterpriseFormDTO;
import com.epmet.dto.form.EnterprisePageFormDTO;
import com.epmet.dto.form.EnterprisePatrolFormDTO;
import com.epmet.dto.result.EnterpriseDetailDTO;
import com.epmet.dto.result.EnterprisePatrolResultDTO;
import com.epmet.dto.result.yt.EnterpriseCountPlaceTypeResDTO;
import com.epmet.entity.IcEnterpriseEntity;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
/**
@ -103,4 +101,12 @@ public interface IcEnterpriseService extends BaseService<IcEnterpriseEntity> {
*/
void qrCodeExport(EnterprisePageFormDTO formDTO, HttpServletResponse response) throws IOException;
/**
* 九小场所分析:返回各个场所类型的数量
*
* @param orgId
* @param orgType
* @return
*/
EnterpriseCountPlaceTypeResDTO countType(String orgId, String orgType);
}

7
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java

@ -2,12 +2,14 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.CheckHouseInfoFormDTO;
import com.epmet.dto.form.DetailByTypeFormDTO;
import com.epmet.dto.form.HouseCountPictureFormDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcHouseEntity;
@ -139,4 +141,9 @@ public interface IcHouseService extends BaseService<IcHouseEntity> {
Result checkHomeInfo(CheckHouseInfoFormDTO formDTO);
HouseCountPictureResultDTO getHousePurposeCount(HouseCountPictureFormDTO dto);
HouseCountPictureResultDTO getHouseStatusCount(HouseCountPictureFormDTO dto);
PageData<HousePictureListResultDTO> getHousePictureList(HouseCountPictureFormDTO dto);
}

128
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -37,12 +38,14 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.PidUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerAgencyConstant;
import com.epmet.constant.CustomerGridConstant;
import com.epmet.dao.*;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.region.LogOperationResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerAgencyEntity;
import com.epmet.entity.CustomerDepartmentEntity;
@ -56,6 +59,8 @@ import com.epmet.feign.OperCrmFeignClient;
import com.epmet.redis.CustomerAgencyRedis;
import com.epmet.service.CustomerAgencyService;
import com.epmet.util.ModuleConstant;
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;
@ -681,6 +686,17 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
return subAgencyList;
}
private List<AgencySubResultDTO> getDepartmentLevelList(String subAgencyPids) {
List<AgencySubResultDTO> subAgencyList = baseDao.selectSubAgencyLevelList(subAgencyPids);
if (subAgencyList.size() > NumConstant.ZERO) {
for (AgencySubResultDTO sub : subAgencyList) {
List<AgencySubResultDTO> subAgency = getDepartmentLevelList(sub.getPids() + ":" + sub.getAgencyId());
sub.setSubAgencyList(subAgency);
}
}
return subAgencyList;
}
/**
* @param staffId
* @return
@ -1052,6 +1068,24 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
return resultDTO;
}
@Override
public StaffInAgencyListResultDTO staffinAgencyLevelList(String staffId) {
StaffInAgencyListResultDTO resultDTO = new StaffInAgencyListResultDTO();
//1.查询工作人员所属组织信息
AgencyResultDTO agencyList = baseDao.selectAgencyByStaffId(staffId);
if (null == agencyList) {
logger.error(String.format("查询工作人员所属组织信息失败,staffId->%s", staffId));
throw new RenException(CustomerAgencyConstant.SELECT_STAFF_AGENCY_EXCEPTION);
}
resultDTO.setAgencyList(agencyList);
//2.递归查询所有下级组织信息
List<AgencySubResultDTO> subAgencyList = getDepartmentLevelList(("".equals(agencyList.getPids()) ? "" : agencyList.getPids() + ":") + agencyList.getAgencyId());
resultDTO.setSubAgencyList(subAgencyList);
return resultDTO;
}
/**
* @param customerId
* @return com.epmet.dto.result.AgencyElementTreeResultDTO
@ -1193,6 +1227,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
result.setOrgLevel(rootAgency.getAgencyId().concat("-").concat(rootAgency.getLevel()));
result.setLongitude(rootAgency.getLongitude());
result.setLatitude(rootAgency.getLatitude());
result.setOrgIdPath(rootAgency.getOrgIdPath());
String orgTreeCacheKey = RedisKeys.getOrgTreeCacheKey(rootAgency.getAgencyId(),customerId);
Object o = redisUtils.get(orgTreeCacheKey);
@ -1624,6 +1659,14 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
}
return customerAgencyEntity.getPids().concat(StrConstant.COLON).concat(orgId);
}
/**
* @Description:
* @param agencyId:
* @Return java.util.List<com.epmet.dto.result.AgencyCountCensusResultDTO>
* @Author: lichao
* @Date: 2023/4/7 14:17
*/
@Override
public List<AgencyCountCensusResultDTO> getAgencyCountList(String agencyId) {
@ -1631,24 +1674,89 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
CustomerAgencyEntity customerAgency = baseDao.selectById(agencyId);
if (customerAgency != null){
// pidu
// 区县级
if (customerAgency.getLevel().equals("district")){
// Integer count = baseDao.agencyCount()
// 镇街级
}else if (customerAgency.getLevel().equals("street")){
String pids = PidUtils.convertPid2OrgIdPath(customerAgency.getId(),customerAgency.getPids());
agencyCountCensusResultDTOS = baseDao.agencyCount(pids);
AgencyCountCensusResultDTO agencyCountCensusResultDTOGrid = new AgencyCountCensusResultDTO();
agencyCountCensusResultDTOGrid.setLevel("grid");
agencyCountCensusResultDTOGrid.setCount(baseDao.agencyGridCount(pids));
agencyCountCensusResultDTOS.add(agencyCountCensusResultDTOGrid);
AgencyCountCensusResultDTO agencyCountCensusResultDTOStaff = new AgencyCountCensusResultDTO();
agencyCountCensusResultDTOStaff.setLevel("staff");
agencyCountCensusResultDTOStaff.setCount(baseDao.agencyStaffCount(pids));
agencyCountCensusResultDTOS.add(agencyCountCensusResultDTOStaff);
}else{
}else{
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取用户组织信息异常","获取用户组织信息异常");
}
return agencyCountCensusResultDTOS;
}
@Override
public List<CommunityCountCensusResultDTO> getCommunityCountList(CommunityCountCensusFormDTO dto) {
List<CommunityCountCensusResultDTO> resultDTOS = new ArrayList<>();
CustomerAgencyEntity customerAgency = baseDao.selectById(dto.getAgencyId());
if (customerAgency!=null){
String pids = PidUtils.convertPid2OrgIdPath(customerAgency.getId(),customerAgency.getPids());
LambdaQueryWrapper<CustomerAgencyEntity> queryWrapper = new LambdaQueryWrapper<CustomerAgencyEntity>().eq(CustomerAgencyEntity::getPids,pids);
List<CustomerAgencyEntity> agencyEntityList = baseDao.selectList(queryWrapper);
agencyEntityList.forEach(
entity->{
CommunityCountCensusResultDTO communityCountCensusResultDTO = new CommunityCountCensusResultDTO();
communityCountCensusResultDTO.setAgencyId(entity.getId());
communityCountCensusResultDTO.setAgencyName(entity.getOrganizationName());
String agencyPids = PidUtils.convertPid2OrgIdPath(entity.getId(),entity.getPids());
communityCountCensusResultDTO.setCount(baseDao.getCommunityCount(agencyPids,dto.getTimeStart(),dto.getTimeEnd()));
resultDTOS.add(communityCountCensusResultDTO);
}
);
}else {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取用户组织信息异常","获取用户组织信息异常");
}
}
return resultDTOS;
}
}else{
@Override
public PageData<CommunityListByAgencyIdResultDTO> getCommunityList(CommunityCountCensusFormDTO dto) {
CustomerAgencyEntity customerAgency = baseDao.selectById(dto.getAgencyId());
if (customerAgency!=null){
String pids = PidUtils.convertPid2OrgIdPath(customerAgency.getId(),customerAgency.getPids());
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<CommunityListByAgencyIdResultDTO> entityList = baseDao.getCommunityByPidList(pids,dto.getTimeStart(),dto.getTimeEnd());
entityList.forEach(
entity->{
String[] pidArray = entity.getPids().split(":");
LambdaQueryWrapper<CustomerAgencyEntity> queryWrapper = new LambdaQueryWrapper<CustomerAgencyEntity>().in(CustomerAgencyEntity::getId,pidArray);
List<CustomerAgencyEntity> customerAgencyEntities = baseDao.selectList(queryWrapper);
for (CustomerAgencyEntity customerAgencyEntity : customerAgencyEntities) {
if (customerAgencyEntity.getLevel().equals("district")){
entity.setDistrictName(customerAgencyEntity.getOrganizationName());
}
if (customerAgencyEntity.getLevel().equals("street")){
entity.setStreeName(customerAgencyEntity.getOrganizationName());
}
}
}
);
PageInfo<CommunityListByAgencyIdResultDTO> pageInfo = new PageInfo<>(entityList);
return new PageData<>(entityList, pageInfo.getTotal(),dto.getPageSize());
}else {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取用户组织信息异常","获取用户组织信息异常");
}
return agencyCountCensusResultDTOS;
}
}

52
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java

@ -29,10 +29,11 @@ import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.dto.result.yt.EnterpriseCountPlaceTypeDetailDTO;
import com.epmet.dto.result.yt.EnterpriseCountPlaceTypeResDTO;
import com.epmet.entity.*;
import com.epmet.excel.EnterpriseImportExcelDTO;
import com.epmet.excel.handler.IcEnterpriseExcelImportListener;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.OssFeignClient;
@ -85,8 +86,6 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
@Autowired
private IcEnterprisePatrolRecordDao enterprisePatrolRecordDao;
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
@Autowired
private IcCoverageCategoryDictDao coverageCategoryDictDao;
@Autowired
private OssFeignClient ossFeignClient;
@ -101,8 +100,6 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
@Autowired
private IcEnterpriseChangeRecordService icEnterpriseChangeRecordService;
@Autowired
private EpmetAdminOpenFeignClient epmetAdminOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
@ -678,4 +675,49 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
zip.close();
}
/**
* 九小场所分析:返回各个场所类型的数量
*
* @param orgId
* @param orgType
* @return
*/
@Override
public EnterpriseCountPlaceTypeResDTO countType(String orgId, String orgType) {
if (StringUtils.isBlank(orgId)) {
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId());
orgId = staffInfoCacheResult.getAgencyId();
orgType = "agency";
}
// 查字典
List<IcCoverageCategoryDictListResultDTO> dictList = SpringContextUtils.getBean(CoverageService.class).dictMap(EpmetRequestHolder.getLoginUserCustomerId(), CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode());
if (CollectionUtils.isEmpty(dictList)) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "场所类型字典为空", "场所类型字典为空");
}
//
List<EnterpriseCountPlaceTypeDetailDTO> placeTypeCountList = baseDao.selectCountByPlaceType(EpmetRequestHolder.getLoginUserCustomerId(),orgId, orgType);
Map<String, EnterpriseCountPlaceTypeDetailDTO> map = CollectionUtils.isEmpty(placeTypeCountList) ? new HashMap<>() : placeTypeCountList.stream().collect(Collectors.toMap(EnterpriseCountPlaceTypeDetailDTO::getPlaceType, o -> o));;
List<EnterpriseCountPlaceTypeDetailDTO> list = new ArrayList<>();
int total = 0;
for (IcCoverageCategoryDictListResultDTO placeType : dictList) {
EnterpriseCountPlaceTypeDetailDTO detailDTO = new EnterpriseCountPlaceTypeDetailDTO();
detailDTO.setPlaceType(placeType.getValue());
detailDTO.setPlaceTypeName(placeType.getLabel());
detailDTO.setTotal(NumConstant.ZERO);
if (map.containsKey(placeType.getValue())) {
detailDTO.setTotal(map.get(placeType.getValue()).getTotal());
}
list.add(detailDTO);
total += detailDTO.getTotal();
}
EnterpriseCountPlaceTypeResDTO resDTO = new EnterpriseCountPlaceTypeResDTO();
resDTO.setList(list);
resDTO.setTotal(total);
return resDTO;
}
}

91
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java

@ -9,26 +9,23 @@ 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.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis;
import com.epmet.commons.tools.redis.common.bean.HouseInfoCache;
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.dao.IcBuildingDao;
import com.epmet.dao.IcBuildingUnitDao;
import com.epmet.dao.IcHouseDao;
import com.epmet.dao.IcNeighborHoodDao;
import com.epmet.dao.*;
import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.IcResiCategoryStatsConfigDTO;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.CheckHouseInfoFormDTO;
import com.epmet.dto.form.HouseCountPictureFormDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.region.LogOperationResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcBuildingEntity;
import com.epmet.entity.IcBuildingUnitEntity;
import com.epmet.entity.IcHouseEntity;
import com.epmet.entity.IcNeighborHoodEntity;
import com.epmet.entity.*;
import com.epmet.enums.HousePurposeEnums;
import com.epmet.enums.HouseRentFlagEnums;
import com.epmet.enums.HouseTypeEnums;
@ -36,10 +33,14 @@ import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.redis.IcHouseRedis;
import com.epmet.service.CustomerAgencyService;
import com.epmet.service.IcHouseService;
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.poi.hssf.record.PageBreakRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -73,6 +74,10 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
private IcBuildingUnitDao buildingUnitDao;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private CustomerAgencyDao customerAgencyDao;
@Autowired
private CustomerGridDao customerGridDao;
@Override
public IcHouseDTO get(String id) {
@ -405,4 +410,74 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
return new Result<CheckHomeInfoResultInfo>().ok(checkHomeInfoResultInfo);
}
@Override
public HouseCountPictureResultDTO getHousePurposeCount(HouseCountPictureFormDTO dto) {
HouseCountPictureResultDTO resultDTO = new HouseCountPictureResultDTO();
resultDTO.setTotal(0);
if (dto.getOrgType().equals("community") || dto.getOrgType().equals("street") ||dto.getOrgType().equals("district") ||dto.getOrgType().equals("city")){
dto.setOrgType("agency");
}
resultDTO.setList(baseDao.getHousePurposeCount(dto.getOrgId(),dto.getOrgType(),dto.getTimeStart(),dto.getTimeEnd()));
resultDTO.getList().forEach(
result->resultDTO.setTotal(resultDTO.getTotal()+result.getCount())
);
return resultDTO;
}
@Override
public HouseCountPictureResultDTO getHouseStatusCount(HouseCountPictureFormDTO dto) {
HouseCountPictureResultDTO resultDTO = new HouseCountPictureResultDTO();
resultDTO.setTotal(0);
if (dto.getOrgType().equals("community") || dto.getOrgType().equals("street") ||dto.getOrgType().equals("district") ||dto.getOrgType().equals("city")){
dto.setOrgType("agency");
}
resultDTO.setList(baseDao.getHouseStatusCount(dto.getOrgId(),dto.getOrgType(),dto.getTimeStart(),dto.getTimeEnd()));
resultDTO.getList().forEach(
result->resultDTO.setTotal(resultDTO.getTotal()+result.getCount())
);
return resultDTO;
}
@Override
public PageData<HousePictureListResultDTO> getHousePictureList(HouseCountPictureFormDTO dto) {
// 列表/导出查询
PageHelper.startPage(dto.getPageNo(), dto.getPageSize());
if (dto.getOrgType().equals("community") || dto.getOrgType().equals("street") ||dto.getOrgType().equals("district") ||dto.getOrgType().equals("city")){
dto.setOrgType("agency");
}
List<HousePictureListResultDTO> list = baseDao.getHousePictureList(dto.getOrgId(),dto.getOrgType(),dto.getTimeStart(),dto.getTimeEnd(),dto.getPurpose(),dto.getRentFlag());
list.forEach(entity->{
String[] agencyIds = entity.getOrgIdPath().split(":");
LambdaQueryWrapper<CustomerAgencyEntity> queryWrapperAgency = new LambdaQueryWrapper<CustomerAgencyEntity>().in(CustomerAgencyEntity::getId,agencyIds);
List<CustomerAgencyEntity> customerAgencyEntities = customerAgencyDao.selectList(queryWrapperAgency);
customerAgencyEntities.forEach(agency->{
if (agency.getLevel().equals("district")){
entity.setDistrictName(agency.getOrganizationName());
}else if (agency.getLevel().equals("street")){
entity.setStreetName(agency.getOrganizationName());
}else if (agency.getLevel().equals("community")){
entity.setCommunityName(agency.getOrganizationName());
}
});
});
PageInfo<HousePictureListResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list,pageInfo.getTotal());
}
}

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffLoginLogServiceImpl.java

@ -186,6 +186,12 @@ public class StaffLoginLogServiceImpl extends BaseServiceImpl<StaffLoginLogDao,
@Override
public PageData<AccountActivityInfo> getAccountActivityInfo(CountActivityFormDTO formDTO) {
if (formDTO.getIsPage()) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<AccountActivityInfo> accountActivityInfos = baseDao.selectListActivityInfo(formDTO);
PageInfo<AccountActivityInfo> pageInfo = new PageInfo<>(accountActivityInfos);
return new PageData<>(accountActivityInfos, pageInfo.getTotal(),formDTO.getPageSize());
}
List<AccountActivityInfo> accountActivityInfos = baseDao.selectListActivityInfo(formDTO);
int total = CollectionUtils.isEmpty(accountActivityInfos) ? NumConstant.ZERO : accountActivityInfos.size();
return new PageData<>(accountActivityInfos, total);
@ -207,7 +213,7 @@ public class StaffLoginLogServiceImpl extends BaseServiceImpl<StaffLoginLogDao,
if (StringUtils.isBlank(formDTO.getOrgId())) {
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId());
formDTO.setOrgId(staffInfoCacheResult.getAgencyId());
formDTO.setLevel(staffInfoCacheResult.getLevel());
// formDTO.setLevel(staffInfoCacheResult.getLevel());
}
if (formDTO.getIsPage()) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());

76
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

@ -210,6 +210,26 @@
ORDER BY ca.created_time DESC
</select>
<select id="selectSubAgencyLevelList" resultType="com.epmet.dto.result.AgencySubResultDTO">
SELECT
ca.id AS "agencyId",
ca.organization_name AS "agencyName",
ca.pids AS "pids",
ca.level level,
IFNULL(ca.longitude, cc.longitude) longitude,
IFNULL(ca.latitude, cc.latitude) latitude,
(
case when ca.pid is null or ca.pid='0' or ca.pid='' then ca.id
else concat(ca.pids,':',ca.id)
end)as orgIdPath
FROM customer_agency ca
INNER JOIN customer_agency cc ON cc.pid = '0' AND ca.customer_id = cc.customer_id
WHERE ca.del_flag = '0'
AND ca.pids = #{subAgencyPids}
AND (ca.LEVEL = 'city' or ca.LEVEL = 'district')
ORDER BY ca.created_time DESC
</select>
<select id="getCustomerRootAgency" resultType="com.epmet.dto.CustomerAgencyDTO">
SELECT *
FROM customer_agency ca
@ -863,13 +883,34 @@
AND CUSTOMER_ID = #{customerId}
AND pids LIKE concat('%',#{agencyId}, '%' )
</update>
<select id="agencyCount" resultType="java.lang.Integer">
<select id="agencyCount" resultType="com.epmet.dto.result.AgencyCountCensusResultDTO">
select count(*)
select level as level,count(*) as count
from customer_agency
where DEL_FLAG = 0
and LEVEL = #{level}
and PIDS like concat(#{pids},'%')
group by level
</select>
<select id="agencyGridCount" resultType="java.lang.Integer">
select count(*)
from customer_grid
where DEL_FLAG = 0
and PIDS like concat(#{pids},'%')
</select>
<select id="agencyStaffCount" resultType="java.lang.Integer">
select count(1)
from customer_staff_agency staff
left join customer_agency agency on staff.AGENCY_ID = agency.ID
where agency.DEL_FLAG = 0
and
staff.DEL_FLAG = 0
and agency.PIDS like concat(#{pids},'%')
</select>
@ -1163,4 +1204,33 @@
ca.del_flag = '0'
AND ca.customer_id = #{customerId}
</select>
<select id="getCommunityCount" resultType="java.lang.Integer">
select count(1)
from customer_agency agency
where agency.DEL_FLAG = 0
and agency.LEVEL = 'community'
and agency.PIDS like concat(#{pids},'%')
<if test="timeStart != null">
and agency.CREATED_TIME &gt;= #{timeStart}
</if>
<if test="timeEnd != null">
and agency.CREATED_TIME &lt;= #{timeEnd}
</if>
</select>
<select id="getCommunityByPidList" resultType="com.epmet.dto.result.CommunityListByAgencyIdResultDTO">
SELECT
ID,ORGANIZATION_NAME as name,CREATED_TIME as createTime,PIDS as pids
FROM customer_agency
WHERE DEL_FLAG = '0'
AND `LEVEL` = 'community'
AND PIDS LIKE CONCAT(#{pids},'%')
<if test="timeStart != null">
and CREATED_TIME &gt;= #{timeStart}
</if>
<if test="timeEnd != null">
and CREATED_TIME &lt;= #{timeEnd}
</if>
</select>
</mapper>

48
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml

@ -66,10 +66,30 @@
LEFT JOIN ic_enterprise_patrol_record r ON ( ie.id = r.ENTERPRISE_ID AND r.DEL_FLAG = '0' )
WHERE
ie.DEL_FLAG = '0'
AND (
ie.AGENCY_ID = #{staffAgencyId}
OR ie.AGENCY_PIDS LIKE concat( '%', #{staffAgencyId}, '%' )
)
<if test='"grid" == orgType'>
<if test='null != orgId and "" != orgId'>
AND ie.GRID_ID = #{orgId}
</if>
</if>
<if test='"agency" == orgType'>
<if test='null != orgId and "" != orgId'>
AND (ie.AGENCY_ID = #{orgId} or ie.AGENCY_PIDS like concat('%',#{orgId},'%'))
</if>
<if test='null == orgId or "" == orgId'>
AND (
ie.AGENCY_ID = #{staffAgencyId}
OR ie.AGENCY_PIDS LIKE concat( '%', #{staffAgencyId}, '%' )
)
</if>
</if>
<if test='null==orgType or "" == orgType'>
<if test='null != staffAgencyId and "" != staffAgencyId'>
AND (
ie.AGENCY_ID = #{staffAgencyId}
OR ie.AGENCY_PIDS LIKE concat( '%', #{staffAgencyId}, '%' )
)
</if>
</if>
<if test='null != gridId and "" != gridId'>
AND ie.GRID_ID = #{gridId}
</if>
@ -108,4 +128,24 @@
and ie.id != #{enterpriseId}
</if>
</select>
<!-- 按场所类型 -->
<select id="selectCountByPlaceType" parameterType="map" resultType="com.epmet.dto.result.yt.EnterpriseCountPlaceTypeDetailDTO">
SELECT
ie.PLACE_TYPE as placeType,
count( ie.id ) AS total
FROM
ic_enterprise ie
WHERE
ie.CUSTOMER_ID = #{customerId}
AND ie.DEL_FLAG = '0'
<if test="orgType == 'grid'">
and ie.GRID_ID= #{orgId}
</if>
<if test="orgType == 'agency'">
and ( ie.AGENCY_ID=#{orgId} or ie.AGENCY_PIDS like CONCAT('%',#{orgId},'%') )
</if>
GROUP BY
ie.PLACE_TYPE
</select>
</mapper>

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

@ -775,5 +775,136 @@
CAST( ih.DOOR_NAME AS SIGNED ),
CONVERT ( ih.DOOR_NAME USING gbk ),
ih.SORT ASC
</select>
<select id="getHousePurposeCount" resultType="com.epmet.dto.result.HouseCountPictureListResultDTO">
select count(*) as count,PURPOSE as type
from ic_house
where DEL_FLAG = 0
<choose>
<when test='orgType == "agency"'>
AND neighbor_hood_id IN (
select a.id from ic_neighbor_hood a
<!-- 排除掉无效组织、网格数据 -->
inner join customer_agency b on a.agency_id = b.id and b.del_flag = '0'
inner join customer_grid c on a.grid_id = c.id and c.del_flag = '0'
where a.del_flag = '0'
and (a.agency_id = #{orgId} OR a.agency_pids LIKE CONCAT('%', #{orgId}, '%'))
)
</when>
<when test='orgType == "grid"'>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and grid_id = #{orgId}
)
</when>
<otherwise>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and id = #{orgId}
)
</otherwise>
</choose>
<if test="timeStart != null">
and CREATED_TIME &gt;= #{timeStart}
</if>
<if test="timeEnd != null">
and CREATED_TIME &lt;= #{timeEnd}
</if>
group by PURPOSE
</select>
<select id="getHouseStatusCount" resultType="com.epmet.dto.result.HouseCountPictureListResultDTO">
select count(*) as count,RENT_FLAG as type
from ic_house
where DEL_FLAG = 0
<choose>
<when test='orgType == "agency"'>
AND neighbor_hood_id IN (
select a.id from ic_neighbor_hood a
<!-- 排除掉无效组织、网格数据 -->
inner join customer_agency b on a.agency_id = b.id and b.del_flag = '0'
inner join customer_grid c on a.grid_id = c.id and c.del_flag = '0'
where a.del_flag = '0'
and (a.agency_id = #{orgId} OR a.agency_pids LIKE CONCAT('%', #{orgId}, '%'))
)
</when>
<when test='orgType == "grid"'>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and grid_id = #{orgId}
)
</when>
<otherwise>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and id = #{orgId}
)
</otherwise>
</choose>
<if test="timeStart != null">
and CREATED_TIME &gt;= #{timeStart}
</if>
<if test="timeEnd != null">
and CREATED_TIME &lt;= #{timeEnd}
</if>
group by RENT_FLAG
</select>
<select id="getHousePictureList" resultType="com.epmet.dto.result.HousePictureListResultDTO">
select house.ID as houseId,ORG_ID_PATH as orgIdPath,FULL_NAME as houseName,grid.GRID_NAME as gridName,
IF(house.RENT_FLAG=1,'出租',IF(house.RENT_FLAG=2,'闲置',IF(house.RENT_FLAG=3,'未售出','自住'))) as rentFlagName,
IF(house.PURPOSE = 1,'住宅',IF(house.PURPOSE = 2,'商业',IF(house.PURPOSE = 3,'办公',IF(house.PURPOSE = 4,'工业',IF(house.PURPOSE = 5,'存储',IF(house.PURPOSE = 6,'商用混用','其它')))))) as purposeName
from ic_house house
left join ic_neighbor_hood hood on house.NEIGHBOR_HOOD_ID = hood.id
left join customer_grid grid on grid.id = hood.GRID_ID
where house.DEL_FLAG = '0'
<choose>
<when test='orgType == "agency"'>
AND neighbor_hood_id IN (
select a.id from ic_neighbor_hood a
<!-- 排除掉无效组织、网格数据 -->
inner join customer_agency b on a.agency_id = b.id and b.del_flag = '0'
inner join customer_grid c on a.grid_id = c.id and c.del_flag = '0'
where a.del_flag = '0'
and (a.agency_id = #{orgId} OR a.agency_pids LIKE CONCAT('%', #{orgId}, '%'))
)
</when>
<when test='orgType == "grid"'>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and grid_id = #{orgId}
)
</when>
<otherwise>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and id = #{orgId}
)
</otherwise>
</choose>
<if test="timeStart != null">
and house.CREATED_TIME &gt;= #{timeStart}
</if>
<if test="timeEnd != null">
and house.CREATED_TIME &lt;= #{timeEnd}
</if>
<if test="purpose != null and purpose != ''">
and house.PURPOSE = #{purpose}
</if>
<if test="rentFlag != null">
and house.RENT_FLAG = #{rentFlag}
</if>
</select>
</mapper>

16
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/StaffLoginLogDao.xml

@ -49,7 +49,7 @@
and l.LOGIN_TIME &lt;= #{endDate}
</if>
GROUP BY ca.id
order by count(l.id) desc
order by count(l.id) desc,ca.CREATED_TIME desc
</select>
<!--社区活跃列表-->
<select id="selectListActivityInfo" resultType="com.epmet.dto.result.yt.AccountActivityInfo">
@ -89,7 +89,7 @@
GROUP BY
a.ID
ORDER BY
COUNT(DISTINCT(l.id)) DESC;
COUNT(DISTINCT(l.id)) DESC
</select>
<!-- 账号登录情况:柱状图:下级组织账号登录次数汇总 -->
@ -111,7 +111,7 @@
and l.LOGIN_TIME &lt;= #{endDate}
</if>
group by ca.id
order by count(l.ID) desc
order by count(l.ID) desc,ca.CREATED_TIME desc
</select>
<!-- 账号登录情况:查看区县-->
@ -176,13 +176,11 @@
customer_agency a
LEFT JOIN staff_login_log l ON a.ID = l.AGENCY_ID
WHERE
a.PIDS LIKE CONCAT(
'%',
#{orgId},
'%'
)
AND a.`LEVEL` = 'community'
a.`LEVEL` = 'community'
AND a.DEL_FLAG = '0'
<if test="orgId!= null and orgId.trim() != ''">
AND a.PIDS LIKE CONCAT('%',#{orgId},'%')
</if>
GROUP BY
a.ID
) t;

33
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/resi/ResiPortrayalCommonFormDTO.java

@ -0,0 +1,33 @@
package com.epmet.dto.form.resi;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
/**
* @Description 烟台居民画像入参
* @Author yzm
* @Date 2023/4/11 17:03
*/
@Data
public class ResiPortrayalCommonFormDTO extends PageFormDTO {
/**
* /gov/org/customeragency/agencygridtree返回的agencyId
*/
private String orgId;
/**
* /gov/org/customeragency/agencygridtree返回level=grid时orgType:grid其他情况orgTypeagency
*/
private String orgType;
/**
* 查询居民列表
* 年龄饼图/学历饼图返回的code
*/
private String code;
/**
* 学历education
* 年龄age
*/
private String codeType;
}

121
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java

@ -0,0 +1,121 @@
package com.epmet.dto.result.resi;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
* @Description 烟台居民画像居民列表
* @Author yzm
* @Date 2023/4/12 10:10
*/
@Data
public class ResiPortrayalDetailDTO {
/**
* 居民id
*/
@ExcelIgnore
private String icResiUserId;
@ExcelIgnore
private String gridId;
@ExcelProperty(value = "所属网格")
@ColumnWidth(30)
private String gridName;
/**
* 所属小区ID
*/
@ExcelIgnore
private String villageId;
@ExcelIgnore
private String villageName;
/**
* 所属楼宇Id
*/
@ExcelIgnore
private String buildId;
@ExcelIgnore
private String buildName;
/**
* 单元id
*/
@ExcelIgnore
private String unitId;
@ExcelIgnore
private String unitName;
/**
* 所属家庭Id
*/
@ExcelIgnore
private String homeId;
@ExcelProperty(value = "所属房屋")
@ColumnWidth(30)
private String homeName;
/**
* 所属家庭号
* 101
*/
@ExcelIgnore
private String doorName;
/**
* 姓名
*/
@ExcelProperty(value = "姓名")
@ColumnWidth(25)
private String name;
/**
* 手机号
*/
@ExcelProperty(value = "手机号")
@ColumnWidth(25)
private String mobile;
/**
* 性别1男2女0未知
*/
@ExcelIgnore
private String gender;
/**
* 性别名称
*/
@ExcelProperty(value = "性别")
@ColumnWidth(10)
private String genderName;
/**
* 身份证
*/
@ExcelProperty(value = "身份证号")
@ColumnWidth(25)
private String idCard;
@ExcelProperty(value = "出生日期")
@ColumnWidth(25)
private String birthday;
/**
* 年龄
*/
@ExcelProperty(value = "年龄")
@ColumnWidth(10)
private Integer age;
/**
* 学历key
*/
@ExcelIgnore
private String educationCode;
/**
* 学历
*/
@ExcelProperty(value = "学历")
@ColumnWidth(10)
private String educationName;
}

28
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResultDTO.java

@ -0,0 +1,28 @@
package com.epmet.dto.result.resi;
import lombok.Data;
/**
* @Description 烟台居民画像返参
* @Author yzm
* @Date 2023/4/11 17:04
*/
@Data
public class ResiPortrayalResultDTO {
/**
* 居民数量
*/
private Integer totalResi;
/**
* 年龄分布50岁以下050-59岁160-69岁270-79岁380岁以上4
* 学历分布学历key
*/
private String code;
/**
* 学历分布小学及文盲/初中.....
* 年龄分布50岁以下/50-59岁/60-69岁/70-79岁/80岁以上
*/
private String codeName;
}

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

@ -59,9 +59,12 @@ import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.form.resi.IcResiPageNonDynamicFormDTO;
import com.epmet.dto.form.resi.ResiPortrayalCommonFormDTO;
import com.epmet.dto.result.*;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.dto.result.resi.ResiPortrayalDetailDTO;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.excel.PartyMemberAgeExportExcel;
import com.epmet.excel.PartyMemberEducationExportExcel;
@ -463,7 +466,6 @@ public class IcResiUserController implements ResultDataResolver {
/**
* desc: 导出居民信息
*
* @param customerId
* @param tokenDto
* @param pageFormDTO
* @param response
@ -618,7 +620,6 @@ public class IcResiUserController implements ResultDataResolver {
*
* @param tokenDto
* @param pageFormDTO
* @param response
* @return void
* @author LiuJanJun
* @date 2021/11/19 4:24 下午
@ -1449,7 +1450,6 @@ public class IcResiUserController implements ResultDataResolver {
/**
* Desc: 居民首次进入小程序可以根据输入身份证信息查询在数字社区居民信息中的网格匹配不成功提示
* @param tokenDto
* @param formDTO
* @author zxc
* @date 2022/8/5 11:17
@ -1527,4 +1527,95 @@ public class IcResiUserController implements ResultDataResolver {
return new Result<List<RHZKStatisticsResultDTO>>().ok(icResiUserService.renHuConditionList(formDTO));
}
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 接口地址http://yapi.elinkservice.cn/project/356/interface/api/cat_1370
* 居民年龄分布饼图
*
* @param formDTO
* @return
*/
@PostMapping("age-distribute")
public Result<List<ResiPortrayalResultDTO>> queryAgeDistribute(@LoginUser TokenDto tokenDto,@RequestBody ResiPortrayalCommonFormDTO formDTO) {
return new Result<List<ResiPortrayalResultDTO>>().ok(icResiUserService.queryAgeDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType()));
}
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 接口地址http://yapi.elinkservice.cn/project/356/interface/api/cat_1370
* 居民学历分布饼图
*
* @param formDTO
* @return
*/
@PostMapping("education-distribute")
public Result<List<ResiPortrayalResultDTO>> queryEducationDistribute(@LoginUser TokenDto tokenDto,@RequestBody ResiPortrayalCommonFormDTO formDTO) {
return new Result<List<ResiPortrayalResultDTO>>().ok(icResiUserService.queryEducationDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType()));
}
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 居民画像居民列表
*
* @param tokenDto
* @param formDTO
* @return
*/
@MaskResponse(fieldNames = {"mobile", "idCard"},fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD})
@PostMapping("portrayal-list")
public Result<PageData<ResiPortrayalDetailDTO>> queryPortrayalResiList(@LoginUser TokenDto tokenDto, @RequestBody ResiPortrayalCommonFormDTO formDTO) {
return new Result<PageData<ResiPortrayalDetailDTO>>().ok(icResiUserService.queryPortrayalResiList(tokenDto.getCustomerId(), tokenDto.getUserId(),
formDTO.getPageNo(), formDTO.getPageSize(),
formDTO.getOrgId(), formDTO.getOrgType(),
formDTO.getCodeType(),
formDTO.getCode()));
}
/**
* 11导出列表数据
*
* @param response
* @param formDTO
* @throws Exception
*/
@PostMapping("portrayal-listexport")
public void exportMonitoringEquipment(HttpServletResponse response,
@RequestBody ResiPortrayalCommonFormDTO formDTO) throws Exception {
formDTO.setIsPage(false);
ExcelWriter excelWriter = null;
formDTO.setPageNo(NumConstant.ONE);
formDTO.setPageSize(NumConstant.TEN_THOUSAND);
try {
String fileName = "居民画像-居民列表" + DateUtils.format(new Date()) + ".xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), ResiPortrayalDetailDTO.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
PageData<ResiPortrayalDetailDTO> data = null;
List<ResiPortrayalDetailDTO> list = null;
do {
// 默认查询本组织及下级
data = icResiUserService.queryPortrayalResiList(EpmetRequestHolder.getLoginUserCustomerId(),EpmetRequestHolder.getLoginUserId(),
formDTO.getPageNo(),formDTO.getPageSize(),
formDTO.getOrgId(),formDTO.getOrgType(),
formDTO.getCodeType(),formDTO.getCode());
list = data.getList();
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
excelWriter.write(list, writeSheet);
} while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize());
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
} catch (Exception e) {
log.error("居民画像-居民列表export exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
}

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

@ -24,6 +24,8 @@ import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.IcVolunteerPolyDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.dto.result.resi.ResiPortrayalDetailDTO;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.entity.IcResiUserEntity;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
@ -451,4 +453,32 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<IcResiUserDTO> getImportUserList(@Param("customerId")String customerId,@Param("agencyId")String agencyId);
/**
* 烟台居民画像按照学历分组查询居民数量
* @param customerId
* @param orgId
* @param orgType:agency/grid
* @return
*/
List<ResiPortrayalResultDTO> queryEducationDistribute(@Param("customerId") String customerId,
@Param("orgId") String orgId,
@Param("orgType") String orgType);
List<ResiPortrayalResultDTO> selectAgeAgeDistribute(@Param("customerId") String customerId,
@Param("orgId") String orgId,
@Param("orgType") String orgType);
/**
* @param customerId
* @param orgId
* @param orgType
* @param codeType 学历education 年龄age
* @param code
* @return 居民画像居民列表
*/
List<ResiPortrayalDetailDTO> selectPortrayalResiList(@Param("customerId") String customerId,
@Param("orgId") String orgId,
@Param("orgType") String orgType,
@Param("codeType")String codeType,
@Param("code") String code);
}

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

@ -28,6 +28,8 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.dto.result.resi.ResiPortrayalDetailDTO;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO;
@ -542,4 +544,38 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
List<RHZKStatisticsResultDTO> renHuConditionList(RHZKStatisticsFormDTO formDTO);
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 接口地址http://yapi.elinkservice.cn/project/356/interface/api/cat_1370
* 居民年龄分布饼图
*
* @param customerId
* @param staffId
* @param orgId
* @param orgType
* @return
*/
List<ResiPortrayalResultDTO> queryAgeDistribute(String customerId, String staffId, String orgId, String orgType);
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 接口地址http://yapi.elinkservice.cn/project/356/interface/api/cat_1370
* 居民学历分布饼图
*
* @param orgId
* @param orgType agency/grid
* @return
*/
List<ResiPortrayalResultDTO> queryEducationDistribute(String customerId, String staffId, String orgId, String orgType);
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 居民画像居民列表
*
* @return
*/
PageData<ResiPortrayalDetailDTO> queryPortrayalResiList(String customerId, String staffId,
Integer pageNo, Integer pageSize,
String orgId, String orgType,
String codeType,String code);
}

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

@ -62,6 +62,8 @@ import com.epmet.dto.result.*;
import com.epmet.dto.result.demand.IcResiDemandDictDTO;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.dto.result.resi.ResiPortrayalDetailDTO;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.entity.*;
import com.epmet.enums.RenHuConditionEnum;
import com.epmet.excel.EpidemicPreventionExportExcel;
@ -81,6 +83,7 @@ import com.google.common.cache.CacheBuilder;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
@ -3890,4 +3893,177 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
return fzBig.multiply(NumConstant.ONE_HUNDRED_DECIMAL).divide(totalBig, NumConstant.TWO, BigDecimal.ROUND_HALF_UP);
}
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 接口地址http://yapi.elinkservice.cn/project/356/interface/api/cat_1370
* 居民年龄分布饼图
*
* @param customerId
* @param staffId
* @param orgId
* @param orgType
* @return
*/
@Override
public List<ResiPortrayalResultDTO> queryAgeDistribute(String customerId,String staffId,String orgId, String orgType) {
if (StringUtils.isBlank(orgId)) {
orgId = CustomerStaffRedis.getStaffInfo(customerId, staffId).getAgencyId();
orgType = OrgTypeEnum.AGENCY.getCode();
}
List<ResiPortrayalResultDTO> resultList=getDefaultAgeDistribute();
List<ResiPortrayalResultDTO> list=baseDao.selectAgeAgeDistribute(customerId,orgId,orgType);
if(CollectionUtils.isEmpty(list)){
return resultList;
}
Map<String,Integer> resultMap = list.stream().collect(Collectors.toMap(ResiPortrayalResultDTO::getCode,ResiPortrayalResultDTO::getTotalResi));
resultList.forEach(result->{
if (MapUtils.isNotEmpty(resultMap) && resultMap.containsKey(result.getCode())) {
result.setTotalResi(resultMap.get(result.getCode()));
}
});
return resultList;
}
private List<ResiPortrayalResultDTO> getDefaultAgeDistribute() {
List<ResiPortrayalResultDTO> list = new ArrayList<>();
for (int code = 0; code <= 4; code++) {
ResiPortrayalResultDTO resultDTO = new ResiPortrayalResultDTO();
resultDTO.setTotalResi(NumConstant.ZERO);
resultDTO.setCode(String.valueOf(code));
switch (code) {
case 0:
resultDTO.setCodeName("50岁以下");
break;
case 1:
resultDTO.setCodeName("50-59岁");
break;
case 2:
resultDTO.setCodeName("60-69岁");
break;
case 3:
resultDTO.setCodeName("70-79岁");
break;
case 4:
resultDTO.setCodeName("80岁以上");
break;
default:
resultDTO.setCodeName(StrConstant.EPMETY_STR);
}
list.add(resultDTO);
}
return list;
}
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 接口地址http://yapi.elinkservice.cn/project/356/interface/api/cat_1370
* 居民学历分布饼图
*
* @param orgId
* @param orgType agency/grid
* @return
*/
@Override
public List<ResiPortrayalResultDTO> queryEducationDistribute(String customerId, String staffId, String orgId, String orgType) {
if (StringUtils.isBlank(orgId)) {
orgId = CustomerStaffRedis.getStaffInfo(customerId, staffId).getAgencyId();
orgType = OrgTypeEnum.AGENCY.getCode();
}
// 获取文化程度字典
DictListFormDTO dictFormDTO = new DictListFormDTO();
dictFormDTO.setDictType(DictTypeEnum.EDUCATION.getCode());
Result<List<DictListResultDTO>> dictResult = epmetAdminOpenFeignClient.dictList(dictFormDTO);
if (!dictResult.success() || CollectionUtils.isEmpty(dictResult.getData())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "学历字典获取失败", "学历字典获取失败");
}
//按照学历分组,查询居民数量
List<ResiPortrayalResultDTO> totalList = baseDao.queryEducationDistribute(customerId, orgId, orgType);
Map<String,Integer> map = totalList.stream().collect(Collectors.toMap(ResiPortrayalResultDTO::getCode,ResiPortrayalResultDTO::getTotalResi));
List<ResiPortrayalResultDTO> resultDTOList = new ArrayList<>();
dictResult.getData().forEach(dict -> {
ResiPortrayalResultDTO resultDTO = new ResiPortrayalResultDTO();
resultDTO.setCode(dict.getValue());
resultDTO.setCodeName(dict.getLabel());
resultDTO.setTotalResi(NumConstant.ZERO);
if(MapUtils.isNotEmpty(map)&&map.containsKey(dict.getValue())){
resultDTO.setTotalResi(map.get(dict.getValue()));
}
resultDTOList.add(resultDTO);
});
return resultDTOList;
}
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 居民画像居民列表
*
* @param customerId
* @param staffId
* @param pageNo
* @param pageSize
* @param orgId
* @param orgType
* @param codeType 学历education 年龄age
* @param code:年龄饼图/学历饼图返回的code
* @return
*/
@Override
public PageData<ResiPortrayalDetailDTO> queryPortrayalResiList(String customerId, String staffId,
Integer pageNo, Integer pageSize,
String orgId, String orgType,
String codeType,
String code) {
// 获取文化程度字典
DictListFormDTO dictFormDTO = new DictListFormDTO();
dictFormDTO.setDictType(DictTypeEnum.EDUCATION.getCode());
Result<List<DictListResultDTO>> dictResult = epmetAdminOpenFeignClient.dictList(dictFormDTO);
if (!dictResult.success() || CollectionUtils.isEmpty(dictResult.getData())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "学历字典获取失败", "学历字典获取失败");
}
Map<String, String> educationMap = dictResult.getData().stream().collect(Collectors.toMap(DictListResultDTO::getValue, DictListResultDTO::getLabel));
if (StringUtils.isBlank(orgId)) {
orgId = CustomerStaffRedis.getStaffInfo(customerId, staffId).getAgencyId();
orgType = OrgTypeEnum.AGENCY.getCode();
}
PageHelper.startPage(pageNo, pageSize);
List<ResiPortrayalDetailDTO> list = baseDao.selectPortrayalResiList(customerId, orgId, orgType,codeType, code);
if(CollectionUtils.isNotEmpty(list)){
Set<String> houseIds=list.stream().map(m -> m.getHomeId()).collect(Collectors.toSet());
//查询房子名称
Result<List<HouseInfoDTO>> houseInfoRes = govOrgOpenFeignClient.queryListHouseInfo(houseIds, customerId);
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()));
list.forEach(resi -> {
// 学历名称
resi.setEducationName(educationMap.get(resi.getEducationCode()));
GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(resi.getGridId());
if (null != gridInfoCache) {
resi.setGridName(gridInfoCache.getGridNamePath());
}
if (houseInfoMap.containsKey(resi.getHomeId()) && null != houseInfoMap.get(resi.getHomeId())) {
HouseInfoDTO houseInfoDTO = houseInfoMap.get(resi.getHomeId());
String buildName = StringUtils.isNotBlank(houseInfoDTO.getBuildingName()) ? houseInfoDTO.getBuildingName() : StrConstant.EPMETY_STR;
resi.setBuildName(buildName);
String neighBorName = StringUtils.isNotBlank(houseInfoDTO.getNeighborHoodName()) ? houseInfoDTO.getNeighborHoodName() : StrConstant.EPMETY_STR;
resi.setVillageName(neighBorName);
String unitName = StringUtils.isNotBlank(houseInfoDTO.getUnitName()) ? houseInfoDTO.getUnitName() : StrConstant.EPMETY_STR;
resi.setUnitName(unitName);
String doorName = StringUtils.isNotBlank(houseInfoDTO.getDoorName()) ? houseInfoDTO.getDoorName() : StrConstant.EPMETY_STR;
resi.setDoorName(doorName);
resi.setHomeName(neighBorName.concat(buildName).concat(unitName).concat(doorName));
}
});
}
PageInfo<ResiPortrayalDetailDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal(), pageSize);
}
}

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

@ -125,7 +125,47 @@
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'daterange' ">
and ${subCondition.tableName}.${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]}
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 2">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ${subCondition.tableName}.${subCondition.columnName} is not null
and ${subCondition.tableName}.${subCondition.columnName} !=''
and ${subCondition.tableName}.${subCondition.columnName} &gt;= #{subCondition.columnValue[0]}
</if>
<if test='null != subCondition.columnValue[1] and subCondition.columnValue[1] != "" '>
and ${subCondition.tableName}.${subCondition.columnName} is not null
and ${subCondition.tableName}.${subCondition.columnName} !=''
and ${subCondition.tableName}.${subCondition.columnName} &lt;= #{subCondition.columnValue[1]}
</if>
</if>
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 1">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ${subCondition.tableName}.${subCondition.columnName} is not null
and ${subCondition.tableName}.${subCondition.columnName} !=''
and ${subCondition.tableName}.${subCondition.columnName} &gt;= #{subCondition.columnValue[0]}
</if>
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'agerange' ">
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 2">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ic_resi_user.BIRTHDAY is not null
and ic_resi_user.BIRTHDAY !=''
and YEAR(NOW())-SUBSTR(ic_resi_user.BIRTHDAY, 1, 4) &gt;= #{subCondition.columnValue[0]}
</if>
<if test='null != subCondition.columnValue[1] and subCondition.columnValue[1] != "" '>
and ic_resi_user.BIRTHDAY is not null
and ic_resi_user.BIRTHDAY !=''
and YEAR(NOW())-SUBSTR(ic_resi_user.BIRTHDAY, 1, 4) &lt;= #{subCondition.columnValue[1]}
</if>
</if>
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 1">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ic_resi_user.BIRTHDAY is not null
and ic_resi_user.BIRTHDAY !=''
and YEAR(NOW())-SUBSTR(ic_resi_user.BIRTHDAY, 1, 4) &gt;= #{subCondition.columnValue[0]}
</if>
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'notnull' ">
@ -180,7 +220,47 @@
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'daterange' ">
and ${subCondition.tableName}.${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]}
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 2">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ${subCondition.tableName}.${subCondition.columnName} is not null
and ${subCondition.tableName}.${subCondition.columnName} !=''
and ${subCondition.tableName}.${subCondition.columnName} &gt;= #{subCondition.columnValue[0]}
</if>
<if test='null != subCondition.columnValue[1] and subCondition.columnValue[1] != "" '>
and ${subCondition.tableName}.${subCondition.columnName} is not null
and ${subCondition.tableName}.${subCondition.columnName} !=''
and ${subCondition.tableName}.${subCondition.columnName} &lt;= #{subCondition.columnValue[1]}
</if>
</if>
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 1">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ${subCondition.tableName}.${subCondition.columnName} is not null
and ${subCondition.tableName}.${subCondition.columnName} !=''
and ${subCondition.tableName}.${subCondition.columnName} &gt;= #{subCondition.columnValue[0]}
</if>
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'agerange' ">
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 2">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ic_resi_user.BIRTHDAY is not null
and ic_resi_user.BIRTHDAY !=''
and YEAR(NOW())-SUBSTR(ic_resi_user.BIRTHDAY, 1, 4) &gt;= #{subCondition.columnValue[0]}
</if>
<if test='null != subCondition.columnValue[1] and subCondition.columnValue[1] != "" '>
and ic_resi_user.BIRTHDAY is not null
and ic_resi_user.BIRTHDAY !=''
and YEAR(NOW())-SUBSTR(ic_resi_user.BIRTHDAY, 1, 4) &lt;= #{subCondition.columnValue[1]}
</if>
</if>
<if test="subCondition.columnValue != null and subCondition.columnValue.size() == 1">
<if test='null != subCondition.columnValue[0] and subCondition.columnValue[0] != "" '>
and ic_resi_user.BIRTHDAY is not null
and ic_resi_user.BIRTHDAY !=''
and YEAR(NOW())-SUBSTR(ic_resi_user.BIRTHDAY, 1, 4) &gt;= #{subCondition.columnValue[0]}
</if>
</if>
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'notnull' ">
@ -1515,4 +1595,121 @@
</select>
<!-- 烟台居民画像:按照学历分组,查询居民数量-->
<select id="queryEducationDistribute" parameterType="map" resultType="com.epmet.dto.result.resi.ResiPortrayalResultDTO">
SELECT
r.CULTURE AS `code`,
count( r.id ) AS totalResi
FROM
ic_resi_user r
WHERE
r.DEL_FLAG = '0'
AND r.CUSTOMER_ID = #{customerId}
<if test='orgType == "agency" '>
AND ( r.AGENCY_ID = #{orgId} OR r.PIDS LIKE concat('%',#{orgId},'%') )
</if>
<if test='orgType == "grid" '>
and r.GRID_ID = #{orgId}
</if>
AND r.`STATUS` = '0'
AND r.CULTURE IS NOT NULL
AND r.CULTURE != ''
GROUP BY
r.CULTURE
</select>
<!-- 烟台居民画像:年龄分布 -->
<select id="selectAgeAgeDistribute" parameterType="map" resultType="com.epmet.dto.result.resi.ResiPortrayalResultDTO">
select
temp.CODE,
count(temp.ID) as totalResi
from (
select
temp1.id,
(
case when temp1.age &lt; 50 then '0'
when temp1.age &gt;= 50 and temp1.age &lt;= 59 then '1'
when temp1.age &gt;= 60 and temp1.age &lt;= 69 then '2'
when temp1.age &gt;= 70 and temp1.age &lt;= 79 then '3'
when temp1.age &gt;= 80 then '4'
end
) as `code`
from (
SELECT
u.ID,
YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) as age
FROM
ic_resi_user u
WHERE
u.DEL_FLAG = '0'
AND u.CUSTOMER_ID = #{customerId}
and u.`STATUS`='0'
and u.BIRTHDAY is not null
and u.BIRTHDAY !=''
<if test='orgType == "agency" '>
AND ( u.AGENCY_ID = #{orgId} OR u.PIDS LIKE concat('%',#{orgId},'%') )
</if>
<if test='orgType == "grid" '>
and u.GRID_ID = #{orgId}
</if>
)temp1
)temp
group by temp.`code`
</select>
<!-- 居民画像,居民列表 codeType 学历:education 年龄:age -->
<select id="selectPortrayalResiList" parameterType="map" resultType="com.epmet.dto.result.resi.ResiPortrayalDetailDTO">
SELECT
u.ID AS icResiUserId,
u.grid_id as gridId,
u.VILLAGE_ID as villageId,
u.BUILD_ID as buildId,
u.UNIT_ID as unitId,
u.HOME_ID as homeId,
u.`NAME` AS `name`,
u.MOBILE AS mobile,
u.ID_CARD AS idCard,
u.GENDER AS gender,
( CASE WHEN u.GENDER = '1' THEN '男' WHEN u.GENDER = '2' THEN '女' ELSE '未知' END ) AS genderName,
YEAR (NOW())- SUBSTR( u.BIRTHDAY, 1, 4 ) AS age,
u.CULTURE AS educationCode,
'' AS educationName,
IFNULL(u.CULTURE,'')AS educationCode,
u.BIRTHDAY AS birthday
FROM
ic_resi_user u
WHERE
u.DEL_FLAG = '0'
AND u.CUSTOMER_ID = #{customerId}
AND u.`STATUS` = '0'
<if test='orgType == "agency" '>
AND ( u.AGENCY_ID = #{orgId} OR u.PIDS LIKE concat('%',#{orgId},'%') )
</if>
<if test='orgType == "grid" '>
and u.GRID_ID = #{orgId}
</if>
<if test='codeType == "education" '>
<if test="code != null and code != ''">
and u.CULTURE = #{code}
</if>
</if>
<if test='codeType == "age" '>
<if test=" 0 == code">
and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &lt; 50
</if>
<if test=" 1 == code">
and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &gt;=50 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &lt;=59
</if>
<if test=" 2 == code">
and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &gt;= 60 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &lt;= 69
</if>
<if test=" 3 == code">
and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &gt;=70 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &lt;=79
</if>
<if test=" 4 == code">
and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) &gt;=80
</if>
</if>
order by u.ID asc
</select>
</mapper>

Loading…
Cancel
Save