Browse Source

事件分析组织-天 统计 添加组织立项逻辑

dev_shibei_match
zxc 4 years ago
parent
commit
ecb8426bdf
  1. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java
  2. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectOrgDailyResultDTO.java
  3. 11
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java
  4. 8
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java
  5. 29
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java
  6. 29
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java
  7. 42
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java
  8. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java
  9. 68
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java
  10. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java
  11. 59
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml
  12. 11
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java

@ -17,4 +17,6 @@ public class EvaluateTotalResultDTO implements Serializable {
private String orgId;
private Integer evaluateCount = NumConstant.ZERO;
private String areaCode;
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectOrgDailyResultDTO.java

@ -44,6 +44,8 @@ public class ProjectOrgDailyResultDTO implements Serializable {
*/
private Integer badTotal;
private String orgId;
public ProjectOrgDailyResultDTO() {
this.projectTotal = NumConstant.ZERO;
this.resolvedNum = NumConstant.ZERO;

11
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java

@ -13,6 +13,15 @@ public class ProjectTotalResultDTO implements Serializable {
private static final long serialVersionUID = 6071988402600005617L;
private String gridId;
private String orgId;
/**
* 项目总数
*/
private Integer projectTotal;
/**
* 行政区域编码
*/
private String areaCode;
}

8
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java

@ -13,6 +13,12 @@ public class ResolvedNumResultDTO implements Serializable {
private static final long serialVersionUID = 607198840261205617L;
private String gridId;
private String orgId;
/**
* 已解决的项目总数
*/
private Integer resolvedNum;
private String areaCode;
}

29
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java

@ -229,6 +229,16 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<ProjectTotalResultDTO> selectProjectTotal(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("monthId")String monthId);
/**
* @Description 组织查询项目总数
* @Param orgIds
* @Param dateId
* @Param monthId
* @author zxc
* @date 2021/4/13 上午9:31
*/
List<ProjectTotalResultDTO> selectProjectTotalByOrg(@Param("orgIds")List<String> orgIds, @Param("dateId")String dateId, @Param("monthId")String monthId);
/**
* @Description 查询已解决项目数
* @Param customerId
@ -238,6 +248,15 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<ResolvedNumResultDTO> selectResolvedNum(@Param("customerId")String customerId, @Param("dateId")String dateId);
/**
* @Description 组织查询已解决项目数
* @Param orgIds
* @Param dateId
* @author zxc
* @date 2021/4/13 上午9:41
*/
List<ResolvedNumResultDTO> selectResolvedNumByOrg(@Param("orgIds")List<String> orgIds, @Param("dateId")String dateId);
/**
* @Description 查询 满意度评价次数
* @Param customerId
@ -247,6 +266,16 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<EvaluateTotalResultDTO> selectEvaluateCount(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("activeCodes") List<String> activeCodes);
/**
* @Description 组织 查询 满意度评价次数
* @Param orgIds
* @Param dateId
* @Param activeCodes
* @author zxc
* @date 2021/4/13 上午9:56
*/
List<EvaluateTotalResultDTO> selectEvaluateCountByOrg(@Param("orgIds")List<String> orgIds, @Param("dateId")String dateId, @Param("activeCodes")List<String> activeCodes);
/**
* @Description 查询本月新增项目数
* @Param customerId

29
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java

@ -275,6 +275,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<ProjectTotalResultDTO> selectProjectTotal(String customerId,String dateId,String monthId);
/**
* @Description 组织查询项目总数
* @Param orgIds
* @Param dateId
* @Param monthId
* @author zxc
* @date 2021/4/12 下午5:12
*/
List<ProjectTotalResultDTO> selectProjectTotalByOrg(List<String> orgIds,String dateId,String monthId);
/**
* @Description 查询已解决项目数
* @Param customerId
@ -284,6 +294,15 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<ResolvedNumResultDTO> selectResolvedNum(String customerId, String dateId);
/**
* @Description 组织查询已解决项目数
* @Param orgIds
* @Param dateId
* @author zxc
* @date 2021/4/13 上午9:28
*/
List<ResolvedNumResultDTO> selectResolvedNumByOrg(List<String> orgIds, String dateId);
/**
* @Description 查询 满意度评价次数
* @Param customerId
@ -293,6 +312,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
List<EvaluateTotalResultDTO> selectEvaluateCount(String customerId, String dateId,List<String> activeCodes);
/**
* @Description 组织 查询 满意度评价次数
* @Param customerId
* @Param dateId
* @Param activeCodes
* @author zxc
* @date 2021/4/13 上午9:52
*/
List<EvaluateTotalResultDTO> selectEvaluateCountByOrg(List<String> orgIds, String dateId,List<String> activeCodes);
/**
* @Description 查询本月新增项目数
* @Param customerId

42
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java

@ -291,6 +291,15 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
@Override
public List<ProjectTotalResultDTO> selectProjectTotalByOrg(List<String> orgIds, String dateId, String monthId) {
if (!CollectionUtils.isEmpty(orgIds)){
List<ProjectTotalResultDTO> projectTotalResultDTOS = baseDao.selectProjectTotalByOrg(orgIds, dateId, monthId);
return projectTotalResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询已解决项目数
* @Param customerId
@ -307,6 +316,22 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
/**
* @Description 组织查询已解决项目数
* @Param orgIds
* @Param dateId
* @author zxc
* @date 2021/4/13 上午9:29
*/
@Override
public List<ResolvedNumResultDTO> selectResolvedNumByOrg(List<String> orgIds, String dateId) {
if (!CollectionUtils.isEmpty(orgIds)){
List<ResolvedNumResultDTO> resolvedNumResultDTOS = baseDao.selectResolvedNumByOrg(orgIds, dateId);
return resolvedNumResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询 满意度评价次数
* @Param customerId
@ -323,6 +348,23 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return new ArrayList<>();
}
/**
* @Description 组织 查询 满意度评价次数
* @Param customerId
* @Param dateId
* @Param activeCodes
* @author zxc
* @date 2021/4/13 上午9:54
*/
@Override
public List<EvaluateTotalResultDTO> selectEvaluateCountByOrg(List<String> orgIds, String dateId, List<String> activeCodes) {
if (!CollectionUtils.isEmpty(orgIds)){
List<EvaluateTotalResultDTO> evaluateTotalResultDTOS = baseDao.selectEvaluateCountByOrg(orgIds, dateId, activeCodes);
return evaluateTotalResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询本月新增项目数
* @Param customerId

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java

@ -172,7 +172,7 @@ public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl<ScreenPro
// 项目总数赋值
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(pt -> {
if (g.getGridId().equals(pt.getGridId())){
if (g.getGridId().equals(pt.getOrgId())){
g.setProjectTotal(pt.getProjectTotal());
}
});
@ -180,7 +180,7 @@ public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl<ScreenPro
// 项目解决数赋值
if (!CollectionUtils.isEmpty(resolvedNum)){
resolvedNum.forEach(rn -> {
if (g.getGridId().equals(rn.getGridId())){
if (g.getGridId().equals(rn.getOrgId())){
g.setResolvedNum(rn.getResolvedNum());
}
});

68
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java

@ -29,12 +29,16 @@ import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.PingYinConstants;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectOrgDailyDao;
import com.epmet.dto.pingyin.result.EvaluateTotalResultDTO;
import com.epmet.dto.pingyin.result.ProjectOrgDailyResultDTO;
import com.epmet.dto.pingyin.result.ProjectTotalResultDTO;
import com.epmet.dto.pingyin.result.ResolvedNumResultDTO;
import com.epmet.dto.screen.ScreenProjectOrgDailyDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.entity.evaluationindex.screen.ScreenProjectOrgDailyEntity;
import com.epmet.entity.org.CustomerAgencyEntity;
import com.epmet.service.crm.CustomerRelationService;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import com.epmet.service.evaluationindex.screen.ScreenProjectOrgDailyService;
import com.epmet.service.org.CustomerAgencyService;
import com.google.common.collect.Lists;
@ -51,6 +55,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 项目(事件)分析按组织_按天统计
@ -69,6 +74,8 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
private CustomerRelationService customerRelationService;
@Autowired
private CustomerAgencyService customerAgencyService;
@Autowired
private FactOriginProjectMainDailyService projectMainDailyService;
@Override
public PageData<ScreenProjectOrgDailyDTO> page(Map<String, Object> params) {
@ -172,12 +179,52 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
log.info(String.format(PingYinConstants.SELECT_GRID_INFO_BY_ORG_IS_NULL,customerId));
return;
}
List<String> orgIds = agencyInfos.stream().map(m -> m.getOrgId()).collect(Collectors.toList());
// 查询 项目总数
List<ProjectTotalResultDTO> projectTotal = projectMainDailyService.selectProjectTotalByOrg(orgIds, dateId, null);
// 查询 项目解决数
List<ResolvedNumResultDTO> resolvedNum = projectMainDailyService.selectResolvedNumByOrg(orgIds, dateId);
//查询 参与满意度评价的总次数
String[] activeCodesAll = {PingYinConstants.EVALUATE_BAD,PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT};
List<EvaluateTotalResultDTO> evaluateTotal = projectMainDailyService.selectEvaluateCountByOrg(orgIds, dateId, getActiveCode(activeCodesAll));
//查询 满意+非常满意的总次数
String[] activeCodesGood = {PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT};
List<EvaluateTotalResultDTO> evaluateGood = projectMainDailyService.selectEvaluateCountByOrg(orgIds, dateId, getActiveCode(activeCodesGood));
projectOrgDaily.forEach(p -> {
p.setBadTotal(null == p.getBadTotal() ? NumConstant.ZERO : p.getBadTotal());
p.setEvaluateTotal(null == p.getEvaluateTotal() ? NumConstant.ZERO : p.getEvaluateTotal());
p.setGoodTotal(null == p.getGoodTotal() ? NumConstant.ZERO : p.getGoodTotal());
p.setProjectTotal(null == p.getProjectTotal() ? NumConstant.ZERO : p.getProjectTotal());
p.setResolvedNum(null == p.getResolvedNum() ? NumConstant.ZERO : p.getResolvedNum());
// 参与满意度评价的总次数
if (!CollectionUtils.isEmpty(evaluateTotal)){
evaluateTotal.forEach(e -> {
if (p.getOrgId().equals(e.getOrgId())){
p.setEvaluateTotal(p.getEvaluateTotal() + e.getEvaluateCount());
}
});
}
// 满意+非常满意的总次数
if (!CollectionUtils.isEmpty(evaluateGood)){
evaluateGood.forEach(e -> {
if (p.getOrgId().equals(e.getOrgId())){
p.setGoodTotal(p.getGoodTotal() + e.getEvaluateCount());
}
});
}
// 项目总数
if (!CollectionUtils.isEmpty(projectTotal)) {
projectTotal.forEach(t -> {
if (p.getOrgId().equals(t.getOrgId())){
p.setProjectTotal(p.getProjectTotal() + t.getProjectTotal());
}
});
}
// 已解决的项目总数
if (!CollectionUtils.isEmpty(resolvedNum)){
resolvedNum.forEach(r -> {
if (p.getOrgId().equals(r.getOrgId())){
p.setResolvedNum(p.getResolvedNum() + r.getResolvedNum());
}
});
}
// 不满意总次数
p.setBadTotal(p.getEvaluateTotal() - p.getGoodTotal());
});
log.info(projectOrgDaily.toString());
agencyInfos.forEach(a -> {
@ -200,6 +247,17 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
insert(agencyInfos,customerId,dateId);
}
/**
* @Description activeCode处理
* @Param actCode
* @author zxc
* @date 2021/4/13 上午10:06
*/
public List<String> getActiveCode(String[] actCode){
List<String> activeCodes = Arrays.asList(actCode);
return activeCodes;
}
/**
* @Description
* @Param a

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java

@ -183,7 +183,7 @@ public class ScreenProjectQuantityGridMonthlyServiceImpl extends BaseServiceImpl
// 截止到当前月份:累计项目总数
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(p -> {
if (g.getGridId().equals(p.getGridId())){
if (g.getGridId().equals(p.getOrgId())){
g.setProjectTotal(p.getProjectTotal());
}
});

59
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

@ -589,4 +589,63 @@
</choose>
</select>
<!-- 组织查询项目总数 -->
<select id="selectProjectTotalByOrg" resultType="com.epmet.dto.pingyin.result.ProjectTotalResultDTO">
SELECT
m.AGENCY_ID AS orgId,
IFNULL(COUNT(m.ID),0) AS projectTotal
FROM fact_origin_project_main_daily m
WHERE m.DEL_FLAG = 0
AND m.GRID_ID IS NULL
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
m.AGENCY_ID = #{orgId}
</foreach>
)
<if test="dateId != null and dateId != '' ">
AND m.DATE_ID <![CDATA[ <= ]]> #{dateId}
</if>
<if test="monthId != null and monthId != '' ">
AND m.MONTH_ID <![CDATA[ <= ]]> #{monthId}
</if>
GROUP BY m.AGENCY_ID
</select>
<!-- 组织查询已解决项目数 -->
<select id="selectResolvedNumByOrg" resultType="com.epmet.dto.pingyin.result.ResolvedNumResultDTO">
SELECT
AGENCY_ID AS orgId,
IFNULL(COUNT(ID),0) AS resolvedNum
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
AND PROJECT_STATUS = 'closed'
AND IS_RESOLVED = 'resolved'
AND GRID_ID IS NULL
GROUP BY AGENCY_ID
</select>
<!-- 组织 查询 满意度评价次数 -->
<select id="selectEvaluateCountByOrg" resultType="com.epmet.dto.pingyin.result.EvaluateTotalResultDTO">
SELECT
ORG_ID,
IFNULL(COUNT(PROJECT_ID),0) AS evaluateCount
FROM fact_origin_project_log_daily
WHERE DEL_FLAG = 0
AND ORG_TYPE = 'agency'
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
AND (
<foreach collection="orgIds" item="orgId" separator=" OR ">
org_id = #{orgId}
</foreach>
)
AND IS_ACTIVE = 1
AND (
<foreach collection="activeCodes" item="code" separator=" OR ">
ACTION_CODE = #{code}
</foreach>
)
GROUP BY ORG_ID
</select>
</mapper>

11
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml

@ -112,11 +112,12 @@
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
SUM(PROJECT_TOTAL) AS projectTotal,
SUM(RESOLVED_NUM) AS resolvedNum,
SUM(EVALUATE_TOTAL) AS evaluateTotal ,
SUM(GOOD_TOTAL) AS goodTotal,
SUM(BAD_TOTAL) AS badTotal
#{a.orgId} AS orgId,
IFNULL(SUM(PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(RESOLVED_NUM),0) AS resolvedNum,
IFNULL(SUM(EVALUATE_TOTAL),0) AS evaluateTotal ,
IFNULL(SUM(GOOD_TOTAL),0) AS goodTotal,
IFNULL(SUM(BAD_TOTAL),0) AS badTotal
FROM screen_project_grid_daily g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0

Loading…
Cancel
Save