diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SonOrgResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SonOrgResultDTO.java new file mode 100644 index 0000000000..21d688ac55 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SonOrgResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/12/31 10:22 上午 + * @DESC + */ +@Data +public class SonOrgResultDTO implements Serializable { + + private static final long serialVersionUID = -1046350929245852333L; + + private String orgId; + + private String pids; +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index f09e1f6ccf..f997cad3c5 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -539,7 +539,7 @@ public interface GovOrgOpenFeignClient { * @date 2021/12/9 4:42 下午 */ @PostMapping("/gov/org/agency/getsonagencyid") - Result> getSonAgencyId(@RequestParam("orgId")String orgId); + Result> getSonAgencyId(@RequestParam("orgId")String orgId,@RequestParam("type")String type); // /icbuilding/{id}?id=demoData diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index f85e3471e6..95cdf04f81 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -335,8 +335,8 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { } @Override - public Result> getSonAgencyId(String orgId) { - return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getSonAgencyId", orgId); + public Result> getSonAgencyId(String orgId,String type) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getSonAgencyId", orgId,type); } @Override diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index 5651110c57..363f7b7297 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -356,8 +356,8 @@ public class AgencyController { * @date 2021/12/9 4:42 下午 */ @PostMapping("getsonagencyid") - public Result> getSonAgencyId(@RequestParam("orgId")String orgId){ - return new Result>().ok(agencyService.getSonAgencyId(orgId)); + public Result> getSonAgencyId(@RequestParam("orgId")String orgId,@RequestParam("type")String type){ + return new Result>().ok(agencyService.getSonAgencyId(orgId,type)); } } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java index d1a49f7ba3..b29ca682eb 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java @@ -280,7 +280,9 @@ public interface CustomerAgencyDao extends BaseDao { * @author zxc * @date 2021/12/9 4:42 下午 */ - List getSonAgencyId(@Param("orgId") String orgId); + List getSonAgencyId(@Param("orgId") String orgId); + + List getSonGridId(@Param("orgId") String orgId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java index d85f2d8b68..bacb45d855 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java @@ -154,6 +154,6 @@ public interface AgencyService { * @author zxc * @date 2021/12/9 4:42 下午 */ - List getSonAgencyId(String orgId); + List getSonAgencyId(String orgId,String type); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index 4bfc4487d3..9b5981318e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -638,8 +638,13 @@ public class AgencyServiceImpl implements AgencyService { * @date 2021/12/9 4:42 下午 */ @Override - public List getSonAgencyId(String orgId) { - List result = customerAgencyDao.getSonAgencyId(orgId); + public List getSonAgencyId(String orgId,String type) { + List result = new ArrayList<>(); + if (type.equals("community")){ + result = customerAgencyDao.getSonGridId(orgId); + }else { + result = customerAgencyDao.getSonAgencyId(orgId); + } if (CollectionUtils.isNotEmpty(result)){ return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml index 8b89d3c966..310b631dc7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml @@ -669,13 +669,23 @@ - SELECT - ID + ID AS orgId, + pids FROM customer_agency WHERE DEL_FLAG = '0' AND PID = #{orgId} + diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 0765ea11a9..e3a705b1a4 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -2915,22 +2915,26 @@ public class ProjectServiceImpl extends BaseServiceImpl orgList = new ArrayList<>(); + Result> sonOrgList = govOrgOpenFeignClient.getSonAgencyId(formDTO.getOrgId(), agencyInfo.getLevel()); + if (!sonOrgList.success() || CollectionUtils.isEmpty(sonOrgList.getData())){ + throw new EpmetException(String.format("查询组织{%s}的下级组织失败或为空...",formDTO.getOrgId())); + } + List orgIds = sonOrgList.getData(); if (!agencyInfo.getLevel().equals(ProjectConstant.ORG_LEVEL_COMMUNITY)){ - Result> sonAgencyIdResult = govOrgOpenFeignClient.getSonAgencyId(formDTO.getOrgId()); - if (!sonAgencyIdResult.success()){ - throw new EpmetException(String.format("查询组织{%s}的下级组织失败...",formDTO.getOrgId())); - } - List agencyIds = sonAgencyIdResult.getData(); - if (CollectionUtils.isNotEmpty(agencyIds)){ - orgList = baseDao.selectProjectCountByOrg(agencyIds,formDTO.getStartDate(),formDTO.getEndDate()); - } + orgList = baseDao.selectProjectCountByOrg(orgIds.stream().map(m -> m.getPids()).collect(Collectors.toList()), formDTO.getStartDate(),formDTO.getEndDate()); }else { + for (SonOrgResultDTO o : orgIds) { + ProjectDistributionAnalysisRightDTO dto = new ProjectDistributionAnalysisRightDTO(); + dto.setOrgId(o.getOrgId()); + orgList.add(dto); + } Result> projectCountByGrid = govIssueOpenFeignClient.getProjectCountByGrid(formDTO); if (!projectCountByGrid.success()){ throw new EpmetException("查询网格项目数失败..."); } if (CollectionUtils.isNotEmpty(projectCountByGrid.getData())){ - orgList = projectCountByGrid.getData(); + orgList.stream().forEach(o -> projectCountByGrid.getData().stream().filter(p -> p.getOrgId().equals(o.getOrgId())).forEach(p -> o.setCount(p.getCount()))); + } } if (CollectionUtils.isEmpty(orgList)){ diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 2e5d52b4ca..676ff317c1 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -478,7 +478,7 @@ COUNT(ID) AS count FROM project WHERE DEL_FLAG = '0' - AND ORG_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND ORG_ID_PATH LIKE CONCAT(#{orgId},'%') AND DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') >= #{startDate} AND DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') #{endDate}