diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/datastats/FactAgencyGovernDailyEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/datastats/FactAgencyGovernDailyEntity.java
index d709731f77..77bcd7cc34 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/datastats/FactAgencyGovernDailyEntity.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/datastats/FactAgencyGovernDailyEntity.java
@@ -151,6 +151,15 @@ public class FactAgencyGovernDailyEntity extends BaseEpmetEntity {
*/
private Integer inGroupTopicUnResolvedCount;
+ /**
+ * 11、当前组织内:来源于事件的项目:结案已解决数
+ */
+ private Integer eventResolvedCount;
+ /**
+ * 12、当前组织内:来源于事件的项目:结案无需解决数
+ */
+ private Integer eventUnResolvedCount;
+
/**
* 未出当前网格的,结案项目数
*/
@@ -171,4 +180,5 @@ public class FactAgencyGovernDailyEntity extends BaseEpmetEntity {
*/
private Integer districtDeptClosedCount;
+
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
index e2156dbadb..d1c160080d 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
@@ -1186,13 +1186,20 @@ public class DataStatsServiceImpl implements DataStatsService {
Integer streetClosedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getStreetClosedCount).sum();
//由区直部门结案的项目总数
Integer districtDeptClosedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getDistrictDeptClosedCount).sum();
-
- resultDTO.setProblemResolvedCount(problemResolvedCount);
+ Integer issueResolvedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getIssueProjectResolvedCount).sum();
+ Integer issueUnResolvedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getIssueProjectUnResolvedCount).sum();
+ Integer projectResolvedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getApprovalProjectResolvedCount).sum();
+ Integer projectUnResolvedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getApprovalProjectUnResolvedCount).sum();
+ Integer eventResolvedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getEventResolvedCount).sum();
+ Integer eventUnResolvedCount = list.stream().mapToInt(FactAgencyGovernDailyEntity::getEventUnResolvedCount).sum();
+ Integer closedProjectTotal = issueResolvedCount + issueUnResolvedCount+projectResolvedCount
+ + projectUnResolvedCount + eventResolvedCount + eventUnResolvedCount;
+ resultDTO.setProblemResolvedCount(closedProjectTotal);
resultDTO.setGroupSelfGovernRatio(getPercentage(inGroupTopicResolvedCount + inGroupTopicUnResolvedCount, problemResolvedCount));
- resultDTO.setGridSelfGovernRatio(getPercentage(gridSelfGovernProjectTotal, problemResolvedCount));
- resultDTO.setCommunityResolvedRatio(getPercentage(communityClosedCount, problemResolvedCount));
- resultDTO.setStreetResolvedRatio(getPercentage(streetClosedCount, problemResolvedCount));
- resultDTO.setDistrictDeptResolvedRatio(getPercentage(districtDeptClosedCount, problemResolvedCount));
+ resultDTO.setGridSelfGovernRatio(getPercentage(gridSelfGovernProjectTotal, closedProjectTotal));
+ resultDTO.setCommunityResolvedRatio(getPercentage(communityClosedCount, closedProjectTotal));
+ resultDTO.setStreetResolvedRatio(getPercentage(streetClosedCount, closedProjectTotal));
+ resultDTO.setDistrictDeptResolvedRatio(getPercentage(districtDeptClosedCount, closedProjectTotal));
return resultDTO;
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
index 50221188f9..3ae2108cd1 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
@@ -599,6 +599,7 @@ public class EpmetUserServiceImpl implements EpmetUserService {
log.error("getStaffInfo have any agency staffId:{}",staffId);
return null;
}
+ result.setStaffId(staffEntity.getUserId());
result.setAgencyId(agencyDTO.getId());
result.setAgencyName(agencyDTO.getOrganizationName());
result.setAgencyPIds(agencyDTO.getPids());
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
index c625e19c9b..e94f7859c3 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
@@ -624,7 +624,9 @@
SELECT
agency_id AS agencyId,
`level` AS level,
- problem_resolved_count AS problemResolvedCount,
+ ISSUE_PROJECT_RESOLVED_COUNT+ISSUE_PROJECT_UN_RESOLVED_COUNT
+ +APPROVAL_PROJECT_RESOLVED_COUNT+APPROVAL_PROJECT_UN_RESOLVED_COUNT
+ +EVENT_RESOLVED_COUNT+EVENT_UN_RESOLVED_COUNT AS problemResolvedCount,
concat(ROUND(group_self_govern_ratio*100, 1),'%') AS groupSelfGovernRatio,
concat(ROUND(grid_self_govern_ratio*100, 1),'%') AS gridSelfGovernRatio,
concat(ROUND(community_closed_ratio*100, 1),'%') AS communityResolvedRatio,
@@ -638,13 +640,15 @@
agency_id = #{agencyId}
- ORDER BY problem_resolved_count DESC
+ ORDER BY problemResolvedCount DESC
@@ -40,7 +40,7 @@
left join screen_customer_agency pa
on(agency.PARENT_AREA_CODE=pa.AREA_CODE
and pa.DEL_FLAG='0')
- left join screen_govern_rank_data rankData
+ left join screen_govern_rank_data_daily rankData
ON (agency.AGENCY_ID =rankData.org_id
AND rankData.DEL_FLAG = '0'
and rankData.org_type='agency')
@@ -50,7 +50,7 @@
#{orgId}
- AND rankData.MONTH_ID =#{monthId}
+ AND rankData.DATE_ID =#{monthId}
)
union
(
@@ -65,7 +65,7 @@
FROM screen_customer_grid grid
left join screen_customer_agency ca
on (ca.agency_id = grid.parent_agency_id)
- left join screen_govern_rank_data rankData
+ left join screen_govern_rank_data_daily rankData
ON (grid.grid_id=rankData.org_id
AND grid.DEL_FLAG = 0
and rankData.org_type='grid')
@@ -74,7 +74,7 @@
#{orgId}
- AND rankData.MONTH_ID =#{monthId}
+ AND rankData.DATE_ID =#{monthId}
)
ORDER BY
RESPONSE_RATIO DESC
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactAgencyGovernDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactAgencyGovernDailyDTO.java
index 3f9c614f8a..a550775779 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactAgencyGovernDailyDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactAgencyGovernDailyDTO.java
@@ -129,6 +129,15 @@ public class FactAgencyGovernDailyDTO implements Serializable {
*/
private Integer inGroupTopicUnResolvedCount;
+ /**
+ * 11、当前组织内:来源于事件的项目:结案已解决数
+ */
+ private Integer eventResolvedCount;
+ /**
+ * 12、当前组织内:来源于事件的项目:结案无需解决数
+ */
+ private Integer eventUnResolvedCount;
+
/**
* 未出当前网格的,结案项目数
*/
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactGridGovernDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactGridGovernDailyDTO.java
index 778ffcb9a4..b8d585f00f 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactGridGovernDailyDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactGridGovernDailyDTO.java
@@ -140,6 +140,15 @@ public class FactGridGovernDailyDTO implements Serializable {
*/
private Integer fromAgencyUnResolvedInGridCount;
+ /**
+ * 15、当前组织内:来源于事件的项目:结案已解决数
+ */
+ private Integer eventResolvedCount;
+ /**
+ * 16、当前组织内:来源于事件的项目:结案无需解决数
+ */
+ private Integer eventUnResolvedCount;
+
/**
* 15、未出当前网格的,结案项目数=11+12+13+14
*/
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/DimObjectActionConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/DimObjectActionConstant.java
index 1b6697f1ec..6e8c7b153e 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/DimObjectActionConstant.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/DimObjectActionConstant.java
@@ -24,4 +24,6 @@ public interface DimObjectActionConstant {
// perfect 非常满意
// created 立项
String PROJECT_RETURN="return";
+
+ String PROJECT_CLOSE="close";
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactAgencyGovernDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactAgencyGovernDailyEntity.java
index 2f37f9a113..95f48fdeee 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactAgencyGovernDailyEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactAgencyGovernDailyEntity.java
@@ -150,7 +150,14 @@ public class FactAgencyGovernDailyEntity extends BaseEpmetEntity {
* 10、当前组织内,未出小组即未转议题的:话题关闭无需解决数
*/
private Integer inGroupTopicUnResolvedCount;
-
+ /**
+ * 11、当前组织内:来源于事件的项目:结案已解决数
+ */
+ private Integer eventResolvedCount;
+ /**
+ * 12、当前组织内:来源于事件的项目:结案无需解决数
+ */
+ private Integer eventUnResolvedCount;
/**
* 未出当前网格的,结案项目数
*/
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridGovernDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridGovernDailyEntity.java
index 22fa2b2b67..827a6fdf75 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridGovernDailyEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridGovernDailyEntity.java
@@ -169,6 +169,15 @@ public class FactGridGovernDailyEntity extends BaseEpmetEntity {
*/
private Integer gridSelfGovernProjectTotal;
+ /**
+ * 15、当前组织内:来源于事件的项目:结案已解决数
+ */
+ private Integer eventResolvedCount;
+ /**
+ * 16、当前组织内:来源于事件的项目:结案无需解决数
+ */
+ private Integer eventUnResolvedCount;
+
/**
* 当前网格内出来的项目:由社区结案(已解决+未解决)的项目总数
@@ -208,6 +217,8 @@ public class FactGridGovernDailyEntity extends BaseEpmetEntity {
this.issueProjectUnResolvedCount=NumConstant.ZERO;
this.approvalProjectResolvedCount=NumConstant.ZERO;
this.approvalProjectUnResolvedCount=NumConstant.ZERO;
+ this.eventResolvedCount=NumConstant.ZERO;
+ this.eventUnResolvedCount=NumConstant.ZERO;
this.inGroupTopicResolvedCount=NumConstant.ZERO;
this.inGroupTopicUnResolvedCount=NumConstant.ZERO;
this.fromIssueResolvedInGridCount=NumConstant.ZERO;
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/GovernGridClosedTotalCommonDTO.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/GovernGridClosedTotalCommonDTO.java
index fcc4193885..d38e74cabb 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/GovernGridClosedTotalCommonDTO.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/GovernGridClosedTotalCommonDTO.java
@@ -51,6 +51,8 @@ public class GovernGridClosedTotalCommonDTO implements Serializable {
*/
private Integer districtDeptClosedCount;
+ private Integer gridSelfGovernProjectTotal;
+
public GovernGridClosedTotalCommonDTO(){
this.gridId = StrConstant.EPMETY_STR;
this.fromIssueResolvedInGridCount=NumConstant.ZERO;
@@ -60,5 +62,6 @@ public class GovernGridClosedTotalCommonDTO implements Serializable {
this.communityClosedCount=NumConstant.ZERO;
this.streetClosedCount=NumConstant.ZERO;
this.districtDeptClosedCount=NumConstant.ZERO;
+ this.gridSelfGovernProjectTotal=NumConstant.ZERO;
}
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java
index f766873cea..52b6310caf 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java
@@ -29,7 +29,6 @@ import com.epmet.dto.stats.DimAgencyDTO;
import com.epmet.entity.evaluationindex.extract.FactAgencyGovernDailyEntity;
import com.epmet.service.evaluationindex.extract.todata.*;
import com.epmet.service.stats.DimAgencyService;
-import com.epmet.util.DimIdGenerator;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
@@ -202,13 +201,11 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl projectResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId,
dateId, ProjectConstant.RESOLVED,
OrgTypeConstant.AGENCY);
- Map eventProjectResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId,
- dateId, ProjectConstant.RESOLVED,
- ProjectConstant.PROJECT_ORIGIN_EVENT);
+
if (!projectResolvedTotal.isEmpty()) {
agencyGovernDailyList.forEach(item -> {
OrgStatisticsResultDTO dto = projectResolvedTotal.get(item.getAgencyId());
@@ -219,23 +216,12 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl {
- OrgStatisticsResultDTO dto = eventProjectResolvedTotal.get(item.getAgencyId());
- int sum = item.getApprovalProjectResolvedCount();
- if (null != dto) {
- sum = sum + dto.getSum();
- }
- item.setApprovalProjectResolvedCount(sum);
- });
- }
- // 当前组织内:来源于议题的项目:结案无需解决数
+
+ // 当前组织内:项目立项:结案无需解决数
Map projectUnResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId,
dateId, ProjectConstant.UNRESOLVED,
OrgTypeConstant.AGENCY);
- Map eventProjectUnResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId,
- dateId, ProjectConstant.UNRESOLVED,
- ProjectConstant.PROJECT_ORIGIN_EVENT);
+
if (!projectUnResolvedTotal.isEmpty()) {
agencyGovernDailyList.forEach(item -> {
OrgStatisticsResultDTO dto = projectUnResolvedTotal.get(item.getAgencyId());
@@ -246,17 +232,34 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl {
- OrgStatisticsResultDTO dto = eventProjectUnResolvedTotal.get(item.getAgencyId());
- int sum = item.getApprovalProjectUnResolvedCount();
- if (null != dto) {
- sum = sum + dto.getSum();
- }
- item.setApprovalProjectUnResolvedCount(sum);
- });
- }
+
+ }
+
+ //2021.12.15 当前组织内:来源于事件的项目:结案已解决数
+ Map eventProjectResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId,
+ dateId, ProjectConstant.RESOLVED,
+ ProjectConstant.PROJECT_ORIGIN_EVENT);
+ if (!eventProjectResolvedTotal.isEmpty()) {
+ agencyGovernDailyList.forEach(item -> {
+ OrgStatisticsResultDTO dto = eventProjectResolvedTotal.get(item.getAgencyId());
+ if (null != dto) {
+ item.setEventResolvedCount(dto.getSum());
+ }
+ });
}
+ //2021.12.15 当前组织内:来源于事件的项目:结案无需解决数
+ Map eventProjectUnResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId,
+ dateId, ProjectConstant.UNRESOLVED,
+ ProjectConstant.PROJECT_ORIGIN_EVENT);
+ if (!eventProjectUnResolvedTotal.isEmpty()) {
+ agencyGovernDailyList.forEach(item -> {
+ OrgStatisticsResultDTO dto = eventProjectUnResolvedTotal.get(item.getAgencyId());
+ if (null != dto) {
+ item.setEventUnResolvedCount(dto.getSum());
+ }
+ });
+ }
+
// 2.党群自治占比:当前组织下,所有小组内关闭(已解决+无需解决)的话题数与问题解决总数之比(未出小组:未转议题的)
agencyGovernDailyList.forEach(item -> {
int count = item.getInGroupTopicResolvedCount() + item.getInGroupTopicUnResolvedCount();
@@ -267,14 +270,16 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl gridSelfCount = factOriginProjectLogDailyService.getAgencyGridSelfDaily(customerId, dateId);
if (!gridSelfCount.isEmpty()) {
agencyGovernDailyList.forEach(item -> {
OrgStatisticsResultDTO dto = gridSelfCount.get(item.getAgencyId());
if (null != dto) {
int count = dto.getCount();
- int sum = item.getProblemResolvedCount();
+ //已结案项目数 = 来源议题的项目结案已解决数+来源议题的项目结案无需解决数+项目立项结案已解决数+项目立项结案无需解决数+来源事件的项目结案已解决数+来源事件的项目结案已解决数
+ int sum = item.getIssueProjectResolvedCount() + item.getIssueProjectUnResolvedCount() + item.getApprovalProjectResolvedCount()
+ + item.getApprovalProjectUnResolvedCount() + item.getEventResolvedCount() + item.getEventUnResolvedCount();
if (sum != NumConstant.ZERO) {
BigDecimal resolveCount = new BigDecimal(sum);
BigDecimal selfCount = new BigDecimal(count);
@@ -284,9 +289,9 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl> projectCount = factOriginProjectMainDailyService.getAgencyClosedProjectStatic(customerId, dateId);
if (!gridSelfCount.isEmpty()) {
agencyGovernDailyList.forEach(item -> {
@@ -294,7 +299,9 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl map = list.stream().collect(Collectors.toMap(OrgStatisticsResultDTO::getLevel,
Function.identity()));
- int sum = item.getProblemResolvedCount();
+ //已结案项目数 = 来源议题的项目结案已解决数+来源议题的项目结案无需解决数+项目立项结案已解决数+项目立项结案无需解决数+来源事件的项目结案已解决数+来源事件的项目结案已解决数
+ int sum = item.getIssueProjectResolvedCount() + item.getIssueProjectUnResolvedCount() + item.getApprovalProjectResolvedCount()
+ + item.getApprovalProjectUnResolvedCount() + item.getEventResolvedCount() + item.getEventUnResolvedCount();
BigDecimal resolveCount = new BigDecimal(sum);
if (sum != NumConstant.ZERO) {
// 社区解决占比
@@ -316,7 +323,7 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl currentGridClosedProjectList = factOriginProjectMainDailyService.getGridClosedProjectList(customerId, gridId,
ProjectConstant.CLOSED,null,null);
@@ -339,6 +349,7 @@ public class FactGridGovernDailyServiceImpl extends BaseServiceImpl projectLogDTOList) {
List handleLevelList=new ArrayList<>();
for (FactOriginProjectLogDailyDTO logDailyDTO : projectLogDTOList) {
- if(logDailyDTO.getActionCode().equals(DimObjectActionConstant.PROJECT_RETURN)||NumConstant.ZERO==logDailyDTO.getIsActive()){
+ if(!logDailyDTO.getActionCode().equals(DimObjectActionConstant.PROJECT_CLOSE)||NumConstant.ZERO==logDailyDTO.getIsActive()){
//当前操作如果是退回,不参与比较
continue;
}
@@ -395,32 +409,42 @@ public class FactGridGovernDailyServiceImpl extends BaseServiceImpl