diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/yt/CommunityLoginFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/yt/CommunityLoginFormDTO.java index 81b4135d52..6ca6168fa4 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/yt/CommunityLoginFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/yt/CommunityLoginFormDTO.java @@ -1,10 +1,12 @@ package com.epmet.dto.form.yt; import com.epmet.commons.tools.dto.form.PageFormDTO; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotBlank; import java.util.Date; /** @@ -14,9 +16,14 @@ import java.util.Date; */ @Data public class CommunityLoginFormDTO extends PageFormDTO { + public interface StreetTotalShowGroup extends CustomerClientShowGroup { + } + + /** * 所选择的组织id */ + @NotBlank(message = "请选择区县",groups = StreetTotalShowGroup.class) private String orgId; /** diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java index c8c7267101..e79c65cd41 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java @@ -16,6 +16,7 @@ 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.form.yt.CommunityLoginFormDTO; import com.epmet.dto.form.yt.CountActivityFormDTO; import com.epmet.dto.form.yt.LoginLogCountByLevelFormDTO; @@ -154,6 +155,21 @@ public class StaffLoginLogController { formDTO.getPageNo(), formDTO.getPageSize())); } + /** + * 柱状图点击区县,查看街道,调用此接口 + * 计算的是街道的工作人员+街道下所有社区的人 的总次数 + * @param formDTO + * @return + */ + @PostMapping("streetTotal") + public Result> streetTotal(@RequestBody CommunityLoginFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO,CommunityLoginFormDTO.StreetTotalShowGroup.class); + return new Result>().ok(staffLoginLogService.streetTotal(formDTO.getOrgId(), + formDTO.getStartDate(), + formDTO.getEndDate(), + formDTO.getPageNo(), formDTO.getPageSize())); + } + /*** * 获取当前agencyid下 下级组织活跃情况 * @param formDTO diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/StaffLoginLogDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/StaffLoginLogDao.java index 0bd7263a29..98879a4204 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/StaffLoginLogDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/StaffLoginLogDao.java @@ -81,4 +81,6 @@ public interface StaffLoginLogDao extends BaseDao { Integer selectLoginTotalByPath(@Param("orgIdPath") String orgIdPath, @Param("startDate") Date startDate, @Param("endDate") Date endDate); + + List selectStreetTotal(@Param("orgId") String orgId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffLoginLogService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffLoginLogService.java index 5d39463647..ed1a49aa6e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffLoginLogService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffLoginLogService.java @@ -84,6 +84,12 @@ public interface StaffLoginLogService extends BaseService { */ PageData streetCount(String orgId, Date startDate, Date endDate, Boolean isPage, Integer pageNo, Integer pageSize); + /** + * 柱状图点击区县,查看街道,调用此接口 + * 计算的是街道的工作人员+街道下所有社区的人 的总次数 + * @return + */ + PageData streetTotal(String orgId, Date startDate, Date endDate, Integer pageNo, Integer pageSize); /*** * 获取登陆情况 * @param formDTO diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffLoginLogServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffLoginLogServiceImpl.java index d295661263..cd56d4dac1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffLoginLogServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffLoginLogServiceImpl.java @@ -261,13 +261,14 @@ public class StaffLoginLogServiceImpl extends BaseServiceImpl subAgencyList=customerAgencyDao.selectList(agencyWrapper); List list=new ArrayList<>(); + //横坐标展示所有组织 for(CustomerAgencyEntity agencyEntity:subAgencyList){ CommunityLoginResultDTO resultDTO=new CommunityLoginResultDTO(); resultDTO.setAgencyId(agencyEntity.getId()); resultDTO.setAgencyName(agencyEntity.getOrganizationName()); resultDTO.setAgencyLevel(agencyEntity.getLevel()); String orgIdPath=PidUtils.convertPid2OrgIdPath(agencyEntity.getId(),agencyEntity.getPids()); - //查询本组织及下级 + //查询本组织及下级登录次数!!!!!!!! resultDTO.setCount(baseDao.selectLoginTotalByPath(orgIdPath,startDate,endDate)); list.add(resultDTO); } @@ -335,4 +336,20 @@ public class StaffLoginLogServiceImpl extends BaseServiceImpl(list, total, total); } + + /** + * 柱状图点击区县,查看街道,调用此接口 + * 计算的是街道的工作人员+街道下所有社区的人 的总次数 + * @return + */ + @Override + public PageData streetTotal(String orgId, Date startDate, Date endDate,Integer pageNo, Integer pageSize){ + PageHelper.startPage(pageNo, pageSize); + // todo + List list = baseDao.selectStreetTotal(orgId, startDate, endDate); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal(), pageSize); + } + + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/StaffLoginLogDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/StaffLoginLogDao.xml index 98d0c99cf1..32d506c960 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/StaffLoginLogDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/StaffLoginLogDao.xml @@ -233,4 +233,32 @@ and l.LOGIN_TIME <= #{endDate} + + \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java index 2cb38e742a..ea9ceb1135 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java @@ -21,8 +21,9 @@ public class ResiPortrayalDetailDTO { @ExcelIgnore private String gridId; - @ExcelProperty(value = "所属网格") - @ColumnWidth(30) + @ExcelIgnore + // @ExcelProperty(value = "所属网格") + // @ColumnWidth(30) private String gridName; /** @@ -53,8 +54,9 @@ public class ResiPortrayalDetailDTO { @ExcelIgnore private String homeId; - @ExcelProperty(value = "所属房屋") - @ColumnWidth(30) + @ExcelIgnore + // @ExcelProperty(value = "所属房屋") + // @ColumnWidth(30) private String homeName; /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResult.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResult.java new file mode 100644 index 0000000000..f545e23bae --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResult.java @@ -0,0 +1,17 @@ +package com.epmet.dto.result.resi; + +import lombok.Data; + +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2023/4/19 17:26 + */ +@Data +public class ResiPortrayalResult { + private Integer total; + private List list; +} + diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 3df240c3f1..85a712ce8a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -64,7 +64,7 @@ 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.dto.result.resi.ResiPortrayalResult; import com.epmet.enums.IcResiUserTableEnum; import com.epmet.excel.PartyMemberAgeExportExcel; import com.epmet.excel.PartyMemberEducationExportExcel; @@ -1538,8 +1538,8 @@ public class IcResiUserController implements ResultDataResolver { * @return */ @PostMapping("age-distribute") - public Result> queryAgeDistribute(@LoginUser TokenDto tokenDto,@RequestBody ResiPortrayalCommonFormDTO formDTO) { - return new Result>().ok(icResiUserService.queryAgeDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType())); + public Result queryAgeDistribute(@LoginUser TokenDto tokenDto, @RequestBody ResiPortrayalCommonFormDTO formDTO) { + return new Result().ok(icResiUserService.queryAgeDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType())); } /** @@ -1551,8 +1551,8 @@ public class IcResiUserController implements ResultDataResolver { * @return */ @PostMapping("education-distribute") - public Result> queryEducationDistribute(@LoginUser TokenDto tokenDto,@RequestBody ResiPortrayalCommonFormDTO formDTO) { - return new Result>().ok(icResiUserService.queryEducationDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType())); + public Result queryEducationDistribute(@LoginUser TokenDto tokenDto,@RequestBody ResiPortrayalCommonFormDTO formDTO) { + return new Result().ok(icResiUserService.queryEducationDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType())); } /** @@ -1595,7 +1595,7 @@ public class IcResiUserController implements ResultDataResolver { List list = null; do { // 默认查询本组织及下级 - data = icResiUserService.queryPortrayalResiList(EpmetRequestHolder.getLoginUserCustomerId(),EpmetRequestHolder.getLoginUserId(), + data = icResiUserService.queryPortrayalResiListForExport(EpmetRequestHolder.getLoginUserCustomerId(),EpmetRequestHolder.getLoginUserId(), formDTO.getPageNo(),formDTO.getPageSize(), formDTO.getOrgId(),formDTO.getOrgType(), formDTO.getCodeType(),formDTO.getCode()); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index ae394a3e98..090c56560f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -29,7 +29,7 @@ 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.dto.result.resi.ResiPortrayalResult; import com.epmet.entity.IcResiUserEntity; import com.epmet.excel.support.ExportResiUserItemDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; @@ -562,7 +562,7 @@ public interface IcResiUserService extends BaseService { * @param orgType * @return */ - List queryAgeDistribute(String customerId, String staffId, String orgId, String orgType); + ResiPortrayalResult queryAgeDistribute(String customerId, String staffId, String orgId, String orgType); /** * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 @@ -573,7 +573,7 @@ public interface IcResiUserService extends BaseService { * @param orgType agency/grid * @return */ - List queryEducationDistribute(String customerId, String staffId, String orgId, String orgType); + ResiPortrayalResult queryEducationDistribute(String customerId, String staffId, String orgId, String orgType); /** * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 @@ -585,4 +585,21 @@ public interface IcResiUserService extends BaseService { Integer pageNo, Integer pageSize, String orgId, String orgType, String codeType,String code); + + /** + * 导出居民画像,居民列表调用此方法。只导出列表信息 + * @param customerId + * @param staffId + * @param pageNo + * @param pageSize + * @param orgId + * @param orgType + * @param codeType + * @param code + * @return + */ + PageData queryPortrayalResiListForExport(String customerId, String staffId, + Integer pageNo, Integer pageSize, + String orgId, String orgType, + String codeType,String code); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 15f2510caf..a89193ec33 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -63,6 +63,7 @@ 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.ResiPortrayalResult; import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.entity.*; import com.epmet.enums.RenHuConditionEnum; @@ -3914,7 +3915,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl queryAgeDistribute(String customerId,String staffId,String orgId, String orgType) { + public ResiPortrayalResult queryAgeDistribute(String customerId, String staffId, String orgId, String orgType) { + ResiPortrayalResult result=new ResiPortrayalResult(); if (StringUtils.isBlank(orgId)) { orgId = CustomerStaffRedis.getStaffInfo(customerId, staffId).getAgencyId(); orgType = OrgTypeEnum.AGENCY.getCode(); @@ -3926,15 +3928,21 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resultList=getDefaultAgeDistribute(); List list=baseDao.selectAgeAgeDistribute(customerId,orgId,orgType,orgIdPath); if(CollectionUtils.isEmpty(list)){ - return resultList; + result.setTotal(NumConstant.ZERO); + result.setList(resultList); + return result; } Map 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())); + int total=NumConstant.ZERO; + for(ResiPortrayalResultDTO resultDto:resultList){ + if (MapUtils.isNotEmpty(resultMap) && resultMap.containsKey(resultDto.getCode())) { + resultDto.setTotalResi(resultMap.get(resultDto.getCode())); } - }); - return resultList; + total+=resultDto.getTotalResi(); + } + result.setTotal(total); + result.setList(resultList); + return result; } private List getDefaultAgeDistribute() { @@ -3978,7 +3986,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl queryEducationDistribute(String customerId, String staffId, String orgId, String orgType) { + public ResiPortrayalResult queryEducationDistribute(String customerId, String staffId, String orgId, String orgType) { + ResiPortrayalResult result=new ResiPortrayalResult(); if (StringUtils.isBlank(orgId)) { orgId = CustomerStaffRedis.getStaffInfo(customerId, staffId).getAgencyId(); orgType = OrgTypeEnum.AGENCY.getCode(); @@ -3998,17 +4007,21 @@ public class IcResiUserServiceImpl extends BaseServiceImpl totalList = baseDao.queryEducationDistribute(customerId, orgId, orgType,orgIdPath); Map map = totalList.stream().collect(Collectors.toMap(ResiPortrayalResultDTO::getCode,ResiPortrayalResultDTO::getTotalResi)); List resultDTOList = new ArrayList<>(); - dictResult.getData().forEach(dict -> { + int total=NumConstant.ZERO; + for (DictListResultDTO dict : dictResult.getData()) { ResiPortrayalResultDTO resultDTO = new ResiPortrayalResultDTO(); resultDTO.setCode(dict.getValue()); resultDTO.setCodeName(dict.getLabel()); resultDTO.setTotalResi(NumConstant.ZERO); - if(MapUtils.isNotEmpty(map)&&map.containsKey(dict.getValue())){ + if (MapUtils.isNotEmpty(map) && map.containsKey(dict.getValue())) { resultDTO.setTotalResi(map.get(dict.getValue())); } resultDTOList.add(resultDTO); - }); - return resultDTOList; + total += resultDTO.getTotalResi(); + } + result.setTotal(total); + result.setList(resultDTOList); + return result; } @@ -4086,5 +4099,38 @@ public class IcResiUserServiceImpl extends BaseServiceImpl(list, pageInfo.getTotal(), pageSize); } + @Override + public PageData queryPortrayalResiListForExport(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> dictResult = epmetAdminOpenFeignClient.dictList(dictFormDTO); + if (!dictResult.success() || CollectionUtils.isEmpty(dictResult.getData())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "学历字典获取失败", "学历字典获取失败"); + } + Map 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(); + } + String orgIdPath=StrConstant.EPMETY_STR; + if(OrgTypeEnum.AGENCY.getCode().equals(orgType)){ + orgIdPath=CustomerOrgRedis.getOrgIdPath(orgId,orgType); + } + PageHelper.startPage(pageNo, pageSize); + List list = baseDao.selectPortrayalResiList(customerId, orgId, orgType,orgIdPath,codeType, code); + if(CollectionUtils.isNotEmpty(list)){ + list.forEach(resi -> { + // 学历名称 + resi.setEducationName(educationMap.get(resi.getEducationCode())); + }); + } + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal(), pageSize); + } }