From 18c8d2aa7ddc175b1b482f1ed73ce950b6d1f5ae Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 9 Apr 2021 17:47:02 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataToIndex/impl/CalGridIndexServiceImpl.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java index 22dfccc44e..106d4b3f97 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java @@ -243,7 +243,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } //网格总议题数目,网格人均议题数目 List gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId); - //网格总项目数 + //网格总项目数 从议题根据状态获取 List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); //网格议题转项目率 List gridIssueCountList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId)); @@ -277,15 +277,11 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { List transferRightRatioResultDTOS = projectMainService.selectTransferRightRatio(customerId, monthId); List transferRightRatioResultDTOS1 = projectLogService.selectNotReturn(customerId, monthId); if (!CollectionUtils.isEmpty(transferRightRatioResultDTOS1)){ - transferRightRatioResultDTOS.forEach(r -> { - transferRightRatioResultDTOS1.forEach(t -> { - r.setStatus(r.getProjectId().equals(t.getProjectId()) ? true : false); - }); - }); + transferRightRatioResultDTOS.forEach(r -> transferRightRatioResultDTOS1.forEach(t -> { + r.setStatus(r.getProjectId().equals(t.getProjectId())); + })); }else { - transferRightRatioResultDTOS.forEach(r -> { - r.setStatus(false); - }); + transferRightRatioResultDTOS.forEach(r -> r.setStatus(false)); } Map> groupByGridProject = transferRightRatioResultDTOS.stream().collect(Collectors.groupingBy(TransferRightRatioResultDTO::getGridId)); Map notReturnMap = new HashMap<>(16); From ca659b6d977f06ea65b747a71018ab3cd46eeb68 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 12 Apr 2021 09:31:51 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9-?= =?UTF-8?q?=E5=8F=AF=E9=80=89=E7=BB=84=E7=BB=87=E6=A0=91=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/feign/GovOrgOpenFeignClient.java | 9 ++++++ .../GovOrgOpenFeignClientFallback.java | 5 +++ .../controller/ProjectTraceController.java | 10 ++++++ .../epmet/service/ProjectTraceService.java | 7 ++++ .../service/impl/ProjectTraceServiceImpl.java | 32 +++++++++++++++++++ 5 files changed, 63 insertions(+) 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 fe67bef009..6cefd55a53 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 @@ -324,4 +324,13 @@ public interface GovOrgOpenFeignClient { **/ @GetMapping("/gov/org/customergrid/getGridIdsInCommunity/{gridId}") Result> getGridIdsInCommunity(@PathVariable("gridId") String gridId); + + /** + * @param agencyId + * @return + * @Author sun + * @Description 根据当前组织ID查询上两级组织、当前组织和所有下级(迭代)组织 + **/ + @PostMapping(value = "/gov/org/customeragency/getprocessorlist/{agencyId}") + Result getProcessorList(@PathVariable("agencyId") String agencyId); } 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 d9d5be0a84..f34b6f53ae 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 @@ -187,4 +187,9 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { public Result> getGridIdsInCommunity(String gridId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridIdsInCommunity", gridId); } + + @Override + public Result getProcessorList(String agencyId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getProcessorList", agencyId); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index c7d3a8c09a..d1d8568a58 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -335,5 +335,15 @@ public class ProjectTraceController { return new Result(); } + /** + * @param tokenDTO + * @Author sun + * @Description 项目立项组织树查询--查询当前工作人员所属组织,上两级组织,所有下级组织 + **/ + @PostMapping("approvalagencylist") + public Result approvalAgencyList(@LoginUser TokenDto tokenDTO) { + return new Result().ok(projectTraceService.approvalAgencyList(tokenDTO)); + } + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java index f692900851..f828489fe3 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java @@ -159,4 +159,11 @@ public interface ProjectTraceService { * @return void */ void sendTo(TokenDto tokenDto, SendToFormDTO formDTO); + + /** + * @param tokenDTO + * @Author sun + * @Description 项目立项组织树查询--查询当前工作人员所属组织,上两级组织,所有下级组织 + **/ + ProcessorListResultDTO approvalAgencyList(TokenDto tokenDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index d3b4e1d55f..884378fec8 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -11,12 +11,15 @@ import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.ProjectStaffEntity; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @@ -45,6 +48,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { private ProjectProcessAttachmentDao attachmentDao; @Autowired private ProjectSubProcessService projectSubProcessService; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; @Override public List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) { @@ -213,4 +220,29 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { projectService.sendTo(formDTO); } + /** + * @param tokenDTO + * @Author sun + * @Description 项目立项组织树查询--查询当前工作人员所属组织,上两级组织,所有下级组织 + **/ + @Override + public ProcessorListResultDTO approvalAgencyList(TokenDto tokenDTO) { + //1.获取token用户所属组织信息 + LoginUserDetailsFormDTO dto = new LoginUserDetailsFormDTO(); + dto.setApp(tokenDTO.getApp()); + dto.setClient(tokenDTO.getClient()); + dto.setUserId(tokenDTO.getUserId()); + Result resultDto = epmetUserOpenFeignClient.getLoginUserDetails(dto); + if (!resultDto.success() || StringUtils.isEmpty(resultDto.getData().getAgencyId())) { + throw new RenException(String.format("调用user服务查询用户数据失败,userId->", tokenDTO.getUserId())); + } + + //2.根据组织Id查询当前组织上两级组织、本级组织、所有下级组织信息 + Result result = govOrgOpenFeignClient.getProcessorList(resultDto.getData().getAgencyId()); + if (!resultDto.success()) { + throw new RenException(String.format("调用org服务查询用户数据失败,userId->", tokenDTO.getUserId())); + } + return result.getData(); + } + } From f60575c8c992f457e9e60d238527f77162f48bad Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 12 Apr 2021 09:46:59 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9proje?= =?UTF-8?q?ct=E8=A1=A8=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java | 5 +++++ .../com/epmet/dataaggre/entity/govproject/ProjectEntity.java | 5 +++++ .../main/java/com/epmet/entity/project/ProjectEntity.java | 5 +++++ .../src/main/java/com/epmet/dto/ProjectDTO.java | 5 +++++ .../src/main/java/com/epmet/entity/ProjectEntity.java | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java index c73cc7ecd3..e94e2e9ad7 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java @@ -65,6 +65,11 @@ public class ProjectDTO implements Serializable { */ private String title; + /** + * 项目背景 + */ + private String backGround; + /** * 状态:待处理 pending,结案closed */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govproject/ProjectEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govproject/ProjectEntity.java index 1a4c9ea1e1..5cdf2cde3b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govproject/ProjectEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govproject/ProjectEntity.java @@ -63,6 +63,11 @@ public class ProjectEntity extends BaseEpmetEntity { */ private String title; + /** + * 项目背景 + */ + private String backGround; + /** * 状态:待处理 pending,结案closed */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java index cd696e25c6..15c533efc3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java @@ -60,6 +60,11 @@ public class ProjectEntity extends BaseEpmetEntity { */ private String title; + /** + * 项目背景 + */ + private String backGround; + /** * 状态:待处理 pending,结案closed */ diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java index 1d75e9adfe..0b449f6709 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java @@ -65,6 +65,11 @@ public class ProjectDTO implements Serializable { */ private String title; + /** + * 项目背景 + */ + private String backGround; + /** * 状态:待处理 pending,结案closed */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java index 38de1c8e93..1d441664b8 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java @@ -63,6 +63,11 @@ public class ProjectEntity extends BaseEpmetEntity { */ private String title; + /** + * 项目背景 + */ + private String backGround; + /** * 状态:待处理 pending,结案closed */ From 5a6c46bb573ca57d89bb25f45de90d7c884dc2c0 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 12 Apr 2021 13:51:48 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E8=87=AA=E6=B2=BB?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=95=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/DemoController.java | 5 +-- .../extract/FactOriginProjectLogDailyDao.java | 8 ++++ .../impl/CalGridIndexServiceImpl.java | 40 +++++++------------ .../FactOriginProjectLogDailyServiceImpl.java | 3 +- .../extract/FactOriginProjectLogDailyDao.xml | 21 ++++++++++ 5 files changed, 47 insertions(+), 30 deletions(-) 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 9259e12463..84d24df675 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 @@ -569,10 +569,7 @@ public class DemoController { } @PostMapping("gridgovern") - public void gridGovern(){ - String customerId = "45687aa479955f9d06204d415238f7cc"; -// String customerId = "epmettest"; - String monthId = "202009"; + public void gridGovern(@RequestParam("customerId")String customerId,@RequestParam("monthId")String monthId){ calGridIndexService.calGridIndexGovernAbility(customerId,monthId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java index f53ef5b882..8e18ad5500 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java @@ -74,6 +74,14 @@ public interface FactOriginProjectLogDailyDao extends BaseDao selectProjectAutoNoMy(@Param("customerId") String customerId,@Param("monthId") String monthId); + /** + * @Description 网格项目自治率查询 最新版 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/4/12 上午10:46 + */ + List selectProjectAutoNoMyPlus(@Param("customerId") String customerId,@Param("monthId") String monthId); /** * 根据日期删除数据 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java index 106d4b3f97..c34abef435 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java @@ -254,21 +254,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { if (!CollectionUtils.isEmpty(projectAutoNoMyList)){ Map> groupByGrid = projectAutoNoMyList.stream().collect(Collectors.groupingBy(AutoNoMyResultDTO::getGridId)); groupByGrid.forEach((gridId,projectList) -> { - Map> groupByProject = projectList.stream().collect(Collectors.groupingBy(AutoNoMyResultDTO::getProjectId)); - AtomicReference autoSelf = new AtomicReference<>(true); - AtomicReference count = new AtomicReference<>(NumConstant.ZERO); - groupByProject.forEach((projectId,projects) -> { - String disposeGrid = projects.get(NumConstant.ZERO).getGridId(); - projects.forEach(p -> { - if (!disposeGrid.equals(p.getGridId())){ - autoSelf.set(false); - } - }); - if (autoSelf.get()) { - count.getAndSet(count.get() + NumConstant.ONE); - } - }); - autoMap.put(gridId,count.get()); + autoMap.put(gridId,projectList.size()); }); } //网格办结项目数 @@ -370,17 +356,21 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }); } // 5. 网格内解决的项目的满意度 - resultSatisfactionScore.forEach((k, v) -> { - if (r.getGridId().equals(k)) { - r.setSatisfactionRatio(v); - } - }); + if (!CollectionUtils.isEmpty(resultSatisfactionScore)){ + resultSatisfactionScore.forEach((k, v) -> { + if (r.getGridId().equals(k)) { + r.setSatisfactionRatio(v); + } + }); + } // 6. 网格自治项目数 - autoMap.forEach((k, v) -> { - if (r.getGridId().equals(k)) { - r.setSelfSolveProjectCount(v); - } - }); + if (!CollectionUtils.isEmpty(autoMap)){ + autoMap.forEach((k, v) -> { + if (r.getGridId().equals(k)) { + r.setSelfSolveProjectCount(v); + } + }); + } }); delGovernAbility(customerId, monthId); List> resultList = ListUtils.partition(result, NumConstant.ONE_HUNDRED); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java index b710d08af5..9be7b9f44f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java @@ -156,7 +156,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl selectProjectAutoNoMy(String customerId, String monthId) { - return baseDao.selectProjectAutoNoMy(customerId, monthId); +// return baseDao.selectProjectAutoNoMy(customerId, monthId); + return baseDao.selectProjectAutoNoMyPlus(customerId, monthId); } @Override diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml index 1d5b5c6e79..03bc021fc8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml @@ -530,4 +530,25 @@ AND CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} + + + \ No newline at end of file From 1372bffd2f0d8f618f2e3ec2b95ac3c0efdecdae Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Mon, 12 Apr 2021 14:05:01 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=BB=E8=A1=A8?= =?UTF-8?q?=E7=BD=91=E6=A0=BC=E7=9B=B8=E5=85=B3sql=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E4=B8=BB=E8=A1=A8=E6=95=B0=E6=8D=AE=E6=8F=90=E5=8F=96?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FactOriginProjectMainDailyDTO.java | 10 ++++ .../com/epmet/constant/ProjectConstant.java | 3 ++ .../FactOriginProjectMainDailyEntity.java | 10 ++++ .../impl/ProjectExtractServiceImpl.java | 49 ++++++++++++++----- .../FactOriginProjectCategoryDailyDao.xml | 5 +- .../extract/FactOriginProjectLogDailyDao.xml | 1 + .../extract/FactOriginProjectMainDailyDao.xml | 10 ++++ .../resources/mapper/project/ProjectDao.xml | 4 +- 8 files changed, 74 insertions(+), 18 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectMainDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectMainDailyDTO.java index f24397f43d..9d1484b5f4 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectMainDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectMainDailyDTO.java @@ -103,6 +103,16 @@ public class FactOriginProjectMainDailyDTO implements Serializable { */ private String agencyId; + /** + * 来源:议题issue + */ + private String origin; + + /** + * 来源ID + */ + private String originId; + /** * 状态 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java index eac79f016a..16530a61a2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -64,4 +64,7 @@ public interface ProjectConstant { String XIA_JI = "xiaji"; String GRID_ID = "GRID_ID"; String AGENCY_ID = "AGENCY_ID"; + + + String ISSUE = "issue"; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectMainDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectMainDailyEntity.java index c570c4e453..35d0e46b8f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectMainDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectMainDailyEntity.java @@ -103,6 +103,16 @@ public class FactOriginProjectMainDailyEntity extends BaseEpmetEntity { */ private String agencyId; + /** + * 来源:议题issue + */ + private String origin; + + /** + * 来源ID + */ + private String originId; + /** * 状态 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java index 8f1985b6be..77b4d843b8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java @@ -128,7 +128,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { factOriginProjectMainDailyService.deleteByDate(customerId, dateString); if (!CollectionUtils.isEmpty(projectList)) { //提取议题ID - List issueIds = projectList.stream().map(ProjectDTO::getOriginId).collect(Collectors.toList()); + List issueIds = + projectList.stream().filter(item -> ProjectConstant.ISSUE.equals(item.getOrigin())).map(ProjectDTO::getOriginId).collect(Collectors.toList()); //获取议题信息 List issueList = issueService.getIssueInfoByIds(issueIds); //提取话题ID @@ -144,18 +145,28 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { FactOriginProjectMainDailyEntity entity = new FactOriginProjectMainDailyEntity(); entity.setId(project.getId()); entity.setAgencyId(project.getAgencyId()); + entity.setOrigin(project.getOrigin()); + entity.setOriginId(project.getOriginId()); entity.setCustomerId(customerId); entity.setYearId(dimId.getYearId()); entity.setQuarterId(dimId.getQuarterId()); entity.setMonthId(dimId.getMonthId()); entity.setWeekId(dimId.getWeekId()); entity.setDateId(dimId.getDateId()); - entity.setIssueId(project.getOriginId()); + if (ProjectConstant.ISSUE.equals(project.getOrigin())) { + entity.setIssueId(project.getOriginId()); + } else { + entity.setIssueId(""); + } entity.setProjectStatus(project.getStatus()); entity.setIsResolved(project.getClosedStatus()); entity.setCreatedTime(project.getCreatedTime()); entity.setUpdatedTime(project.getUpdatedTime()); entity.setPids(project.getOrgIdPath()); + entity.setIssueCreatorId(""); + entity.setTopicId(""); + entity.setTopicCreatorId(""); + entity.setGridId(""); String[] pIds = project.getOrgIdPath().split(StrConstant.COLON); if (pIds.length > 1) { entity.setPid(pIds[pIds.length - 2]); @@ -168,17 +179,23 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setIsOverdue(NumConstant.ZERO_STR); return entity; }).collect(Collectors.toList()); - list.forEach(entity -> issueList.stream().filter(issueDTO -> issueDTO.getId().equals(entity.getIssueId())).forEach(issue -> { - entity.setIssueCreatorId(issue.getCreatedBy()); - entity.setTopicId(issue.getSourceId()); - })); - list.forEach(entity -> topicList.stream().filter(topicDTO -> topicDTO.getId().equals(entity.getTopicId())).forEach(topic -> { - entity.setTopicCreatorId(topic.getCreatedBy()); - entity.setGridId(topic.getGridId()); - })); - list.forEach(entity -> partyMemberList.stream().filter(partyMemberDTO -> partyMemberDTO.getGridId().equals(entity.getGridId()) && partyMemberDTO.getUserId().equals(entity.getTopicCreatorId())).forEach(partyMember -> { - entity.setIsParty(NumConstant.ONE_STR); - })); + if (CollectionUtils.isNotEmpty(issueList)) { + list.forEach(entity -> issueList.stream().filter(issueDTO -> issueDTO.getId().equals(entity.getIssueId())).forEach(issue -> { + entity.setIssueCreatorId(issue.getCreatedBy()); + entity.setTopicId(issue.getSourceId()); + })); + } + if (CollectionUtils.isNotEmpty(topicList)) { + list.forEach(entity -> topicList.stream().filter(topicDTO -> topicDTO.getId().equals(entity.getTopicId())).forEach(topic -> { + entity.setTopicCreatorId(topic.getCreatedBy()); + entity.setGridId(topic.getGridId()); + })); + } + if (CollectionUtils.isNotEmpty(partyMemberList)) { + list.forEach(entity -> partyMemberList.stream().filter(partyMemberDTO -> partyMemberDTO.getGridId().equals(entity.getGridId()) && partyMemberDTO.getUserId().equals(entity.getTopicCreatorId())).forEach(partyMember -> { + entity.setIsParty(NumConstant.ONE_STR); + })); + } list.forEach(entity -> finishOrgList.stream().filter(finish -> entity.getId().equals(finish.getProjectId())).forEach(dto -> { String[] orgIds = dto.getPIdPath().split(StrConstant.COLON); String org = ""; @@ -228,6 +245,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setOrgId(process.getGridId()); entity.setPid(process.getAgencyId()); }else{ + entity.setOrgType(OrgTypeConstant.AGENCY); + entity.setOrgId(process.getAgencyId()); if(!process.getPids().contains(StrConstant.COLON)){ entity.setPids(""); entity.setPid(NumConstant.ZERO_STR); @@ -278,6 +297,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setOrgId(process.getGridId()); entity.setPid(process.getAgencyId()); } else { + entity.setOrgType(OrgTypeConstant.AGENCY); + entity.setOrgId(process.getAgencyId()); if (!process.getPids().contains(StrConstant.COLON)) { entity.setPids(""); entity.setPid(NumConstant.ZERO_STR); @@ -358,6 +379,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setOrgId(process.getGridId()); entity.setPid(process.getAgencyId()); }else{ + entity.setOrgType(OrgTypeConstant.AGENCY); + entity.setOrgId(process.getAgencyId()); if(!process.getPids().contains(StrConstant.COLON)){ entity.setPids(""); entity.setPid(NumConstant.ZERO_STR); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml index 7836274c05..03ea9ab75c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml @@ -27,11 +27,12 @@ count(1)as projectTotal FROM fact_origin_project_category_daily c - LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0') + LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '') WHERE c.DEL_FLAG = '0' AND c.CUSTOMER_ID = #{customerId} AND c.`LEVEL` = '2' + GROUP BY c.CUSTOMER_ID, c.CATEGORY_CODE, @@ -50,7 +51,7 @@ count(distinct c.project_id)as projectTotal FROM fact_origin_project_category_daily c - LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0') + LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '') WHERE c.DEL_FLAG = '0' AND c.CUSTOMER_ID = #{customerId} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml index 03bc021fc8..7b2a4f9ae7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml @@ -388,6 +388,7 @@ WHERE fm.CUSTOMER_ID = #{customerId} AND fm.MONTH_ID = #{monthId} AND fm.PROJECT_STATUS = 'closed' + AND fm.GRID_ID != '' ) a GROUP BY GRID_ID diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml index b9608e9ee3..a79b5ba233 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml @@ -97,6 +97,7 @@ fact_origin_project_main_daily WHERE DEL_FLAG = 0 + AND GRID_ID != '' AND PROJECT_STATUS = #{status} AND CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} @@ -121,6 +122,7 @@ fact_origin_project_main_daily t1 WHERE t1.DEL_FLAG = '0' + AND t1.TOPIC_CREATOR_ID != '' AND t1.CUSTOMER_ID = #{customerId} AND t1.MONTH_ID = #{monthId} AND ISNULL(T1.TOPIC_CREATOR_ID)=0 @@ -269,6 +271,7 @@ fact_origin_project_main_daily fm WHERE fm.PROJECT_STATUS = 'close' + AND fm.GRID_ID != '' AND fm.CUSTOMER_ID = #{customerId} AND fm.MONTH_ID = #{monthId} GROUP BY @@ -281,6 +284,7 @@ fact_origin_project_main_daily fm WHERE fm.PROJECT_STATUS = 'close' + AND fm.GRID_ID != '' AND fm.CUSTOMER_ID = #{customerId} AND fm.MONTH_ID = #{monthId} AND fm.IS_RESOLVED = 'resolved' @@ -297,6 +301,7 @@ 1=1 AND CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} + AND GRID_ID != '' GROUP BY GRID_ID @@ -506,6 +513,7 @@ WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} + AND GRID_ID != '' GROUP BY GRID_ID @@ -518,6 +526,7 @@ WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} AND MONTH_ID #{monthId} + AND GRID_ID != '' AND PROJECT_STATUS != 'closed' @@ -538,6 +547,7 @@ AND CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} AND PROJECT_STATUS = 'closed' + AND GRID_ID != '' GROUP BY GRID_ID 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 ec1cf07215..790c464b60 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 @@ -24,7 +24,6 @@ FROM project WHERE DEL_FLAG = '0' - AND ORIGIN = 'issue' AND STATUS = 'closed' AND CUSTOMER_ID = #{customerId} AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') #{date} @@ -41,7 +40,6 @@ FROM project WHERE DEL_FLAG = '0' - AND ORIGIN = 'issue' AND STATUS = 'closed' AND CUSTOMER_ID = #{customerId} AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') = #{date} @@ -81,6 +79,7 @@ ID, CUSTOMER_ID, AGENCY_ID, + ORIGIN, ORIGIN_ID, STATUS, CLOSED_STATUS, @@ -90,7 +89,6 @@ FROM project WHERE DEL_FLAG = '0' - AND ORIGIN = 'issue' AND CUSTOMER_ID = #{customerId} AND DATE_FORMAT(CREATED_TIME, '%Y%m%d') = #{date} From 95401d69e7066419e84610703639917d773c7d40 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 12 Apr 2021 14:53:33 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=8A=9E=E7=BB=93?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=95=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/FactOriginProjectMainDailyDao.java | 4 ++-- .../dataToIndex/impl/CalGridIndexServiceImpl.java | 2 +- .../todata/FactOriginProjectMainDailyService.java | 4 ++-- .../FactOriginProjectMainDailyServiceImpl.java | 9 ++++++--- .../extract/FactOriginProjectMainDailyDao.xml | 14 +++++++++----- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java index 086c2e4b61..b5a192caa3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java @@ -72,13 +72,13 @@ public interface FactOriginProjectMainDailyDao extends BaseDao selectGridClosedProject(@Param("customerId") String customerId,@Param("monthId") String monthId,@Param("status") String status); + List selectGridClosedProject(@Param("gridIds") List gridIds,@Param("monthId") String monthId,@Param("status") String status); List selectTransferRightRatio(@Param("customerId")String customerId, @Param("monthId")String monthId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java index c34abef435..dde09decc5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java @@ -258,7 +258,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }); } //网格办结项目数 - List gridProjectClosedTotalList = projectMainService.selectGridClosedProject(customerId, monthId, ExtractConstant.CLOSED); + List gridProjectClosedTotalList = projectMainService.selectGridClosedProject(result.stream().map(m -> m.getGridId()).collect(Collectors.toList()), monthId, ExtractConstant.CLOSED); //网格吹哨部门准确率 【没被退回的项目数/项目总数 】 List transferRightRatioResultDTOS = projectMainService.selectTransferRightRatio(customerId, monthId); List transferRightRatioResultDTOS1 = projectLogService.selectNotReturn(customerId, monthId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java index ea44540cd9..5185b0a07d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java @@ -121,13 +121,13 @@ public interface FactOriginProjectMainDailyService extends BaseService selectGridClosedProject(String customerId,String monthId,String status); + List selectGridClosedProject(List gridIds,String monthId,String status); List selectTransferRightRatio(String customerId,String monthId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java index 7f9d220602..c2fb24eafb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java @@ -135,15 +135,18 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl selectGridClosedProject(String customerId, String monthId, String status) { - return baseDao.selectGridClosedProject(customerId, monthId,status); + public List selectGridClosedProject(List gridIds, String monthId, String status) { + if (CollectionUtils.isEmpty(gridIds)){ + return new ArrayList<>(); + } + return baseDao.selectGridClosedProject(gridIds, monthId,status); } @Override diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml index a79b5ba233..aaa632d657 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml @@ -92,16 +92,20 @@ DELETE FROM From ab371e04ec8ba7a76ea370d60397562bfc8453a9 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 12 Apr 2021 15:15:20 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E5=A4=87=E6=B3=A8=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/dataToIndex/impl/CalGridIndexServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java index dde09decc5..fc3c7532d1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java @@ -285,9 +285,11 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { List projectEvaluateList = projectLogService.selectProjectEvaluate(customerId, monthId); Map resultSatisfactionScore = new HashMap<>(16); if (!CollectionUtils.isEmpty(projectEvaluateList)){ + // 根据网格分组 Map> groupByGrid = projectEvaluateList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getGridId)); groupByGrid.forEach((gridId,projectEvaluateInfoList) -> { Map scoreMap = new HashMap<>(16); + // 根据项目分组 Map> groupByProject = projectEvaluateInfoList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getProjectId)); groupByProject.forEach((projectId,projectList) -> { projectList.forEach(project -> { From 11574ab7b7d8d4d25aff7374d883ae555772e0c2 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 12 Apr 2021 17:15:48 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/feign/GovIssueOpenFeignClient.java | 10 +- .../GovIssueOpenFeignClientFallBack.java | 5 + .../IssueProjectCategoryDictController.java | 12 + .../dao/IssueProjectCategoryDictDao.java | 6 + .../com/epmet/dao/IssueProjectTagDictDao.java | 7 + .../IssueProjectCategoryDictService.java | 8 + .../IssueProjectCategoryDictServiceImpl.java | 27 +- .../mapper/IssueProjectCategoryDictDao.xml | 17 + .../mapper/IssueProjectTagDictDao.xml | 15 + .../main/java/com/epmet/dto/ProjectDTO.java | 2 +- .../com/epmet/constant/ProjectConstant.java | 8 + .../controller/ProjectTraceController.java | 12 + .../java/com/epmet/entity/ProjectEntity.java | 2 +- .../epmet/service/ProjectTraceService.java | 7 + .../service/impl/ProjectTraceServiceImpl.java | 350 +++++++++++++++++- 15 files changed, 473 insertions(+), 15 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index eeccc8d836..2977849e22 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -222,7 +222,7 @@ public interface GovIssueOpenFeignClient { * @author sun **/ @PostMapping(value = "/gov/issue/issueprojectcategorydict/getprojectandcategoryinfo") - Result getProjectAndCategoryInfo(ProjectSaveCategoryFormDTO formDTO); + Result getProjectAndCategoryInfo(@RequestBody ProjectSaveCategoryFormDTO formDTO); /** * @Description 更新标签热度 数据库/缓存 @@ -293,4 +293,12 @@ public interface GovIssueOpenFeignClient { @PostMapping(value = "/gov/issue/manage/votingissuedetail") Result votingissuedetail(@RequestBody IssueDetailFormDTO issueDetail); + + /** + * @param formDTO + * @Description 根据分类、标签Id集合查询对应数据信息 + * @Author sun + **/ + @PostMapping(value = "/gov/issue/issueprojectcategorydict/getcategorytaglist") + Result getCategoryTagList(@RequestBody CategoryTagListFormDTO formDTO); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 9ce37add49..d8cc8c9d92 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -251,4 +251,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result votingissuedetail(IssueDetailFormDTO issueDetail) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "votingissuedetail", issueDetail); } + + @Override + public Result getCategoryTagList(CategoryTagListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryTagList", formDTO); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java index c4080d0f10..b28f0b352d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java @@ -32,6 +32,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IssueProjectCategoryDictDTO; import com.epmet.dto.form.*; +import com.epmet.dto.result.CategoryTagResultDTO; import com.epmet.dto.result.CustomerCategoryListResultDTO; import com.epmet.dto.result.CustomerCategoryResultDTO; import com.epmet.dto.result.ProjectIssueCategoryResultDTO; @@ -256,5 +257,16 @@ public class IssueProjectCategoryDictController { } return new Result>().ok(issueProjectCategoryDictService.customerCategoryList(map.get(FieldConstant.CUSTOMER_ID_HUMP))); } + + /** + * @param formDTO + * @Description 根据分类、标签Id集合查询对应数据信息 + * @Author sun + **/ + @PostMapping("getcategorytaglist") + public Result getCategoryTagList(@RequestBody CategoryTagListFormDTO formDTO) { + return new Result().ok(issueProjectCategoryDictService.getCategoryTagList(formDTO)); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java index ff49f564b1..f9be70d073 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java @@ -167,4 +167,10 @@ public interface IssueProjectCategoryDictDao extends BaseDao getCategoryList(@Param("customerId") String customerId, @Param("categoryIdList") List categoryIdList); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java index 45fa05d7cf..690e5ce73f 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueProjectTagDictDTO; import com.epmet.dto.form.IsDisableCategoryFormDTO; import com.epmet.dto.form.IssueTagFormDTO; import com.epmet.dto.result.IssueCategoryTagResultDTO; @@ -140,4 +141,10 @@ public interface IssueProjectTagDictDao extends BaseDao getTagList(@Param("customerId") String customerId, @Param("tagIdList") List categoryIdList); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java index 639888bc23..00ebcc18ca 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueProjectCategoryDictDTO; import com.epmet.dto.form.*; +import com.epmet.dto.result.CategoryTagResultDTO; import com.epmet.dto.result.CustomerCategoryListResultDTO; import com.epmet.dto.result.CustomerCategoryResultDTO; import com.epmet.dto.result.ProjectIssueCategoryResultDTO; @@ -208,4 +209,11 @@ public interface IssueProjectCategoryDictService extends BaseService customerCategoryList(String customerId); + + /** + * @param formDTO + * @Description 根据分类、标签Id集合查询对应数据信息 + * @Author sun + **/ + CategoryTagResultDTO getCategoryTagList(CategoryTagListFormDTO formDTO); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java index 62d39412c3..b2f0c63790 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java @@ -31,10 +31,7 @@ import com.epmet.dao.IssueCategoryDao; import com.epmet.dao.IssueProjectCategoryDictDao; import com.epmet.dao.IssueProjectRelationDao; import com.epmet.dao.IssueProjectTagDictDao; -import com.epmet.dto.IssueCategoryDTO; -import com.epmet.dto.IssueDTO; -import com.epmet.dto.IssueProjectCategoryDictDTO; -import com.epmet.dto.ProjectCategoryDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IssueProjectCategoryDictEntity; @@ -450,4 +447,26 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl categoryList = baseDao.getCategoryList(formDTO.getCustomerId(), formDTO.getCategoryIdList()); + resultDTO.setCategoryList(categoryList); + } + //2.批量查询客户标签信息 + if (!org.springframework.util.CollectionUtils.isEmpty(formDTO.getCategoryIdList())) { + List tagList = issueProjectTagDictDao.getTagList(formDTO.getCustomerId(), formDTO.getTagIdList()); + resultDTO.setTagList(tagList); + } + return resultDTO; + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index 3a29df5f14..0d6adbd065 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -213,6 +213,23 @@ ORDER BY SORT, CATEGORY_CODE ASC + + UPDATE issue_project_category_dict SET diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml index 6e63c32fab..5c4b4c2150 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml @@ -203,6 +203,21 @@ + + UPDATE issue_project_tag_dict SET is_disable = #{type}, diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java index 0b449f6709..6ba33ec68a 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java @@ -51,7 +51,7 @@ public class ProjectDTO implements Serializable { private String agencyId; /** - * 来源:议题issue + * 来源:议题issue 项目立项:agency */ private String origin; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java index 4a8696fa01..b5259e9677 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -10,6 +10,10 @@ public interface ProjectConstant { * 项目来源-议题 */ String ISSUE = "issue"; + /** + * 项目来源-组织(项目立项) + */ + String AGENCY = "agency"; /** * 状态-待处理 */ @@ -67,6 +71,10 @@ public interface ProjectConstant { * 处理名-退回 */ String OPERATION_RESPONSES_NAME = "处理/响应"; + /** + * 处理名-项目立项 + */ + String OPERATION_PROJECT_APPROVAL = "项目立项"; /** * 是否处理-未处理 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index d1d8568a58..fd0745bae4 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -345,5 +345,17 @@ public class ProjectTraceController { return new Result().ok(projectTraceService.approvalAgencyList(tokenDTO)); } + /** + * @param tokenDTO formDTO + * @Author sun + * @Description 项目立项 + **/ + @PostMapping("projectapproval") + public Result projectApproval(@LoginUser TokenDto tokenDTO, @RequestBody ProjectApprovalFormDTO formDTO) { + formDTO.setCustomerId(tokenDTO.getCustomerId()); + projectTraceService.projectApproval(tokenDTO, formDTO); + return new Result(); + } + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java index 1d441664b8..444eebee06 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java @@ -49,7 +49,7 @@ public class ProjectEntity extends BaseEpmetEntity { private String agencyId; /** - * 来源:议题issue + * 来源:议题issue 项目立项:agency */ private String origin; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java index f828489fe3..598b068a6a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java @@ -166,4 +166,11 @@ public interface ProjectTraceService { * @Description 项目立项组织树查询--查询当前工作人员所属组织,上两级组织,所有下级组织 **/ ProcessorListResultDTO approvalAgencyList(TokenDto tokenDTO); + + /** + * @param formDTO + * @Author sun + * @Description 项目立项 + **/ + void projectApproval(TokenDto tokenDTO, ProjectApprovalFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 884378fec8..e91c154357 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -1,29 +1,44 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.scan.param.TextScanParamDTO; +import com.epmet.commons.tools.scan.param.TextTaskDTO; +import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.ProjectConstant; +import com.epmet.constant.ReadFlagConstant; +import com.epmet.constant.SmsTemplateConstant; +import com.epmet.constant.UserMessageConstant; +import com.epmet.dao.ProjectOrgRelationDao; import com.epmet.dao.ProjectProcessAttachmentDao; import com.epmet.dao.ProjectProcessDao; +import com.epmet.dto.CustomerStaffDTO; +import com.epmet.dto.IssueProjectCategoryDictDTO; +import com.epmet.dto.IssueProjectTagDictDTO; import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.entity.ProjectStaffEntity; -import com.epmet.feign.EpmetUserOpenFeignClient; -import com.epmet.feign.GovOrgFeignClient; -import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.entity.*; +import com.epmet.feign.*; import com.epmet.service.*; import lombok.extern.slf4j.Slf4j; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -33,7 +48,8 @@ import java.util.stream.Collectors; */ @Service @Slf4j -public class ProjectTraceServiceImpl implements ProjectTraceService { +public class ProjectTraceServiceImpl implements ProjectTraceService { + private Logger logger = LogManager.getLogger(ProjectTraceServiceImpl.class); @Autowired private ProjectService projectService; @Autowired @@ -52,6 +68,22 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { private EpmetUserOpenFeignClient epmetUserOpenFeignClient; @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Value("${openapi.scan.server.url}") + private String scanApiUrl; + @Value("${openapi.scan.method.textSyncScan}") + private String textSyncScanMethod; + @Autowired + private ProjectOrgRelationDao relationDao; + @Autowired + private ProjectCategoryService projectCategoryService; + @Autowired + private ProjectTagsService projectTagsService; + @Autowired + private GovIssueOpenFeignClient govIssueOpenFeignClient; + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; @Override public List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) { @@ -245,4 +277,306 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { return result.getData(); } + /** + * @param formDTO + * @Author sun + * @Description 项目立项 + * 内容安全校验、项目|节点|人员|附件|分类|标签|统计业务数据新增、站内信|微信|短信消息推送 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public void projectApproval(TokenDto tokenDTO, ProjectApprovalFormDTO formDTO) { + List staffList = formDTO.getStaffList(); + //1.文字内容安全校验 + List list = new ArrayList<>(); + list.add(formDTO.getTitle());list.add(formDTO.getBackGround());list.add(formDTO.getPublicReply()); + safetyCheck(list); + + //2.数据准备,查询需要用到的数据 + //2-1.获取token用户所属组织信息 + LoginUserDetailsFormDTO dto = new LoginUserDetailsFormDTO(); + dto.setApp(tokenDTO.getApp()); + dto.setClient(tokenDTO.getClient()); + dto.setUserId(tokenDTO.getUserId()); + Result resultDto = epmetUserOpenFeignClient.getLoginUserDetails(dto); + if (!resultDto.success() || StringUtils.isEmpty(resultDto.getData().getAgencyId())) { + throw new RenException(String.format("项目立项调用user服务查询用户数据失败,userId->", tokenDTO.getUserId())); + } + LoginUserDetailsResultDTO loginUser = resultDto.getData(); + + //2-2.调用gov-org服务,获取所有勾选人员以及议题数据对应的组织信息、部门信息、网格信息用于对处理部门和ORG_ID_PATH字段的赋值使用 + List agencyIdList = staffList.stream().map(TickStaffFormDTO::getAgencyId).collect(Collectors.toList()); + agencyIdList.add(loginUser.getAgencyId()); + agencyIdList = new ArrayList(new LinkedHashSet<>(agencyIdList));agencyIdList.removeAll(Collections.singleton("")); + List deptIdList = staffList.stream().map(TickStaffFormDTO::getDepartmentId).collect(Collectors.toList()); + deptIdList = new ArrayList(new LinkedHashSet<>(deptIdList));deptIdList.removeAll(Collections.singleton("")); + List gridIdList = staffList.stream().map(TickStaffFormDTO::getGridId).collect(Collectors.toList()); + gridIdList = new ArrayList(new LinkedHashSet<>(gridIdList));gridIdList.removeAll(Collections.singleton("")); + AgencyDeptGridFormDTO agencyDeptGridFormDTO = new AgencyDeptGridFormDTO(); + agencyDeptGridFormDTO.setAgencyIdList(agencyIdList); + agencyDeptGridFormDTO.setDeptIdList(deptIdList); + agencyDeptGridFormDTO.setGridIdList(gridIdList); + Result resultDTO = govOrgFeignClient.getAgencyDeptGridList(agencyDeptGridFormDTO); + if (!resultDTO.success() || null == resultDTO.getData()) { + throw new RenException(ProjectConstant.SELECT_GOV_ORG_EXCEPTION); + } + AgencyDeptGridResultDTO agencyDeptGrid = resultDTO.getData(); + + //2-3.调用issue服务,查询分类、标签数据信息 + CategoryTagListFormDTO categoryTag = new CategoryTagListFormDTO(); + List categoryIdList = formDTO.getCategoryList().stream().map(CategoryOrTagFormDTO::getId).collect(Collectors.toList()); + List tagIdList = formDTO.getTagList().stream().map(CategoryOrTagFormDTO::getId).collect(Collectors.toList()); + categoryTag.setCustomerId(tokenDTO.getCustomerId()); + categoryTag.setCategoryIdList(categoryIdList); + categoryTag.setTagIdList(tagIdList); + Result resultDTOResult = govIssueOpenFeignClient.getCategoryTagList(categoryTag); + if(!resultDTOResult.success()){ + throw new RenException("项目立项,调用issue服务查询分类、标签基础信息失败"); + } + List categoryList = resultDTOResult.getData().getCategoryList(); + List tagList = resultDTOResult.getData().getTagList(); + + //3.封装保存业务数据 + //3-1.项目主表新增数据 + ProjectEntity projectEntity = new ProjectEntity(); + projectEntity.setCustomerId(tokenDTO.getCustomerId()); + projectEntity.setAgencyId(loginUser.getAgencyId()); + projectEntity.setOrigin(ProjectConstant.AGENCY); + projectEntity.setOriginId(loginUser.getAgencyId()); + projectEntity.setTitle(formDTO.getTitle()); + projectEntity.setBackGround(formDTO.getBackGround()); + projectEntity.setStatus(ProjectConstant.PENDING); + projectEntity.setOrgIdPath(loginUser.getOrgIdPath()); + projectService.insert(projectEntity); + + //3-2.项目进展表新增第一个节点数据 + ProjectProcessEntity processEntity = new ProjectProcessEntity(); + processEntity.setProjectId(projectEntity.getId()); + processEntity.setCustomerId(tokenDTO.getCustomerId()); + processEntity.setStaffId(tokenDTO.getUserId()); + processEntity.setOperation(ProjectConstant.OPERATION_CREATED); + processEntity.setOperationName(ProjectConstant.OPERATION_PROJECT_APPROVAL); + processEntity.setPublicReply(formDTO.getPublicReply()); + processEntity.setInternalRemark(formDTO.getInternalRemark()); + agencyDeptGrid.getAgencyList().forEach(agency -> { + if (loginUser.getAgencyId().equals(agency.getId())) { + processEntity.setDepartmentName(agency.getOrganizationName()); + processEntity.setAgencyId(agency.getId()); + if(org.apache.commons.lang3.StringUtils.isBlank(agency.getPids()) || org.apache.commons.lang3.StringUtils.equals(NumConstant.ZERO_STR,agency.getPids().trim()) || "".equals(agency.getPids().trim())){ + processEntity.setOrgIdPath(agency.getId()); + }else{ + processEntity.setOrgIdPath(agency.getPids().concat(":").concat(agency.getId())); + } + } + }); + projectProcessService.insert(processEntity); + + //3-3.项目人员表批量新增数据 + List entityList = new ArrayList<>(); + staffList.forEach(ts -> { + ProjectStaffEntity entity = ConvertUtils.sourceToTarget(ts, ProjectStaffEntity.class); + entity.setOrgId(ts.getAgencyId()); + entity.setProjectId(projectEntity.getId()); + entity.setProcessId(processEntity.getId()); + entity.setIsHandle(ProjectConstant.UNHANDLED); + agencyDeptGrid.getAgencyList().forEach(agency -> { + if (ts.getAgencyId().equals(agency.getId())) { + entity.setCustomerId(agency.getCustomerId()); + entity.setOrgIdPath(("".equals(agency.getPids()) ? "" : agency.getPids() + ":") + agency.getId()); + entity.setDepartmentName(agency.getOrganizationName()); + } + }); + if (org.apache.commons.lang3.StringUtils.isNotBlank(ts.getDepartmentId())) { + agencyDeptGrid.getDeptList().forEach(dept -> { + if (ts.getDepartmentId().equals(dept.getId())) { + entity.setDepartmentName(entity.getDepartmentName() + "-" + dept.getDepartmentName()); + } + }); + } + if (org.apache.commons.lang3.StringUtils.isNotBlank(ts.getGridId())) { + agencyDeptGrid.getGridList().forEach(grid -> { + if (ts.getGridId().equals(grid.getId())) { + entity.setDepartmentName(entity.getDepartmentName() + "-" + grid.getGridName()); + } + }); + } + entityList.add(entity); + }); + projectStaffService.insertBatch(entityList); + + //3-4.项目附件表新增数据 + if ((null != formDTO.getPublicFile() && formDTO.getPublicFile().size() > NumConstant.ZERO) + || (null != formDTO.getInternalFile() && formDTO.getInternalFile().size() > NumConstant.ZERO)) { + projectService.saveFile(formDTO.getPublicFile(), formDTO.getInternalFile(), tokenDTO.getCustomerId(), projectEntity.getId(), processEntity.getId()); + } + + //3-5.项目分类表新增数据 + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(formDTO.getCategoryList())) { + List categoryEntityList = new ArrayList<>(); + formDTO.getCategoryList().forEach(item -> { + categoryList.forEach(ca->{ + if(item.getId().equals(ca.getId())){ + ProjectCategoryEntity entity = new ProjectCategoryEntity(); + entity.setCustomerId(tokenDTO.getCustomerId()); + entity.setProjectId(projectEntity.getId()); + entity.setCategoryId(item.getId()); + entity.setCategoryPids(ca.getPids()); + entity.setCategoryCode(ca.getCategoryCode()); + categoryEntityList.add(entity); + } + }); + }); + projectCategoryService.insertBatch(categoryEntityList); + } + + //3-6.项目标签表新增数据 + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(formDTO.getTagList())) { + List tagEntityList = new ArrayList<>(); + formDTO.getTagList().forEach(item -> { + tagList.forEach(ta->{ + if(item.getId().equals(ta.getId())){ + ProjectTagsEntity entity = new ProjectTagsEntity(); + entity.setCustomerId(tokenDTO.getCustomerId()); + entity.setProjectId(projectEntity.getId()); + entity.setTagId(item.getId()); + entity.setTagName(ta.getTagName()); + tagEntityList.add(entity); + } + }); + }); + projectTagsService.insertBatch(tagEntityList); + } + + //3-7:初始化机关-项目时间关联数据 + Date current = new Date(); + List projectStaffIds = entityList.stream().map(ProjectStaffEntity::getId).distinct().collect(Collectors.toList()); + if(!org.apache.commons.collections4.CollectionUtils.isEmpty(projectStaffIds)){ + List container = new LinkedList<>(); + projectStaffIds.forEach(o -> { + ProjectOrgRelationEntity period = new ProjectOrgRelationEntity(); + period.setProjectStaffId(o); + period.setInformedDate(current); + period.setSourceOperation(ProjectConstant.OPERATION_CREATED); + period.setCreatedBy(tokenDTO.getUserId()); + container.add(period); + }); + relationDao.insertBatch(container); + } + + //4.推送站内信、微信、短信消息 + //4-1.调用epmet-message服务,给工作端勾选的工作人员发送消息 + if (!shiftProjectMessage(formDTO).success()) { + throw new RenException("项目立项,推送站内信失败"); + } + + //4-2.以及政府端调用epmet-message服务,给工作端工作人员推送微信订阅消息 + if (!wxmpShiftProjectMessage(formDTO).success()) { + logger.error("项目立项,推送微信订阅消息失败!"); + } + + //4-3.吹哨短信消息 + List smsList = new ArrayList<>(); + staffList.forEach(staff -> { + CustomerStaffDTO staffDTO = new CustomerStaffDTO(); + staffDTO.setUserId(staff.getStaffId()); + Result staffDTOResult = epmetUserFeignClient.getCustomerStaffInfoByUserId(staffDTO); + if (staffDTOResult.success() && null != staffDTOResult.getData()) { + ProjectSendMsgFormDTO sms = new ProjectSendMsgFormDTO(); + sms.setCustomerId(staffDTOResult.getData().getCustomerId()); + sms.setMobile(staffDTOResult.getData().getMobile()); + sms.setAliyunTemplateCode(SmsTemplateConstant.PROJECT_TRANSFER); + sms.setParameterKey("send_msg"); + smsList.add(sms); + } + }); + Result result = epmetMessageOpenFeignClient.projectSendMsg(smsList); + if (!result.success()) { + logger.error("项目吹哨,发送手机短信失败" + JSON.toJSONString(result)); + } + + } + + /** + * @param list + * @Author sun + * @Description 文字内容安全校验 + **/ + private void safetyCheck(List list){ + if(!CollectionUtils.isEmpty(list)){ + list.forEach(l->{ + if (com.alibaba.nacos.client.utils.StringUtils.isNotBlank(l)) { + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskDTO.setContent(l); + textScanParamDTO.getTasks().add(taskDTO); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + } + }); + } + } + + /** + * @Description 项目立项给勾选的工作人员推送站内信消息 + * @author sun + */ + private Result shiftProjectMessage(ProjectApprovalFormDTO formDTO) { + List msgList = new ArrayList<>(); + //1.创建项目工作人员消息对象 + String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, formDTO.getTitle()); + //所选人员如果即在部门下又在网格下则只发一条消息 + Map map = new HashMap<>(); + formDTO.getStaffList().forEach(staff->{ + if(!map.containsKey(staff.getStaffId())){ + UserMessageFormDTO msg = new UserMessageFormDTO(); + msg.setCustomerId(formDTO.getCustomerId()); + msg.setGridId("*"); + msg.setApp(AppClientConstant.APP_GOV); + msg.setTitle(UserMessageConstant.PROJECT_TITLE); + msg.setMessageContent(projectStaffMessage); + msg.setReadFlag(ReadFlagConstant.UN_READ); + msg.setUserId(staff.getStaffId()); + msgList.add(msg); + map.put(staff.getStaffId(),staff.getStaffId()); + } + }); + return epmetMessageOpenFeignClient.saveUserMessageList(msgList); + } + + /** + * @Description 项目立项给勾选的工作人员推送微信订阅消息 + * @author sun + */ + private Result wxmpShiftProjectMessage(ProjectApprovalFormDTO formDTO) { + List msgList = new ArrayList<>(); + //1.创建项目工作人员消息对象 + String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, formDTO.getTitle()); + //所选人员如果即在部门下又在网格下则只发一条消息 + Map map = new HashMap<>(); + formDTO.getStaffList().forEach(staff->{ + if(!map.containsKey(staff.getStaffId())){ + WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); + msg.setCustomerId(formDTO.getCustomerId()); + msg.setClientType(AppClientConstant.APP_GOV); + msg.setUserId(staff.getStaffId()); + msg.setBehaviorType("项目消息"); + msg.setMessageContent(projectStaffMessage); + msg.setMessageTime(new Date()); + msg.setGridId("*"); + msgList.add(msg); + map.put(staff.getStaffId(),staff.getStaffId()); + } + }); + logger.info("项目立项,推送微信订阅消息"); + return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + } + + } From 8e8590ae49d7f60c502b12bab4ee996508bd1db1 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 13 Apr 2021 09:16:44 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0=E8=BF=94=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/CategoryTagListFormDTO.java | 32 ++++++++++ .../dto/result/CategoryTagResultDTO.java | 28 +++++++++ .../epmet/dto/form/CategoryOrTagFormDTO.java | 24 ++++++++ .../dto/form/ProjectApprovalFormDTO.java | 61 +++++++++++++++++++ .../dto/result/ProjectDetailResultDTO.java | 4 ++ .../controller/ProjectTraceController.java | 5 +- .../epmet/service/ProjectTraceService.java | 2 +- .../service/impl/ProjectTraceServiceImpl.java | 26 ++++---- .../src/main/resources/mapper/ProjectDao.xml | 1 + 9 files changed, 168 insertions(+), 15 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CategoryTagListFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryTagResultDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/CategoryOrTagFormDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectApprovalFormDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CategoryTagListFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CategoryTagListFormDTO.java new file mode 100644 index 0000000000..3faaa44a58 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CategoryTagListFormDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 根据分类、标签Id集合查询对应数据信息--接口入参 + * @Author sun + */ +@Data +public class CategoryTagListFormDTO implements Serializable { + + private static final long serialVersionUID = 2599592072265715951L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 分类Id + */ + private List categoryIdList; + + /** + * 标签Id + */ + private List tagIdList; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryTagResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryTagResultDTO.java new file mode 100644 index 0000000000..7c832fe023 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryTagResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.result; + +import com.epmet.dto.IssueProjectCategoryDictDTO; +import com.epmet.dto.IssueProjectTagDictDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description 根据分类、标签Id集合查询对应数据信息--接口返参 + * @Author sun + */ +@Data +public class CategoryTagResultDTO implements Serializable { + + private static final long serialVersionUID = 5957826616179876849L; + + /** + * 分类对象 + */ + private List categoryList; + /** + * 标签对象 + */ + private List tagList; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/CategoryOrTagFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/CategoryOrTagFormDTO.java new file mode 100644 index 0000000000..6726db391f --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/CategoryOrTagFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 项目立项-分类、标签信息-接口入参 + * @Author sun + */ +@Data +public class CategoryOrTagFormDTO implements Serializable { + + private static final long serialVersionUID = 2599592072265715951L; + /** + * 分类Id + */ + private String id; + /** + * 分类名称 + */ + private String name; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectApprovalFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectApprovalFormDTO.java new file mode 100644 index 0000000000..4553ab6654 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectApprovalFormDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dto.form; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 项目立项-接口入参 + * @Author sun + */ +@Data +public class ProjectApprovalFormDTO implements Serializable { + private static final long serialVersionUID = 4859779755214502427L; + + @NotBlank(message = "项目标题不能为空") + private String title; + + @NotBlank(message = "项目背景不能为空") + @Length(max=1000,message = "项目背景不能超过1000位") + private String backGround; + + @NotBlank(message = "项目方案不能为空") + @Length(max=1000,message = "项目方案不能超过1000位") + private String publicReply; + + @Length(max=1000,message = "内部备注不能超过1000位") + private String internalRemark; + + /** + * 吹哨勾选的工作人员信息集合,不可为空 + */ + @Valid + private List staffList; + /** + * 公开答复对应文件集合 + */ + private List publicFile; + /** + * 内部备注对应文件集合 + */ + private List internalFile; + /** + * 项目所选分类集合,不可为空 + */ + @Valid + private List categoryList; + /** + * 项目所选标签集合 + */ + private List tagList; + + private String customerId; + private String app; + private String client; + private String userId; +} + diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java index cd3c278259..ebffaef4d7 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java @@ -31,6 +31,10 @@ public class ProjectDetailResultDTO implements Serializable { * 项目标题 */ private String projectTitle; + /** + * 项目背景 + */ + private String backGround; /** * 项目方案 */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index fd0745bae4..82fe6a5984 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -353,7 +353,10 @@ public class ProjectTraceController { @PostMapping("projectapproval") public Result projectApproval(@LoginUser TokenDto tokenDTO, @RequestBody ProjectApprovalFormDTO formDTO) { formDTO.setCustomerId(tokenDTO.getCustomerId()); - projectTraceService.projectApproval(tokenDTO, formDTO); + formDTO.setApp(tokenDTO.getApp()); + formDTO.setClient(tokenDTO.getClient()); + formDTO.setUserId(tokenDTO.getUserId()); + projectTraceService.projectApproval(formDTO); return new Result(); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java index 598b068a6a..d3d2cc3f3b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java @@ -172,5 +172,5 @@ public interface ProjectTraceService { * @Author sun * @Description 项目立项 **/ - void projectApproval(TokenDto tokenDTO, ProjectApprovalFormDTO formDTO); + void projectApproval(ProjectApprovalFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index e91c154357..ccef1dc1d5 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -285,7 +285,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS **/ @Override @Transactional(rollbackFor = Exception.class) - public void projectApproval(TokenDto tokenDTO, ProjectApprovalFormDTO formDTO) { + public void projectApproval(ProjectApprovalFormDTO formDTO) { List staffList = formDTO.getStaffList(); //1.文字内容安全校验 List list = new ArrayList<>(); @@ -295,12 +295,12 @@ public class ProjectTraceServiceImpl implements ProjectTraceS //2.数据准备,查询需要用到的数据 //2-1.获取token用户所属组织信息 LoginUserDetailsFormDTO dto = new LoginUserDetailsFormDTO(); - dto.setApp(tokenDTO.getApp()); - dto.setClient(tokenDTO.getClient()); - dto.setUserId(tokenDTO.getUserId()); + dto.setApp(formDTO.getApp()); + dto.setClient(formDTO.getClient()); + dto.setUserId(formDTO.getUserId()); Result resultDto = epmetUserOpenFeignClient.getLoginUserDetails(dto); if (!resultDto.success() || StringUtils.isEmpty(resultDto.getData().getAgencyId())) { - throw new RenException(String.format("项目立项调用user服务查询用户数据失败,userId->", tokenDTO.getUserId())); + throw new RenException(String.format("项目立项调用user服务查询用户数据失败,userId->", formDTO.getUserId())); } LoginUserDetailsResultDTO loginUser = resultDto.getData(); @@ -326,7 +326,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS CategoryTagListFormDTO categoryTag = new CategoryTagListFormDTO(); List categoryIdList = formDTO.getCategoryList().stream().map(CategoryOrTagFormDTO::getId).collect(Collectors.toList()); List tagIdList = formDTO.getTagList().stream().map(CategoryOrTagFormDTO::getId).collect(Collectors.toList()); - categoryTag.setCustomerId(tokenDTO.getCustomerId()); + categoryTag.setCustomerId(formDTO.getCustomerId()); categoryTag.setCategoryIdList(categoryIdList); categoryTag.setTagIdList(tagIdList); Result resultDTOResult = govIssueOpenFeignClient.getCategoryTagList(categoryTag); @@ -339,7 +339,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS //3.封装保存业务数据 //3-1.项目主表新增数据 ProjectEntity projectEntity = new ProjectEntity(); - projectEntity.setCustomerId(tokenDTO.getCustomerId()); + projectEntity.setCustomerId(formDTO.getCustomerId()); projectEntity.setAgencyId(loginUser.getAgencyId()); projectEntity.setOrigin(ProjectConstant.AGENCY); projectEntity.setOriginId(loginUser.getAgencyId()); @@ -352,8 +352,8 @@ public class ProjectTraceServiceImpl implements ProjectTraceS //3-2.项目进展表新增第一个节点数据 ProjectProcessEntity processEntity = new ProjectProcessEntity(); processEntity.setProjectId(projectEntity.getId()); - processEntity.setCustomerId(tokenDTO.getCustomerId()); - processEntity.setStaffId(tokenDTO.getUserId()); + processEntity.setCustomerId(formDTO.getCustomerId()); + processEntity.setStaffId(formDTO.getUserId()); processEntity.setOperation(ProjectConstant.OPERATION_CREATED); processEntity.setOperationName(ProjectConstant.OPERATION_PROJECT_APPROVAL); processEntity.setPublicReply(formDTO.getPublicReply()); @@ -407,7 +407,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS //3-4.项目附件表新增数据 if ((null != formDTO.getPublicFile() && formDTO.getPublicFile().size() > NumConstant.ZERO) || (null != formDTO.getInternalFile() && formDTO.getInternalFile().size() > NumConstant.ZERO)) { - projectService.saveFile(formDTO.getPublicFile(), formDTO.getInternalFile(), tokenDTO.getCustomerId(), projectEntity.getId(), processEntity.getId()); + projectService.saveFile(formDTO.getPublicFile(), formDTO.getInternalFile(), formDTO.getCustomerId(), projectEntity.getId(), processEntity.getId()); } //3-5.项目分类表新增数据 @@ -417,7 +417,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS categoryList.forEach(ca->{ if(item.getId().equals(ca.getId())){ ProjectCategoryEntity entity = new ProjectCategoryEntity(); - entity.setCustomerId(tokenDTO.getCustomerId()); + entity.setCustomerId(formDTO.getCustomerId()); entity.setProjectId(projectEntity.getId()); entity.setCategoryId(item.getId()); entity.setCategoryPids(ca.getPids()); @@ -436,7 +436,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS tagList.forEach(ta->{ if(item.getId().equals(ta.getId())){ ProjectTagsEntity entity = new ProjectTagsEntity(); - entity.setCustomerId(tokenDTO.getCustomerId()); + entity.setCustomerId(formDTO.getCustomerId()); entity.setProjectId(projectEntity.getId()); entity.setTagId(item.getId()); entity.setTagName(ta.getTagName()); @@ -457,7 +457,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS period.setProjectStaffId(o); period.setInformedDate(current); period.setSourceOperation(ProjectConstant.OPERATION_CREATED); - period.setCreatedBy(tokenDTO.getUserId()); + period.setCreatedBy(formDTO.getUserId()); container.add(period); }); relationDao.insertBatch(container); 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 50f8bc6433..0a430eab87 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 @@ -124,6 +124,7 @@ SELECT p.ID AS "projectId", p.TITLE AS "projectTitle", + p.BACK_GROUND AS "backGround", p.ORIGIN AS "origin", p.ORIGIN_ID AS "originId", p.STATUS AS "projectStatus", From 789470302f8bb886add2ceeecf2ebaa8798f533d Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 13 Apr 2021 11:10:01 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dao/IssueProjectTagDictDao.java | 2 +- .../IssueProjectCategoryDictServiceImpl.java | 2 +- .../mapper/IssueProjectTagDictDao.xml | 2 +- .../epmet/dto/result/StaffListResultDTO.java | 8 +++++ .../service/impl/ProjectTraceServiceImpl.java | 31 ++++++++++++------- .../epmet/feign/EpmetUserOpenFeignClient.java | 7 +++++ .../EpmetUserOpenFeignClientFallback.java | 5 +++ .../resources/mapper/CustomerStaffDao.xml | 4 ++- 8 files changed, 46 insertions(+), 15 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java index 690e5ce73f..29dade0f8c 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectTagDictDao.java @@ -146,5 +146,5 @@ public interface IssueProjectTagDictDao extends BaseDao getTagList(@Param("customerId") String customerId, @Param("tagIdList") List categoryIdList); + List getTagList(@Param("customerId") String customerId, @Param("tagIdList") List tagIdList); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java index b2f0c63790..d623d3f88a 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java @@ -462,7 +462,7 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl tagList = issueProjectTagDictDao.getTagList(formDTO.getCustomerId(), formDTO.getTagIdList()); resultDTO.setTagList(tagList); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml index 5c4b4c2150..923a5e9edc 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml @@ -213,7 +213,7 @@ AND customer_id = #{customerId} - ID = #{tagId} + id = #{tagId} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java index fe4d260c8f..2bf18307ce 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java @@ -12,6 +12,10 @@ import java.io.Serializable; public class StaffListResultDTO implements Serializable { private static final long serialVersionUID = 5957826616179876849L; + /** + * 客户Id + */ + private String customerId=""; /** * 人员Id */ @@ -32,5 +36,9 @@ public class StaffListResultDTO implements Serializable { * 角色名称(机关领导、部门领导、网格长) */ private String roleName=""; + /** + * 工作人员手机号 + */ + private String mobile=""; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index ccef1dc1d5..fedafc7ac0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -336,6 +336,16 @@ public class ProjectTraceServiceImpl implements ProjectTraceS List categoryList = resultDTOResult.getData().getCategoryList(); List tagList = resultDTOResult.getData().getTagList(); + //2-4.批量查询被勾选工作人员基础信息 + List staffIdList = staffList.stream().map(TickStaffFormDTO::getStaffId).collect(Collectors.toList()); + staffIdList.add(formDTO.getUserId()); + staffIdList = new ArrayList(new LinkedHashSet<>(staffIdList)); + Result resultStaff = epmetUserOpenFeignClient.getCustomerStaffList(staffIdList); + if (!resultStaff.success() || null == resultStaff.getData()) { + throw new RenException("项目立项,调用user服务获取被勾选工作人员基本信息失败"); + } + List staffInfoList = resultStaff.getData().getStaffList(); + //3.封装保存业务数据 //3-1.项目主表新增数据 ProjectEntity projectEntity = new ProjectEntity(); @@ -477,17 +487,16 @@ public class ProjectTraceServiceImpl implements ProjectTraceS //4-3.吹哨短信消息 List smsList = new ArrayList<>(); staffList.forEach(staff -> { - CustomerStaffDTO staffDTO = new CustomerStaffDTO(); - staffDTO.setUserId(staff.getStaffId()); - Result staffDTOResult = epmetUserFeignClient.getCustomerStaffInfoByUserId(staffDTO); - if (staffDTOResult.success() && null != staffDTOResult.getData()) { - ProjectSendMsgFormDTO sms = new ProjectSendMsgFormDTO(); - sms.setCustomerId(staffDTOResult.getData().getCustomerId()); - sms.setMobile(staffDTOResult.getData().getMobile()); - sms.setAliyunTemplateCode(SmsTemplateConstant.PROJECT_TRANSFER); - sms.setParameterKey("send_msg"); - smsList.add(sms); - } + staffInfoList.forEach(st->{ + if(staff.getStaffId().equals(st.getStaffId())){ + ProjectSendMsgFormDTO sms = new ProjectSendMsgFormDTO(); + sms.setCustomerId(st.getCustomerId()); + sms.setMobile(st.getMobile()); + sms.setAliyunTemplateCode(SmsTemplateConstant.PROJECT_TRANSFER); + sms.setParameterKey("send_msg"); + smsList.add(sms); + } + }); }); Result result = epmetMessageOpenFeignClient.projectSendMsg(smsList); if (!result.success()) { diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 5f5ae5b5ce..52fe2a04cb 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -505,4 +505,11 @@ public interface EpmetUserOpenFeignClient { **/ @PostMapping(value = "/epmetuser/userrole/getuserroleinfo") Result> getUserRoleInfo(@RequestBody UserRoleFormDTO userRoleFormDTO); + + /** + * @Author sun + * @Description 根据staffId集合查询工作人员基础信息 + **/ + @PostMapping(value = "/epmetuser/customerstaff/getcustomerstafflist") + Result getCustomerStaffList(@RequestBody List staffIdList); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 328b98f1f3..6230e5d875 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -358,4 +358,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserRoleInfo", userRoleFormDTO); } + + @Override + public Result getCustomerStaffList(List staffIdList) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustomerStaffList", staffIdList); + } } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml index f5a341bf5b..eab3a42191 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml @@ -181,10 +181,12 @@ + + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml index ace5879e53..3ec91a496a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectOrgDailyDao.xml @@ -112,11 +112,12 @@ 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 From 065ce35f5e9332f1023f3995a6bb377364dc034c Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 13 Apr 2021 13:55:21 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=88=86=E6=9E=90?= =?UTF-8?q?=E7=BB=84=E7=BB=87-=E6=9C=88=20=E7=BB=9F=E8=AE=A1=20=E5=BE=AE?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ScreenProjectQuantityOrgMonthlyServiceImpl.java | 10 +++++----- .../screen/ScreenProjectQuantityOrgMonthlyDao.xml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityOrgMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityOrgMonthlyServiceImpl.java index 91917d22b7..241e23f6e6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityOrgMonthlyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityOrgMonthlyServiceImpl.java @@ -169,16 +169,16 @@ public class ScreenProjectQuantityOrgMonthlyServiceImpl extends BaseServiceImpl< List projectOrg = baseDao.selectQuantityOrgMonthly(agencyInfos, monthId); if (!CollectionUtils.isEmpty(projectOrg)){ projectOrg.forEach(p -> { - p.setClosedIncr(null == p.getClosedIncr() ? NumConstant.ZERO : p.getClosedIncr()); - p.setProjectIncr(null == p.getProjectIncr() ? NumConstant.ZERO : p.getProjectIncr()); + p.setClosedIncr(p.getClosedIncr()); + p.setProjectIncr(p.getProjectIncr()); }); } List projectGrandOrg = baseDao.selectQuantityGrandOrgMonthly(agencyInfos, monthId); if (!CollectionUtils.isEmpty(projectGrandOrg)){ projectGrandOrg.forEach(p -> { - p.setClosedTotal(null == p.getClosedTotal() ? NumConstant.ZERO : p.getClosedTotal()); - p.setProjectTotal(null == p.getProjectTotal() ? NumConstant.ZERO : p.getProjectTotal()); - p.setUnClosedTotal(null == p.getUnClosedTotal() ? NumConstant.ZERO : p.getUnClosedTotal()); + p.setClosedTotal(p.getClosedTotal()); + p.setProjectTotal(p.getProjectTotal()); + p.setUnClosedTotal(p.getUnClosedTotal()); }); } agencyInfos.forEach(a -> { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml index 70fe070738..7e0a5cee0e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectQuantityOrgMonthlyDao.xml @@ -101,8 +101,8 @@ SELECT #{a.areaCode} AS areaCode, - SUM(g.PROJECT_INCR) AS projectIncr, - SUM(g.CLOSED_INCR) AS closedIncr + IFNULL(SUM(g.PROJECT_INCR),0) AS projectIncr, + IFNULL(SUM(g.CLOSED_INCR),0) AS closedIncr 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 @@ -116,9 +116,9 @@ SELECT #{a.areaCode} AS areaCode, - SUM(g.PROJECT_TOTAL) AS projectTotal, - SUM(g.UN_CLOSED_TOTAL) AS unClosedTotal, - SUM(g.CLOSED_TOTAL) AS closedTotal + 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