Browse Source

事件分析单/多客户暂时分开,【org-月】

master
zxc 4 years ago
parent
commit
07274e5dc0
  1. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java
  2. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java
  3. 80
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityOrgMonthlyServiceImpl.java
  4. 30
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.java

@ -49,6 +49,7 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao<ScreenProjec
* @date 2021/2/2 上午11:09
*/
List<ProjectOrgMonthlyResultDTO> selectQuantityOrgMonthly(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityOrgMonthlyByAgency(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
/**
* @Description 项目(事件)数量查询本月之前的累计
@ -58,6 +59,7 @@ public interface ScreenProjectQuantityOrgMonthlyDao extends BaseDao<ScreenProjec
* @date 2021/2/2 下午3:03
*/
List<ProjectOrgMonthlyResultDTO> selectQuantityGrandOrgMonthly(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
List<ProjectOrgMonthlyResultDTO> selectQuantityGrandOrgMonthlyByAgency(@Param("agencyInfos") List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos, @Param("monthId") String monthId);
}

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

@ -154,7 +154,7 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl<ScreenProj
}
/**
* @Description 数据抽取机关-
* @Description 数据抽取机关-目前单客户和多客户处理是一样的只是查询sql不一样现在分开为了以后修改方便
* @Param customerId
* @Param dateId
* @author zxc

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

@ -144,7 +144,7 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl<
}
/**
* @Description 数据抽取组织-
* @Description 数据抽取组织-目前单客户和多客户处理是一样的只是查询sql不一样现在分开为了以后修改方便
* @Param customerId
* @Param monthId
* @author zxc
@ -152,14 +152,82 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl<
*/
@Override
public void extractionProjectOrgMonthly(String customerId, String monthId) {
List<ScreenProjectOrgDailyDTO> screenProjectOrgDailyDTOS = new ArrayList<>();
//如果有子客户要按照跟组织的area_code查询组织列表
if(customerRelationService.haveSubCustomer(customerId)){
CustomerAgencyEntity rootAgency=customerAgencyService.getRootAgencyInfo(customerId);
screenProjectOrgDailyDTOS=agencyDao.selectAgencyByAreaCode(rootAgency.getAreaCode());
// 多客户处理
extractionProjectOrgMonthlyMoreCustomer(customerId, monthId);
}else{
screenProjectOrgDailyDTOS=agencyDao.selectAgencyByCustomer(customerId);
// 单客户处理
extractionProjectOrgMonthlyOneCustomer(customerId, monthId);
}
}
/**
* @Description 单客户处理
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/4/15 下午2:18
*/
public void extractionProjectOrgMonthlyOneCustomer(String customerId,String monthId){
List<ScreenProjectOrgDailyDTO> screenProjectOrgDailyDTOS=agencyDao.selectAgencyByCustomer(customerId);
if (CollectionUtils.isEmpty(screenProjectOrgDailyDTOS)){
log.warn(String.format(PingYinConstants.AGENCY_INFO_IS_ZERO,customerId));
return;
}
List<ScreenProjectQuantityOrgMonthlyDTO> agencyInfos = ConvertUtils.sourceToTarget(screenProjectOrgDailyDTOS, ScreenProjectQuantityOrgMonthlyDTO.class);
List<ProjectOrgMonthlyResultDTO> projectOrg = baseDao.selectQuantityOrgMonthlyByAgency(agencyInfos, monthId);
if (!CollectionUtils.isEmpty(projectOrg)){
projectOrg.forEach(p -> {
p.setClosedIncr(p.getClosedIncr());
p.setProjectIncr(p.getProjectIncr());
});
}
List<ProjectOrgMonthlyResultDTO> projectGrandOrg = baseDao.selectQuantityGrandOrgMonthly(agencyInfos, monthId);
if (!CollectionUtils.isEmpty(projectGrandOrg)){
projectGrandOrg.forEach(p -> {
p.setClosedTotal(p.getClosedTotal());
p.setProjectTotal(p.getProjectTotal());
p.setUnClosedTotal(p.getUnClosedTotal());
});
}
agencyInfos.forEach(a -> {
a.setMonthId(monthId);
if (!CollectionUtils.isEmpty(projectOrg)){
projectOrg.forEach(p -> {
if (a.getAreaCode().equals(p.getAreaCode())){
a.setClosedIncr(null == p.getClosedIncr() ? NumConstant.ZERO : p.getClosedIncr());
a.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr());
a.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr());
}
});
}
if (!CollectionUtils.isEmpty(projectGrandOrg)){
projectGrandOrg.forEach(p -> {
if (a.getAreaCode().equals(p.getAreaCode())){
a.setClosedTotal(null == p.getClosedTotal() ? NumConstant.ZERO : p.getClosedTotal());
a.setProjectTotal(null == p.getProjectTotal() ? NumConstant.ZERO : p.getProjectTotal());
a.setUnClosedTotal(null == p.getUnClosedTotal() ? NumConstant.ZERO : p.getUnClosedTotal());
a.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr());
}
});
}
});
log.info(agencyInfos.toString());
del(customerId, monthId);
insert(agencyInfos,customerId,monthId);
}
/**
* @Description 多客户处理
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/4/15 下午2:18
*/
public void extractionProjectOrgMonthlyMoreCustomer(String customerId,String monthId){
CustomerAgencyEntity rootAgency=customerAgencyService.getRootAgencyInfo(customerId);
List<ScreenProjectOrgDailyDTO> screenProjectOrgDailyDTOS=agencyDao.selectAgencyByAreaCode(rootAgency.getAreaCode());
if (CollectionUtils.isEmpty(screenProjectOrgDailyDTOS)){
log.warn(String.format(PingYinConstants.AGENCY_INFO_IS_ZERO,customerId));
return;

30
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml

@ -127,5 +127,35 @@
</foreach>
</select>
<select id="selectQuantityOrgMonthlyByAgency" resultType="com.epmet.dto.pingyin.result.ProjectOrgMonthlyResultDTO">
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
IFNULL(SUM(g.PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(g.UN_CLOSED_TOTAL),0) AS unClosedTotal,
IFNULL(SUM(g.CLOSED_TOTAL),0) AS closedTotal
FROM screen_project_quantity_grid_monthly g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
AND cg.PARENT_AGENCY_ID = #{a.orgId}
AND g.MONTH_ID <![CDATA[ = ]]> #{monthId}
</foreach>
</select>
<select id="selectQuantityGrandOrgMonthlyByAgency" resultType="com.epmet.dto.pingyin.result.ProjectOrgMonthlyResultDTO">
<foreach collection="agencyInfos" item="a" separator=" UNION ">
SELECT
#{a.areaCode} AS areaCode,
IFNULL(SUM(g.PROJECT_TOTAL),0) AS projectTotal,
IFNULL(SUM(g.UN_CLOSED_TOTAL),0) AS unClosedTotal,
IFNULL(SUM(g.CLOSED_TOTAL),0) AS closedTotal
FROM screen_project_quantity_grid_monthly g
LEFT JOIN screen_customer_grid cg ON cg.GRID_ID = g.GRID_ID
WHERE g.DEL_FLAG = 0
AND cg.PARENT_AGENCY_ID = #{a.orgId}
AND g.MONTH_ID <![CDATA[ = ]]> #{monthId}
</foreach>
</select>
</mapper>
Loading…
Cancel
Save