diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java index 68f185ad89..0dd90bd8d0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java @@ -55,7 +55,7 @@ public interface PrUserProjectDao extends BaseDao { * @author zxc * @date 2021/9/17 2:16 下午 */ - List selectProjectKey(@Param("orgIds")List orgIds); + List selectProjectKey(@Param("orgIds")List orgIds,@Param("customerId")String customerId); /** * @Description 根据keys查询project diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java index 56d4512f97..a77e2be2ad 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java @@ -209,7 +209,7 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl projectKeys = baseDao.selectProjectKey(orgIds); + List projectKeys = baseDao.selectProjectKey(orgIds,formDTO.getCustomerId()); if (CollectionUtils.isEmpty(projectKeys)){ return new ArrayList<>(); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml index 48bd2f41bc..59dd4eb215 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml @@ -73,6 +73,7 @@ DISTINCT project_key FROM pr_publish_range WHERE del_flag = 0 + AND customer_id = #{customerId} AND ( #{orgId} LIKE CONCAT(org_ids,'%') diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index a25e563a07..d6a7ad782a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -61,6 +61,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.ExecutionException; @@ -865,11 +866,36 @@ public class DemoController { return new Result(); } + /** + * screen_project_data、screen_project_process、screen_project_img_data + * + * @param param 不传客户id,执行dim中所有有效客户 + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @date 2021/10/12 5:54 下午 + */ @PostMapping("project-test") - public Result project(@RequestBody ScreenCentralZoneDataFormDTO param){ - screenProjectSettleService.extractScreenData(param); + public Result project(@RequestBody ScreenCentralZoneDataFormDTO param) { + if(StringUtils.isBlank(param.getDateId())){ + //默认截止到昨天。 + param.setDateId(DateUtils.getBeforeNDay(1)); + } + List customerIds = new ArrayList(); + if (StringUtils.isNotBlank(param.getCustomerId())) { + customerIds.add(param.getCustomerId()); + } else { + customerIds = dimCustomerService.selectCustomerIdPage(1, 100); + } + for (String customerId : customerIds) { + ScreenCentralZoneDataFormDTO formDTO = new ScreenCentralZoneDataFormDTO(); + formDTO.setCustomerId(customerId); + formDTO.setDateId(param.getDateId()); + screenProjectSettleService.extractScreenData(param); + log.error(String.format("/data/stats/demo/project-test,screen_project_**表抽取完毕,customerId:%s", customerId)); + } return new Result(); } + public static void main(String[] args) { List monthIds = DateUtils.getMonthBetween("202001","202012"); for(String monthId:monthIds){ @@ -899,7 +925,19 @@ public class DemoController { **/ @PostMapping("extractProjectCategory") public Result extractProjectCategory(@RequestBody ExtractOriginFormDTO formDTO){ - originProjectCategoryDailyService.extractProjectCategory(formDTO); + List customerIds = new ArrayList(); + if (StringUtils.isNotBlank(formDTO.getCustomerId())) { + customerIds.add(formDTO.getCustomerId()); + } else { + customerIds = dimCustomerService.selectCustomerIdPage(1, 100); + } + for (String customerId : customerIds) { + ExtractOriginFormDTO paramDTO = new ExtractOriginFormDTO(); + paramDTO.setCustomerId(customerId); + paramDTO.setDateId(formDTO.getDateId()); + originProjectCategoryDailyService.extractProjectCategory(paramDTO); + log.error(String.format("/data/stats/demo/extractProjectCategory,fact_origin_project_category_daily表抽取完毕,customerId:%s", customerId)); + } return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java index a0f70a5591..814caa647e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java @@ -139,6 +139,7 @@ public interface ProjectDao extends BaseDao { List getProjectCategoryData(@Param("customerId") String customerId, @Param("dateId") String dateId); + List selectProjectCategoryData(@Param("customerId") String customerId, @Param("dateId") String dateId); /** * 获取项目满意度 * diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java index fd5702c71b..593c21b9fa 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java @@ -12,6 +12,7 @@ import com.epmet.dto.extract.result.SatisfactionInfoResultDTO; import com.epmet.dto.issue.*; import com.epmet.entity.issue.IssueEntity; import com.epmet.service.Issue.IssueService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -26,6 +27,7 @@ import java.util.Set; * @dscription * @date 2020/6/17 16:02 */ +@Slf4j @Service @DataSource(DataSourceConstant.GOV_ISSUE) public class IssueServiceImpl implements IssueService { @@ -162,8 +164,11 @@ public class IssueServiceImpl implements IssueService { List categories = statsIssueDao.selectCategory(customerId, categoryIds); if(!CollectionUtils.isEmpty(categories)){ StringBuilder str = new StringBuilder(); - categories.forEach(category -> {str.append(category.getCategoryName()).append(StrConstant.COMMA);}); - map.put(projectId,str.substring(NumConstant.ZERO,str.length() - NumConstant.TWO)); + categories.forEach(category -> { + str.append(category.getCategoryName()).append(StrConstant.COMMA); + //log.info(str.toString()); + }); + map.put(projectId,str.substring(NumConstant.ZERO,str.length() - NumConstant.ONE)); } }); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java index bb05d1b16f..d1c8e145dc 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java @@ -74,7 +74,9 @@ public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl projectCategoryData = projectService.getProjectCategoryData(customerId, dateString); + // 原来一个项目有多个分类,现在几个分类可能会对上同一个省里的编码,所以去重一下,插入到fact_origin_project_category表 + // List projectCategoryData = projectService.getProjectCategoryData(customerId, dateString); + List projectCategoryData = projectService.queryProjectCategoryData(customerId, dateString); HashSet projectIdSet=new HashSet<>(); if (!CollectionUtils.isEmpty(projectCategoryData)){ projectCategoryData.forEach(data->{ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java index 3a7e3a2470..af049cb788 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java @@ -249,8 +249,8 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr //项目分类数据 todo 暂时查询所有 List projectCategoryData = projectService.getProjectCategoryData(param.getCustomerId(), null); //key projectId:categoryCode Set - Map> projectCategoryMap = projectCategoryData.stream() - .collect(Collectors.groupingBy(ProjectCategoryDTO::getProjectId, Collectors.mapping(ProjectCategoryDTO::getCategoryCode, Collectors.toList()))); + Map> projectCategoryMap = projectCategoryData.stream() + .collect(Collectors.groupingBy(ProjectCategoryDTO::getProjectId, Collectors.mapping(ProjectCategoryDTO::getCategoryCode, Collectors.toSet()))); //2.获取项目的所有节点耗时数据 List projectPeriodList = factOriginProjectMainDailyService.getProjectPeriod(param); @@ -370,15 +370,15 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr * @param categoryList * @param projectCategoryMap */ - private void setCategoryInfo(ScreenDifficultyDataEntity diffEntity, String projectId, List categoryList, Map> projectCategoryMap) { - List categorySet = projectCategoryMap.get(projectId); + private void setCategoryInfo(ScreenDifficultyDataEntity diffEntity, String projectId, List categoryList, Map> projectCategoryMap) { + Set categorySet = projectCategoryMap.get(projectId); if (CollectionUtils.isEmpty(categorySet)) { return; } - projectCategoryMap.forEach((k, v) -> { - StringBuilder code = new StringBuilder(); - StringBuilder name = new StringBuilder(); - v.forEach(categoryCode -> { + StringBuilder code = new StringBuilder(); + StringBuilder name = new StringBuilder(); + //projectCategoryMap.forEach((k, v) -> { + categorySet.forEach(categoryCode -> { List childCategory = new ArrayList<>(); getParentNode(childCategory, categoryList, categoryCode); String categoryCodes = childCategory.stream().map(IssueProjectCategoryDictEntity::getCategoryCode).collect(Collectors.joining(StrConstant.HYPHEN)); @@ -389,12 +389,11 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr }); code.deleteCharAt(code.length() - NumConstant.ONE); name.deleteCharAt(name.length() - NumConstant.ONE); - diffEntity.setEventCategoryCode(code.toString()); - diffEntity.setEventCategoryName(name.toString()); log.debug("code:{}",code.toString()); log.debug("name:{}",name.toString()); - }); - + //}); + diffEntity.setEventCategoryCode(code.toString()); + diffEntity.setEventCategoryName(name.toString()); } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java index 0b4a519efe..8a41163726 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java @@ -41,7 +41,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic @Autowired - private ScreenProjectDataService targetDbService; + private ScreenProjectDataService screenProjectDataService; @Autowired private FactOriginProjectMainDailyService originMainService; @Autowired @@ -55,9 +55,9 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic @Autowired private IssueService issueService; @Autowired - private ScreenProjectProcessService targetProcessService; + private ScreenProjectProcessService screenProjectProcessService; @Autowired - private ScreenProjectImgDataService targetImgService; + private ScreenProjectImgDataService screenProjectImgDataService; @Autowired private ScreenProjectProcessAttachmentService targetAttachmentService; @@ -71,7 +71,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic @Override public void extractScreenData(ScreenCentralZoneDataFormDTO param) { //screen_project_data表是否存在此客户数据 - int rows = targetDbService.checkIfExisted(param.getCustomerId()); + int rows = screenProjectDataService.checkIfExisted(param.getCustomerId()); List metaData = originMainService.initNewScreenProjectData(param.getCustomerId(), rows , param.getDateId()); @@ -119,7 +119,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic orientCase.setCustomerId(param.getCustomerId()); //待更新的数据 需要检测更新的字段为:①projectStatusCode ②closeCaseTime ③allCategoryName ④projectLevel List orientData = - targetDbService.getPending(orientCase,param.getDateId()); + screenProjectDataService.getPending(orientCase,param.getDateId()); // 给metaData和orientData赋上分类信息 List projectIds = @@ -127,6 +127,8 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic if(!CollectionUtils.isEmpty(orientData)) { projectIds.addAll(orientData.stream().map(ScreenProjectDataDTO::getProjectId).distinct().collect(Collectors.toList())); } + projectIds.clear(); + projectIds.add("18759f2fb5c5fb8513c4a21b0be81834"); Map> categoryMap = projectService.getProjectCategory(projectIds); if(!CollectionUtils.isEmpty(categoryMap)){ Map integratedProjectCategoryMap = issueService.getIntegratedProjectCategory(categoryMap, param.getCustomerId()); @@ -139,7 +141,9 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic }); } } - + if(projectIds.contains("4f670b349899b33c20e888e77842d938")){ + return; + } //重新计算orientData的级别 有现成的方法 fact_origin_project_org_period_daily // originMainService.computerIfExceed(orientData, exceedLimit,about2ExceedLimit); //todo 与上面重复处理 暂时注释掉 @@ -148,20 +152,20 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic //更新结案时间和结案状态 processService.updateProjectStatus(orientData,param.getDateId(),param.getCustomerId()); - targetDbService.insertOrUpdateBatch(param.getCustomerId(),param.getDateId(),metaData,orientData); + screenProjectDataService.insertOrUpdateBatch(param.getCustomerId(),param.getDateId(),metaData,orientData); if(!CollectionUtils.isEmpty(metaData)){ List imgs = topicService.buildNewScreenProjectImgData(metaData); if(!CollectionUtils.isEmpty(imgs)){ - targetImgService.insertBatch(imgs); + screenProjectImgDataService.insertBatch(imgs); } } // - List processes = processService.buildNewScreenProjectProcessData(param.getCustomerId(), param.getDateId(),!targetProcessService.checkIfHistoricalDataExists(param.getCustomerId())); + List processes = processService.buildNewScreenProjectProcessData(param.getCustomerId(), param.getDateId(),!screenProjectProcessService.checkIfHistoricalDataExists(param.getCustomerId())); if(!CollectionUtils.isEmpty(processes)){ - targetProcessService.insertBatch(processes,param.getCustomerId(),param.getDateId()); + screenProjectProcessService.insertBatch(processes,param.getCustomerId(),param.getDateId()); List attachments = processService.buildProcessAttachmentData(processes.stream().map(ScreenProjectProcessDTO::getProcessId).distinct().collect(Collectors.toList())); if(!CollectionUtils.isEmpty(attachments)){ @@ -186,7 +190,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic if(StringUtils.isNotBlank(projectId)){ BigDecimal calProjectSatisfactionScore = projectService.calProjectSatisfactionScore(customerId, projectId); log.warn("单独计算projectId=" + projectId + "满意度得分:" + calProjectSatisfactionScore); - targetDbService.updateProjectSatisfactionScore(projectId,calProjectSatisfactionScore); + screenProjectDataService.updateProjectSatisfactionScore(projectId,calProjectSatisfactionScore); return; } List projectIds=new ArrayList<>(); @@ -207,7 +211,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic projectIds.forEach(id -> { BigDecimal calProjectSatisfactionScore = projectService.calProjectSatisfactionScore(customerId, id); log.warn("projectId=" + id + "满意度得分:" + calProjectSatisfactionScore); - targetDbService.updateProjectSatisfactionScore(id, calProjectSatisfactionScore); + screenProjectDataService.updateProjectSatisfactionScore(id, calProjectSatisfactionScore); }); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java index f4283979b0..ced07132f7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java @@ -155,6 +155,7 @@ public interface ProjectService extends BaseService { */ List getProjectCategoryData(String customerId, String dateId); + List queryProjectCategoryData(String customerId, String dateId); /** * 获取项目满意度 * @author zhaoqifeng diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java index 095a0ec901..5084e99852 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java @@ -161,6 +161,10 @@ public class ProjectServiceImpl extends BaseServiceImpl queryProjectCategoryData(String customerId, String dateId) { + return baseDao.selectProjectCategoryData(customerId,dateId); + } /** * 获取项目满意度 * diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml index 476ae619c8..85e8316cd3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml @@ -146,6 +146,24 @@ AND DATE_FORMAT(CREATED_TIME,'%Y%m%d')=#{dateId} + + + + SELECT - category_id + distinct category_id FROM project_category WHERE @@ -38,8 +38,8 @@