diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectCategoryDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectCategoryDTO.java
index cbda7d52f6..a4d6c1f284 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectCategoryDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectCategoryDTO.java
@@ -64,6 +64,16 @@ public class ProjectCategoryDTO implements Serializable {
*/
private String categoryPids;
+ /**
+ * 分类编码,分类编码+customer_id唯一
+ */
+ private String categoryCode;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0未删除、1已删除
*/
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectTagsDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectTagsDTO.java
index 60f01c7299..9873ed3ddd 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectTagsDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectTagsDTO.java
@@ -58,6 +58,11 @@ public class ProjectTagsDTO implements Serializable {
*/
private String tagName;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0.未删除 1.已删除
*/
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryGridDailyDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryGridDailyDTO.java
index b9cd6657b6..0a015c6762 100644
--- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryGridDailyDTO.java
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryGridDailyDTO.java
@@ -17,11 +17,10 @@
package com.epmet.dto;
-import java.io.Serializable;
-import java.util.Date;
import lombok.Data;
-import java.math.BigDecimal;
+import java.io.Serializable;
+import java.util.Date;
/**
* 项目(事件)分类按网格_按天统计
@@ -67,7 +66,7 @@ public class ScreenProjectCategoryGridDailyDTO implements Serializable {
/**
* e世通中的项目类别编码
*/
- private String epmetCategoryCode;
+ private String categoryCode;
/**
* 该分类下所有项目总数
@@ -75,39 +74,9 @@ public class ScreenProjectCategoryGridDailyDTO implements Serializable {
private Integer projectTotal;
/**
- * 该分类下,正在处理中的项目总数
- */
- private Integer pendingTotal;
-
- /**
- * 该分类下已结案的项目总数
- */
- private Integer closedTotal;
-
- /**
- * 该分类下已结案无需解决的项目总数
- */
- private Integer unResolvedTotal;
-
- /**
- * 该分类下已结案已解决的项目总数
- */
- private Integer resolvedTotal;
-
- /**
- * 该分类下项目结案率
- */
- private BigDecimal closedRatio;
-
- /**
- * 该分类下已结案项目解决率
- */
- private BigDecimal resolvedRatio;
-
- /**
- * 该分类下已结案项目未解决率
+ * 分类等级1、2....
*/
- private BigDecimal unResolvedRatio;
+ private Integer level;
/**
* 删除标识
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryOrgDailyDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryOrgDailyDTO.java
index 1507a1f88a..95d65184a8 100644
--- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryOrgDailyDTO.java
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/ScreenProjectCategoryOrgDailyDTO.java
@@ -17,11 +17,10 @@
package com.epmet.dto;
-import java.io.Serializable;
-import java.util.Date;
import lombok.Data;
-import java.math.BigDecimal;
+import java.io.Serializable;
+import java.util.Date;
/**
* 项目(事件)分类按组织_按天统计
@@ -72,7 +71,7 @@ public class ScreenProjectCategoryOrgDailyDTO implements Serializable {
/**
* e世通中的项目类别编码
*/
- private String epmetCategoryCode;
+ private String categoryCode;
/**
* 该分类下所有项目总数
@@ -80,39 +79,9 @@ public class ScreenProjectCategoryOrgDailyDTO implements Serializable {
private Integer projectTotal;
/**
- * 该分类下,正在处理中的项目总数
- */
- private Integer pendingTotal;
-
- /**
- * 该分类下已结案的项目总数
- */
- private Integer closedTotal;
-
- /**
- * 该分类下已结案无需解决的项目总数
- */
- private Integer unResolvedTotal;
-
- /**
- * 该分类下已结案已解决的项目总数
- */
- private Integer resolvedTotal;
-
- /**
- * 该分类下项目结案率
- */
- private BigDecimal closedRatio;
-
- /**
- * 该分类下已结案项目解决率
- */
- private BigDecimal resolvedRatio;
-
- /**
- * 该分类下已结案项目未解决率
+ * 分类等级1、2....
*/
- private BigDecimal unResolvedRatio;
+ private Integer level;
/**
* 删除标识
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/CustomerCategoryDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/CustomerCategoryDTO.java
new file mode 100644
index 0000000000..d351ae7346
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/CustomerCategoryDTO.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.project.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class CustomerCategoryDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 父id
+ * pid = 0 查询一级分类
+ * pid != 0 查询二级分类
+ */
+ private String pid;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+}
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryDictResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryDictResultDTO.java
new file mode 100644
index 0000000000..ca534db2a9
--- /dev/null
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryDictResultDTO.java
@@ -0,0 +1,41 @@
+package com.epmet.project.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zhangyong
+ * @Description 002、项目分类字典查询
+ **/
+@Data
+public class ProjectCategoryDictResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 8529179932504931368L;
+
+ /**
+ * 一级分类编码
+ */
+ private String categoryCode;
+
+ /**
+ * 一级分类名称
+ */
+ private String categoryName;
+
+ /**
+ * 二级分类列表
+ */
+ private List children;
+
+ /**
+ * 主键
+ **/
+ private String id;
+
+ /**
+ * 上级分类ID 顶级此列存储0
+ **/
+ private String pid;
+}
diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml
index 8cb39e2c6b..4480ac88e7 100644
--- a/epmet-module/data-report/data-report-server/pom.xml
+++ b/epmet-module/data-report/data-report-server/pom.xml
@@ -94,6 +94,12 @@
2.0.0
compile
+
+ com.epmet
+ gov-issue-client
+ 2.0.0
+ compile
+
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java
index fc10263dcb..beddea450e 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java
@@ -137,4 +137,18 @@ public class ProjectController {
public Result> myNextAgency(@LoginUser TokenDto tokenDto){
return new Result>().ok(projectService.getMyNextAgency(tokenDto));
}
+
+ /**
+ * 002、项目分类字典查询
+ * 查询当前客户的父客户下,项目分类字典
+ *
+ * @param tokenDto
+ * @return com.epmet.commons.tools.utils.Result>
+ * @Author zhangyong
+ * @Date 10:41 2021-03-22
+ **/
+ @PostMapping("categorydict")
+ public Result> categoryDict(@LoginUser TokenDto tokenDto) {
+ return new Result>().ok(projectService.getCategoryDict(tokenDto));
+ }
}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
index 18246addc6..bb2ffedd9c 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
@@ -70,4 +70,14 @@ public interface ProjectService {
* @date 2020.10.19 16:38
**/
List getMyNextAgency(TokenDto tokenDto);
+
+ /**
+ * 002、项目分类字典查询
+ *
+ * @param tokenDto
+ * @return java.util.List
+ * @Author zhangyong
+ * @Date 14:26 2021-03-22
+ **/
+ List getCategoryDict(TokenDto tokenDto);
}
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
index b547128146..a37f3f3d38 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
@@ -3,6 +3,7 @@ package com.epmet.datareport.service.project.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
@@ -18,20 +19,21 @@ import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.SubAgencyFormDTO;
import com.epmet.dto.result.*;
import com.epmet.evaluationindex.screen.dto.result.DepartmentNameListResultDTO;
-import com.epmet.feign.EpmetUserOpenFeignClient;
-import com.epmet.feign.GovOrgOpenFeignClient;
-import com.epmet.feign.GovProjectOpenFeignClient;
+import com.epmet.feign.*;
import com.epmet.project.constant.ProjectConstant;
+import com.epmet.project.dto.CustomerCategoryDTO;
import com.epmet.project.dto.FactAgencyProjectDailyDTO;
import com.epmet.project.dto.form.DifficultyRankFormDTO;
import com.epmet.project.dto.form.ProjectIncrTrendFormDTO;
-import com.epmet.project.dto.result.ProjectDetailResultDTO;
import com.epmet.project.dto.result.*;
+import com.epmet.project.dto.result.ProjectDetailResultDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -50,7 +52,7 @@ import java.util.List;
@Slf4j
@Service
public class ProjectServiceImpl implements ProjectService {
-
+ private Logger logger = LogManager.getLogger(getClass());
@Autowired
private ProjectDao projectDao;
@Autowired
@@ -64,6 +66,11 @@ public class ProjectServiceImpl implements ProjectService {
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
+ @Autowired
+ private GovIssueOpenFeignClient govIssueOpenFeignClient;
+ @Autowired
+ private OperCrmOpenFeignClient operCrmOpenFeignClient;
+
/**
* @Author sun
* @Description 数据-项目-获取汇总数据
@@ -350,4 +357,41 @@ public class ProjectServiceImpl implements ProjectService {
return result;
}
+ @Override
+ public List getCategoryDict(TokenDto tokenDto) {
+ List result = new ArrayList<>();
+ Result parentCustomerId = operCrmOpenFeignClient.getExternalAndParentCustomerId(tokenDto.getCustomerId());
+ if (!parentCustomerId.success() && null == parentCustomerId.getData()) {
+ logger.warn(String.format("调用%s服务查询外部客户的 父级客户ID 失败,入参%s", ServiceConstant.OPER_CRM_SERVER,
+ JSON.toJSONString(tokenDto.getCustomerId())));
+ return result;
+ }
+ CustomerCategoryDTO argDto = new CustomerCategoryDTO();
+ argDto.setCustomerId(parentCustomerId.getData());
+ argDto.setPid(NumConstant.ZERO_STR);
+ // 获取客户一级分类
+ Result> parentCategoryDict = govIssueOpenFeignClient.getCustomerCategoryDict(argDto);
+ if (!parentCategoryDict.success()) {
+ logger.warn(String.format("调用%s服务查询当前客户的父客户下,项目分类字典失败,入参%s", ServiceConstant.GOV_ISSUE_SERVER,
+ JSON.toJSONString(tokenDto.getCustomerId())));
+ } else {
+ result = parentCategoryDict.getData();
+ // 获取客户二级分类
+ argDto.setPid(NumConstant.TWO_STR);
+ Result> childrenCategoryDict = govIssueOpenFeignClient.getCustomerCategoryDict(argDto);
+ for (ProjectCategoryDictResultDTO p : result) {
+ List children = new ArrayList<>();
+ for (ProjectCategoryDictResultDTO c : childrenCategoryDict.getData()) {
+ if (p.getId().equals(c.getPid())) {
+ ProjectCategoryDictResultDTO dto = new ProjectCategoryDictResultDTO();
+ dto.setCategoryCode(c.getCategoryCode());
+ dto.setCategoryName(c.getCategoryName());
+ children.add(dto);
+ }
+ }
+ p.setChildren(children);
+ }
+ }
+ return result;
+ }
}
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml
index 5816def044..d2ac38a7f7 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml
@@ -5,24 +5,26 @@
- SELECT EPMET_CATEGORY_NAME AS categoryName,
- PROJECT_TOTAL AS projectTotal
- FROM screen_project_category_org_daily
- WHERE DEL_FLAG = '0'
- AND ORG_ID = #{agencyId}
- AND DATE_ID = (
- select
- date_id
- from
- screen_project_category_org_daily
- where
- del_flag = '0'
- and ORG_ID = #{agencyId}
- order by
- date_id desc,
- created_time desc
- limit 1
- )
- ORDER BY EPMET_CATEGORY_CODE
+ SELECT D.CATEGORY_NAME AS categoryName,
+ M.PROJECT_TOTAL AS projectTotal
+ FROM screen_project_category_org_daily m
+ left join customer_project_category_dict d
+ on(m.CATEGORY_CODE=D.CATEGORY_CODE AND D.DEL_FLAG='0')
+ WHERE M.DEL_FLAG = '0'
+ AND M.ORG_ID = #{agencyId}
+ AND M.DATE_ID = (
+ select
+ date_id
+ from
+ screen_project_category_org_daily
+ where
+ del_flag = '0'
+ and ORG_ID = #{agencyId}
+ order by
+ date_id desc,
+ created_time desc
+ limit 1
+ )
+ ORDER BY M.CATEGORY_CODE ASC
\ No newline at end of file
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java
index 1955847edd..c07037ee92 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/issue/IssueProjectCategoryDictDTO.java
@@ -53,6 +53,11 @@ public class IssueProjectCategoryDictDTO implements Serializable {
*/
private String pids;
+ /**
+ * 上级分类编码
+ */
+ private String parentCategoryCode;
+
/**
* 分类编码,分类编码+customer_id唯一
*/
@@ -73,6 +78,11 @@ public class IssueProjectCategoryDictDTO implements Serializable {
*/
private Integer sort;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0未删除、1已删除
*/
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectCategoryDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectCategoryDTO.java
index 3ca8dc43fc..07ab948199 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectCategoryDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProjectCategoryDTO.java
@@ -64,6 +64,16 @@ public class ProjectCategoryDTO implements Serializable {
*/
private String categoryPids;
+ /**
+ * 分类编码,分类编码+customer_id唯一
+ */
+ private String categoryCode;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0未删除、1已删除
*/
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/CategoryDictDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/CategoryDictDataFormDTO.java
new file mode 100644
index 0000000000..bd88161f54
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/CategoryDictDataFormDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dto.screen;
+
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import com.epmet.dto.screen.form.CategoryDictFormDTO;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 项目分类字典上报
+ * @Auther: zhangyong
+ * @Date: 2021-03-22
+ */
+@Data
+public class CategoryDictDataFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 当isFirst=true时,直接根据 customerId 删除原有数据,再批量insert。
+ */
+ private Boolean isFirst;
+
+ private List dataList;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java
index 50afc350ef..0406fb26f2 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java
@@ -17,11 +17,10 @@
package com.epmet.dto.screen;
-import java.io.Serializable;
-import java.util.Date;
import lombok.Data;
-import java.math.BigDecimal;
+import java.io.Serializable;
+import java.util.Date;
/**
* 项目(事件)分类按网格_按天统计
@@ -67,9 +66,7 @@ public class ScreenProjectCategoryGridDailyDTO implements Serializable {
/**
* e世通中的项目类别编码
*/
- private String epmetCategoryCode;
-
- private String epmetCategoryName;
+ private String categoryCode;
/**
* 该分类下所有项目总数
@@ -77,39 +74,9 @@ public class ScreenProjectCategoryGridDailyDTO implements Serializable {
private Integer projectTotal;
/**
- * 该分类下,正在处理中的项目总数
- */
- private Integer pendingTotal;
-
- /**
- * 该分类下已结案的项目总数
- */
- private Integer closedTotal;
-
- /**
- * 该分类下已结案无需解决的项目总数
- */
- private Integer unResolvedTotal;
-
- /**
- * 该分类下已结案已解决的项目总数
- */
- private Integer resolvedTotal;
-
- /**
- * 该分类下项目结案率
- */
- private BigDecimal closedRatio;
-
- /**
- * 该分类下已结案项目解决率
- */
- private BigDecimal resolvedRatio;
-
- /**
- * 该分类下已结案项目未解决率
+ * 分类等级1、2....
*/
- private BigDecimal unResolvedRatio;
+ private Integer level;
/**
* 删除标识
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryOrgDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryOrgDailyDTO.java
index 49c85be67e..117db2716c 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryOrgDailyDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryOrgDailyDTO.java
@@ -17,11 +17,10 @@
package com.epmet.dto.screen;
-import java.io.Serializable;
-import java.util.Date;
import lombok.Data;
-import java.math.BigDecimal;
+import java.io.Serializable;
+import java.util.Date;
/**
* 项目(事件)分类按组织_按天统计
@@ -72,9 +71,7 @@ public class ScreenProjectCategoryOrgDailyDTO implements Serializable {
/**
* e世通中的项目类别编码
*/
- private String epmetCategoryCode;
-
- private String epmetCategoryName;
+ private String categoryCode;
/**
* 该分类下所有项目总数
@@ -82,39 +79,9 @@ public class ScreenProjectCategoryOrgDailyDTO implements Serializable {
private Integer projectTotal;
/**
- * 该分类下,正在处理中的项目总数
- */
- private Integer pendingTotal;
-
- /**
- * 该分类下已结案的项目总数
- */
- private Integer closedTotal;
-
- /**
- * 该分类下已结案无需解决的项目总数
- */
- private Integer unResolvedTotal;
-
- /**
- * 该分类下已结案已解决的项目总数
- */
- private Integer resolvedTotal;
-
- /**
- * 该分类下项目结案率
- */
- private BigDecimal closedRatio;
-
- /**
- * 该分类下已结案项目解决率
- */
- private BigDecimal resolvedRatio;
-
- /**
- * 该分类下已结案项目未解决率
+ * 分类等级1、2....
*/
- private BigDecimal unResolvedRatio;
+ private Integer level;
/**
* 删除标识
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/CategoryDictFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/CategoryDictFormDTO.java
new file mode 100644
index 0000000000..f60c33faa4
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/CategoryDictFormDTO.java
@@ -0,0 +1,72 @@
+package com.epmet.dto.screen.form;
+
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 项目分类字典上报
+ * @Auther: zhangyong
+ * @Date: 2021-03-22
+ */
+@Data
+public class CategoryDictFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+// public interface ExtractDailyForm extends CustomerClientShowGroup {}
+
+ /**
+ * 客户内自己的分类编码
+ */
+// @NotBlank(message = "客户分类编码不能为空", groups = { ExtractDailyForm.class })
+ private String categoryCode;
+
+ /**
+ * 客户内自己的分类名称
+ */
+// @NotBlank(message = "客户分类名称不能为空", groups = { ExtractDailyForm.class })
+ private String categoryName;
+
+ /**
+ * 父类分类编码,如果是一级分类,此列赋值为0
+ */
+// @NotBlank(message = "父类分类编码不能为空", groups = { ExtractDailyForm.class })
+ private String parentCategoryCode;
+
+ /**
+ * 分类等级:1、2....;
+ */
+// @NotBlank(message = "分类等级不能为空", groups = { ExtractDailyForm.class })
+ private Integer level;
+
+ /**
+ * 排序
+ */
+// @NotBlank(message = "排序不能为空", groups = { ExtractDailyForm.class })
+ private Integer sort;
+
+ /**
+ * 当前分类对应产品内的分类编码,如果对应不上,此列传空
+ */
+ private String epmetCategoryCode;
+
+ /**
+ * 原始创建时间yyyy-MM-dd HH:mm:ss
+ */
+ private String originCreatedTime;
+
+ /**
+ * 原始更新时间yyyy-MM-dd HH:mm:ss
+ */
+ private String orginUpdatedTime;
+
+ /**
+ * 分类字典表主键
+ */
+// @NotBlank(message = "分类字典表主键不能为空", groups = { ExtractDailyForm.class })
+ private String categoryId;
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java
index 3e2a78b716..68dedbd4a0 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java
@@ -1,7 +1,6 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
-import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.AgencySubDeptTreeDto;
import com.epmet.dto.AgencySubTreeDto;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
@@ -105,6 +104,13 @@ public class DimController {
} catch (Exception e) {
logger.error("初始化按周维度失败:", e);
}
+ //项目分类字典维度 初始化 每天晚上凌晨10分执行
+ try {
+ statsDimService.customerInitProjectCategory();
+ logger.info("初始化项目分类成功");
+ } catch (Exception e) {
+ logger.error("初始化项目分类失败:", e);
+ }
return new Result();
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenProjectDataCollController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenProjectDataCollController.java
index 0af70355e9..d51ca41f31 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenProjectDataCollController.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenProjectDataCollController.java
@@ -3,16 +3,15 @@ package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.screen.*;
+import com.epmet.dto.screen.form.CategoryDictFormDTO;
import com.epmet.dto.screen.form.ScreenProjectDataInfoFormDTO;
import com.epmet.dto.screen.form.ScreenProjectProcessFormDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.service.evaluationindex.screen.*;
+import com.epmet.service.stats.CustomerProjectCategoryDictService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
/**
* @Description 事件/项目采集接口入口
@@ -41,7 +40,8 @@ public class ScreenProjectDataCollController {
private ScreenProjectDataService projectDataService;
@Autowired
private ScreenProjectProcessService projectProcessService;
-
+ @Autowired
+ private CustomerProjectCategoryDictService customerProjectCategoryDictService;
/**
* @author wangc
* @description 【事件/项目分析】网格内月度数量统计
@@ -152,4 +152,19 @@ public class ScreenProjectDataCollController {
return new Result();
}
+ /**
+ * 项目分类字典上报
+ * 目标表:epmet_evaluation_index库的customer_project_category_dict
+ *
+ * @param customerId
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 16:03 2021-03-22
+ **/
+ @PostMapping("uploadcategorydict")
+ public Result uploadcategorydict(@RequestHeader("CustomerId") String customerId, @RequestBody CategoryDictDataFormDTO formDTO) {
+ customerProjectCategoryDictService.uploadCategoryDict(customerId, formDTO);
+ return new Result();
+ }
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java
new file mode 100644
index 0000000000..537468724a
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao.evaluationindex.extract;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.evaluationindex.extract.FactOriginProjectCategoryDailyEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 项目所属分类表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+@Mapper
+public interface FactOriginProjectCategoryDailyDao extends BaseDao {
+
+ void deleteOldData(@Param("customerId") String customerId,@Param("dateId") String dateId);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/IssueProjectCategoryDictDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/IssueProjectCategoryDictDao.java
new file mode 100644
index 0000000000..371cda3cf2
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/IssueProjectCategoryDictDao.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao.issue;
+
+import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 议题项目分类字典
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-08
+ */
+@Mapper
+public interface IssueProjectCategoryDictDao {
+
+ List listInsertCategoies(@Param("start") Date start, @Param("end") Date end);
+
+ List listByUpdatedTime(@Param("start") Date start, @Param("end") Date end);
+
+ IssueProjectCategoryDictEntity getById(@Param("customerId")String customerId, @Param("id")String id);;
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java
index 9d64b829da..2d3318c262 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java
@@ -133,4 +133,6 @@ public interface ProjectDao extends BaseDao {
* @date 2021.03.08 23:44
*/
List selectProjectCategory(@Param("list")List list);
-}
\ No newline at end of file
+
+ List getProjectCategoryData(@Param("customerId") String customerId, @Param("dateId") String dateId);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/CustomerProjectCategoryDictDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/CustomerProjectCategoryDictDao.java
new file mode 100644
index 0000000000..3489fc5917
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/CustomerProjectCategoryDictDao.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao.stats;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.screen.form.CategoryDictFormDTO;
+import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 客户项目分类字典表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+@Mapper
+public interface CustomerProjectCategoryDictDao extends BaseDao {
+
+ CustomerProjectCategoryDictEntity getLatestProjectCategory();
+
+ CustomerProjectCategoryDictEntity getLatestUpdatedEntity();
+
+ CustomerProjectCategoryDictEntity selectByCustomerIdAndId(@Param("customerId") String customerId, @Param("categoryId") String categoryId);
+
+ /**
+ * 当isFirst=true时,直接根据 customerId 删除原有数据,再批量insert。
+ *
+ * @param customerId
+ * @return java.lang.Integer
+ * @Author zhangyong
+ * @Date 16:12 2021-03-22
+ **/
+ Integer deleteCustomerProjectCategoryDict(@Param("customerId") String customerId);
+
+ /**
+ * 批量insert。
+ *
+ * @param list
+ * @param customerId
+ * @return void
+ * @Author zhangyong
+ * @Date 16:13 2021-03-22
+ **/
+ void batchInsertCustomerProjectCategoryDict(@Param("list") List list, @Param("customerId")String customerId);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectCategoryDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectCategoryDailyEntity.java
new file mode 100644
index 0000000000..4587577a2d
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectCategoryDailyEntity.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity.evaluationindex.extract;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 项目所属分类表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("fact_origin_project_category_daily")
+public class FactOriginProjectCategoryDailyEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 项目id
+ */
+ private String projectId;
+
+ /**
+ * 分类编码
+ */
+ private String categoryCode;
+
+ /**
+ * 所属父类分类编码
+ */
+ private String parentCategoryCode;
+
+ /**
+ * 分类等级:1、2....;产品目前只有2级分类
+ */
+ private Integer level;
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java
index ef91f696c2..82b03555ac 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java
@@ -18,14 +18,10 @@
package com.epmet.entity.evaluationindex.screen;
import com.baomidou.mybatisplus.annotation.TableName;
-
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.math.BigDecimal;
-import java.util.Date;
-
/**
* 项目(事件)分类按网格_按天统计
*
@@ -65,50 +61,17 @@ public class ScreenProjectCategoryGridDailyEntity extends BaseEpmetEntity {
private String pids;
/**
- * e世通中的项目类别编码
+ * 项目类别编码
*/
- private String epmetCategoryCode;
-
- private String epmetCategoryName;
+ private String categoryCode;
/**
* 该分类下所有项目总数
*/
private Integer projectTotal;
- /**
- * 该分类下,正在处理中的项目总数
- */
- private Integer pendingTotal;
-
- /**
- * 该分类下已结案的项目总数
- */
- private Integer closedTotal;
-
- /**
- * 该分类下已结案无需解决的项目总数
- */
- private Integer unResolvedTotal;
-
- /**
- * 该分类下已结案已解决的项目总数
- */
- private Integer resolvedTotal;
-
- /**
- * 该分类下项目结案率
- */
- private BigDecimal closedRatio;
-
- /**
- * 该分类下已结案项目解决率
- */
- private BigDecimal resolvedRatio;
-
- /**
- * 该分类下已结案项目未解决率
- */
- private BigDecimal unResolvedRatio;
-
+ /**
+ * 分类等级1、2....
+ */
+ private Integer level;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java
index 1ac6c76145..5c097997a6 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java
@@ -18,14 +18,10 @@
package com.epmet.entity.evaluationindex.screen;
import com.baomidou.mybatisplus.annotation.TableName;
-
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.math.BigDecimal;
-import java.util.Date;
-
/**
* 项目(事件)分类按组织_按天统计
*
@@ -72,48 +68,15 @@ public class ScreenProjectCategoryOrgDailyEntity extends BaseEpmetEntity {
/**
* e世通中的项目类别编码
*/
- private String epmetCategoryCode;
-
- private String epmetCategoryName;
+ private String categoryCode;
/**
* 该分类下所有项目总数
*/
private Integer projectTotal;
- /**
- * 该分类下,正在处理中的项目总数
- */
- private Integer pendingTotal;
-
- /**
- * 该分类下已结案的项目总数
- */
- private Integer closedTotal;
-
- /**
- * 该分类下已结案无需解决的项目总数
- */
- private Integer unResolvedTotal;
-
- /**
- * 该分类下已结案已解决的项目总数
- */
- private Integer resolvedTotal;
-
- /**
- * 该分类下项目结案率
- */
- private BigDecimal closedRatio;
-
- /**
- * 该分类下已结案项目解决率
- */
- private BigDecimal resolvedRatio;
-
- /**
- * 该分类下已结案项目未解决率
- */
- private BigDecimal unResolvedRatio;
-
+ /**
+ * 分类等级1、2....
+ */
+ private Integer level;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/issue/IssueProjectCategoryDictEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/issue/IssueProjectCategoryDictEntity.java
new file mode 100644
index 0000000000..67c82fee00
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/issue/IssueProjectCategoryDictEntity.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity.issue;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 议题项目分类字典
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-08
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("issue_project_category_dict")
+public class IssueProjectCategoryDictEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户id, 产品默认default
+ */
+ private String customerId;
+
+ /**
+ * 上级分类ID 顶级此列存储0
+ */
+ private String pid;
+
+ /**
+ * 所有上级分类ID,用逗号分开
+ */
+ private String pids;
+
+ /**
+ * 上级分类编码
+ */
+ private String parentCategoryCode;
+
+ /**
+ * 分类编码,分类编码+customer_id唯一
+ */
+ private String categoryCode;
+
+ /**
+ * 分类名称
+ */
+ private String categoryName;
+
+ /**
+ * 分类类别1,2,3,4....
+ */
+ private String categoryType;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/CustomerProjectCategoryDictEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/CustomerProjectCategoryDictEntity.java
new file mode 100644
index 0000000000..82afefb88c
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/CustomerProjectCategoryDictEntity.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity.stats;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 客户项目分类字典表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("customer_project_category_dict")
+public class CustomerProjectCategoryDictEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 外部客户:external;内部客户:internal
+ */
+ private String customerType;
+
+ /**
+ * 客户自己的分类编码
+ */
+ private String categoryCode;
+
+ /**
+ * 客户自己的分类名称
+ */
+ private String categoryName;
+
+ /**
+ * 父类分类编码,如果是一级分类,此列赋值为0
+ */
+ private String parentCategoryCode;
+
+ /**
+ * 分类等级:1、2....;产品只有2级分类
+ */
+ private Integer level;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
+ /**
+ * 对应e世通中的分类编码,没有此列为空
+ */
+ private String epmetCategoryCode;
+
+ /**
+ * 创建时间
+ */
+ private Date originCreatedTime;
+ /**
+ * 修改时间
+ */
+ private Date originUpdatedTime;
+
+ private String categoryId;
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueProjectCategoryDictService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueProjectCategoryDictService.java
new file mode 100644
index 0000000000..4d2a96f7be
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueProjectCategoryDictService.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.Issue;
+
+import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 议题项目分类字典
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-12-08
+ */
+
+public interface IssueProjectCategoryDictService{
+
+ List listInsertCategoies(Date start, Date end);
+
+ List listByUpdatedTime(Date start, Date end);
+
+ IssueProjectCategoryDictEntity getById(String customerId,String id);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java
index 22201f81ab..b920c0e29a 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java
@@ -176,7 +176,7 @@ public interface IssueService {
List selectIssueVoteStatis(String customerId, String monthId);
/**
- * @Description 查找项目的分类名称 以-相连
+ * @Description 查找项目的分类名称 以-相连,以,分隔,
* @param param
* @return java.util.Map
* @author wangc
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueProjectCategoryDictServiceImpl.java
new file mode 100644
index 0000000000..982030799f
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueProjectCategoryDictServiceImpl.java
@@ -0,0 +1,42 @@
+package com.epmet.service.Issue.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.dao.issue.IssueProjectCategoryDictDao;
+import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
+import com.epmet.service.Issue.IssueProjectCategoryDictService;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 描述一下
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/3/19 15:29
+ */
+@Service
+@DataSource(DataSourceConstant.GOV_ISSUE)
+public class IssueProjectCategoryDictServiceImpl implements IssueProjectCategoryDictService {
+ @Autowired
+ private IssueProjectCategoryDictDao issueProjectCategoryDictDao;
+
+ @Override
+ public List listInsertCategoies(Date start, Date end) {
+ return issueProjectCategoryDictDao.listInsertCategoies(start, end);
+ }
+
+ @Override
+ public List listByUpdatedTime(Date start, Date end) {
+ return issueProjectCategoryDictDao.listByUpdatedTime(start, end);
+ }
+
+ @Override
+ public IssueProjectCategoryDictEntity getById(String customerId, String id) {
+ return issueProjectCategoryDictDao.getById(customerId,id);
+ }
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java
index 4ad4e58488..44578a426a 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java
@@ -2,6 +2,7 @@ package com.epmet.service.Issue.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.issue.StatsIssueDao;
import com.epmet.dto.extract.result.IssueInfoResultDTO;
@@ -146,14 +147,22 @@ public class IssueServiceImpl implements IssueService {
return statsIssueDao.selectIssueVoteStatis(customerId, dateId);
}
+ /**
+ * @Description 查找项目的分类名称 以-相连,以,分隔,
+ * @param param
+ * @return java.util.Map
+ * @author wangc
+ * @date 2021.03.09 00:23
+ */
@Override
public Map getIntegratedProjectCategory(Map> param,String customerId) {
Map map = new HashMap<>();
param.forEach((projectId,categoryIds) -> {
+ //以下查询只适用于二级分类,如果分类层级变多了要修改此查询
List categories = statsIssueDao.selectCategory(customerId, categoryIds);
if(!CollectionUtils.isEmpty(categories)){
StringBuilder str = new StringBuilder();
- categories.forEach(category -> {str.append(category.getCategoryName()).append("-");});
+ categories.forEach(category -> {str.append(category.getCategoryName()).append(StrConstant.COMMA);});
map.put(projectId,str.substring(NumConstant.ZERO,str.length() - NumConstant.TWO));
}
});
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsDimService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsDimService.java
index 1e2f05991b..0bdac4cb04 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsDimService.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsDimService.java
@@ -10,4 +10,6 @@ public interface StatsDimService {
void initCustomerDim();
void initDepartmentDim();
+
+ void customerInitProjectCategory();
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java
new file mode 100644
index 0000000000..70b5a73adb
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.evaluationindex.extract.todata;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.dto.extract.form.ExtractOriginFormDTO;
+import com.epmet.entity.evaluationindex.extract.FactOriginProjectCategoryDailyEntity;
+
+/**
+ * 项目所属分类表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+public interface FactOriginProjectCategoryDailyService extends BaseService {
+ /**
+ * @Description 将epmet_gov_project库中的项目分类信息(project_category)同步到统计库epmet_data_statistical
+ * @param paramNew
+ * @return void
+ * @Author liushaowen
+ * @Date 2021/3/22 15:28
+ */
+ void extractProjectCategory(ExtractOriginFormDTO paramNew);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java
index f44eef01de..d35cee00ee 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java
@@ -46,7 +46,8 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService {
private GroupExtractService groupExtractService;
@Autowired
private DimCustomerPartymemberService dimCustomerPartymemberService;
-
+ @Autowired
+ private FactOriginProjectCategoryDailyService originProjectCategoryDailyService;
@Override
public void extractAll(ExtractOriginFormDTO extractOriginFormDTO) {
@@ -200,6 +201,11 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService {
} catch (Exception e) {
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
+ try {
+ originProjectCategoryDailyService.extractProjectCategory(paramNew);
+ } catch (Exception e) {
+ log.error("抽取【项目分类数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
+ }
} else {
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
@@ -219,6 +225,16 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService {
} catch (Exception e) {
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
+ try {
+ for (int i = 0; i < finalDaysBetween.size(); i++) {
+ String dateDimId = finalDaysBetween.get(i);
+ paramNew.setDateId(dateDimId);
+ originProjectCategoryDailyService.extractProjectCategory(paramNew);
+ }
+ } catch (Exception e) {
+ log.error("抽取【项目分类数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
+ }
+
}
});
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java
new file mode 100644
index 0000000000..3f9a27c34b
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java
@@ -0,0 +1,108 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.evaluationindex.extract.todata.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.dao.evaluationindex.extract.FactOriginProjectCategoryDailyDao;
+import com.epmet.dto.ProjectCategoryDTO;
+import com.epmet.dto.extract.form.ExtractOriginFormDTO;
+import com.epmet.entity.evaluationindex.extract.FactOriginProjectCategoryDailyEntity;
+import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
+import com.epmet.service.Issue.IssueProjectCategoryDictService;
+import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectCategoryDailyService;
+import com.epmet.service.project.ProjectService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 项目所属分类表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+@Service
+@DataSource(DataSourceConstant.STATS)
+@Slf4j
+public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl implements FactOriginProjectCategoryDailyService {
+ @Autowired
+ private ProjectService projectService;
+ @Autowired
+ private IssueProjectCategoryDictService issueProjectCategoryDictService;
+ /**
+ * @param extractOriginFormDTO
+ * @return void
+ * @Description 将epmet_gov_project库中的项目分类信息(project_category)同步到统计库epmet_data_statistical
+ * @Author liushaowen
+ * @Date 2021/3/22 15:28
+ */
+ @Override
+ public void extractProjectCategory(ExtractOriginFormDTO extractOriginFormDTO) {
+ String dateString = extractOriginFormDTO.getDateId();
+ String customerId = extractOriginFormDTO.getCustomerId();
+ List entities = new ArrayList<>();
+ Integer count = baseDao.selectCount(new QueryWrapper().eq("customer_id",customerId));
+ //如果count = 0 初始化该customer所有数据
+ if (NumConstant.ZERO == count){
+ dateString = null;
+ }
+ List projectCategoryData = projectService.getProjectCategoryData(customerId, dateString);
+ if (!CollectionUtils.isEmpty(projectCategoryData)){
+ projectCategoryData.forEach(data->{
+ FactOriginProjectCategoryDailyEntity insertEntity = new FactOriginProjectCategoryDailyEntity();
+ IssueProjectCategoryDictEntity categoryDictEntity = issueProjectCategoryDictService.getById(customerId, data.getCategoryId());
+ if (categoryDictEntity == null){
+ log.warn("categoryDict not found : customerId:{},categoryId:{}",customerId,data.getCategoryId());
+ }
+ insertEntity.setProjectId(data.getProjectId());
+ insertEntity.setCategoryCode(categoryDictEntity.getCategoryCode());
+ insertEntity.setParentCategoryCode(categoryDictEntity.getParentCategoryCode());
+ insertEntity.setCustomerId(customerId);
+ insertEntity.setLevel(Integer.valueOf(categoryDictEntity.getCategoryType()));
+ insertEntity.setCreatedTime(data.getCreatedTime());
+ entities.add(insertEntity);
+ });
+ if (!CollectionUtils.isEmpty(entities)){
+ delAndInsert(customerId,dateString,entities);
+ }
+ }
+ }
+ /**
+ * @Description category表删除插入
+ * @param customerId
+ * @param dateId
+ * @param result
+ * @return void
+ * @Author liushaowen
+ * @Date 2021/3/22 17:01
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void delAndInsert(String customerId,String dateId,List result){
+ baseDao.deleteOldData(customerId, dateId);
+ insertBatch(result);
+ }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
index 37eae6ac60..e145f3e1bf 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
@@ -11,10 +11,7 @@ import com.epmet.dto.indexcal.CalculateCommonFormDTO;
import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO;
import com.epmet.service.evaluationindex.extract.toscreen.*;
import com.epmet.service.evaluationindex.indexcal.IndexCalculateService;
-import com.epmet.service.evaluationindex.screen.ScreenProjectGridDailyService;
-import com.epmet.service.evaluationindex.screen.ScreenProjectOrgDailyService;
-import com.epmet.service.evaluationindex.screen.ScreenProjectQuantityGridMonthlyService;
-import com.epmet.service.evaluationindex.screen.ScreenProjectQuantityOrgMonthlyService;
+import com.epmet.service.evaluationindex.screen.*;
import com.epmet.service.stats.DimCustomerService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -68,6 +65,8 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
private ScreenProjectOrgDailyService screenProjectOrgDailyService;
@Autowired
private ScreenProjectSettleService screenProjectSettleService;
+ @Autowired
+ private ScreenProjectCategoryGridDailyService projectCategoryGridDailyService;
/**
* @param extractOriginFormDTO
@@ -197,12 +196,19 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
}catch (Exception e){
log.error("项目(事件)分析按组织_按天统计失败,customerId为:"+customerId+"dateId为:"+dateId, e);
}
+ //项目分类打标签未上线,暂时屏蔽
try{
//大屏项目数据抽取_按天抽取
screenProjectSettleService.extractScreenData(param);
}catch (Exception e){
log.error("大屏项目数据抽取_按天抽取_按天统计失败,customerId为:"+customerId+"dateId为:"+dateId, e);
}
+ //按天统计:网格内各个分类下的项目总数
+ try{
+ projectCategoryGridDailyService.extractProjectCategoryData(customerId,dateId);
+ }catch(Exception e){
+ log.error("按天统计:网格内各个分类下的项目总数,customerId为:"+customerId+"dateId为:"+dateId, e);
+ }
log.info("===== extractDaily method end ======");
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryGridDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryGridDailyService.java
index da711d85e3..4fcb249db1 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryGridDailyService.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryGridDailyService.java
@@ -102,4 +102,14 @@ public interface ScreenProjectCategoryGridDailyService extends BaseService param);
+
+ /**
+ * @return void
+ * @param customerId
+ * @param dateId
+ * @author yinzuomei
+ * @description 产品内部计算:网格内按分类统计项目数量
+ * @Date 2021/3/22 16:46
+ **/
+ void extractProjectCategoryData(String customerId, String dateId);
}
\ No newline at end of file
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridDailyServiceImpl.java
index acc891ac1a..a7be71b6ae 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridDailyServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryGridDailyServiceImpl.java
@@ -128,4 +128,17 @@ public class ScreenProjectCategoryGridDailyServiceImpl extends BaseServiceImpl newDimGrids = getNewDimGrids();
@@ -264,4 +272,47 @@ public class StatsDimServiceImpl implements StatsDimService {
}
return new ArrayList<>();
}
+
+ /**
+ * @return void
+ * @author yinzuomei
+ * @description 初始化项目分类字典表
+ * @Date 2021/3/19 15:44
+ **/
+ @Override
+ public void customerInitProjectCategory() {
+ Date now = new Date();
+ List insertCategoies = listInsertCategoies();
+ List updateCategoies = listUpdateCategoies(now);
+ projectCategoryDictService.initProjectCategory(insertCategoies,updateCategoies);
+ }
+
+ /**
+ * @author yinzuomei
+ * @description 构造需要插入的分类字典
+ * @Date 2021/3/19 15:52
+ **/
+ private List listInsertCategoies() {
+ CustomerProjectCategoryDictEntity lastInsertProjectCategory = projectCategoryDictService.getLatestProjectCategory();
+ Date now = new Date();
+ Date lastInitTime = null;
+ if (null != lastInsertProjectCategory) {
+ lastInitTime = lastInsertProjectCategory.getOriginCreatedTime();
+ }
+ return issueProjectCategoryDictService.listInsertCategoies(lastInitTime, now);
+ }
+
+ /**
+ * @param initTime
+ * @author yinzuomei
+ * @description
+ * @Date 2021/3/19 15:55
+ **/
+ private List listUpdateCategoies(Date initTime) {
+ CustomerProjectCategoryDictEntity lastUpdated = projectCategoryDictService.getLatestUpdatedEntity();
+ if (lastUpdated != null) {
+ return issueProjectCategoryDictService.listByUpdatedTime(lastUpdated.getOriginUpdatedTime(), initTime);
+ }
+ return new ArrayList<>();
+ }
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java
index 6f283b852a..56a99d5257 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java
@@ -18,6 +18,7 @@
package com.epmet.service.project;
import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.dto.ProjectCategoryDTO;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.project.ProjectAgencyDTO;
import com.epmet.dto.project.ProjectGridDTO;
@@ -141,4 +142,14 @@ public interface ProjectService extends BaseService {
*/
Map> getProjectCategory(List projectIds);
-}
\ No newline at end of file
+ /**
+ * @Description 抽取project_category
+ * @param customerId
+ * @param dateId
+ * @return java.util.List
+ * @Author liushaowen
+ * @Date 2021/3/22 15:44
+ */
+ List getProjectCategoryData(String customerId, String dateId);
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
index 294d0e4f31..d2a3ff001d 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
@@ -150,6 +150,18 @@ public class ProjectServiceImpl extends BaseServiceImpl
+ * @Description 抽取project_category
+ * @Author liushaowen
+ * @Date 2021/3/22 15:44
+ */
+ @Override
+ public List getProjectCategoryData(String customerId, String dateId) {
+ return baseDao.getProjectCategoryData(customerId,dateId);
+ }
-}
\ No newline at end of file
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java
new file mode 100644
index 0000000000..1b37c9448a
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.stats;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.dto.screen.CategoryDictDataFormDTO;
+import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
+import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
+
+import java.util.List;
+
+/**
+ * 客户项目分类字典表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+public interface CustomerProjectCategoryDictService extends BaseService {
+
+ void initProjectCategory(List insertCategoies,
+ List updateCategoies);
+
+ /**
+ * @author yinzuomei
+ * @description 获取内部客户最近一次初始记录
+ * @Date 2021/3/19 14:57
+ **/
+ CustomerProjectCategoryDictEntity getLatestProjectCategory();
+
+ CustomerProjectCategoryDictEntity getLatestUpdatedEntity();
+
+ /**
+ * 项目分类字典上报
+ * 目标表:epmet_evaluation_index库的customer_project_category_dict
+ *
+ * @param customerId
+ * @param formDTO
+ * @return void
+ * @Author zhangyong
+ * @Date 16:03 2021-03-22
+ **/
+ void uploadCategoryDict(String customerId, CategoryDictDataFormDTO formDTO);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java
new file mode 100644
index 0000000000..455039a2a9
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.stats.impl;
+
+import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.constant.DataSourceConstant;
+import com.epmet.dao.stats.CustomerProjectCategoryDictDao;
+import com.epmet.dto.screen.CategoryDictDataFormDTO;
+import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
+import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
+import com.epmet.service.stats.CustomerProjectCategoryDictService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.apache.commons.collections4.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 客户项目分类字典表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-03-19
+ */
+@Slf4j
+@DataSource(DataSourceConstant.EVALUATION_INDEX)
+@Service
+public class CustomerProjectCategoryDictServiceImpl extends BaseServiceImpl implements CustomerProjectCategoryDictService {
+
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX)
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void initProjectCategory(List insertCategoies, List updateCategoies) {
+ log.info(String.format("=============需要插入的条数=%s,更新的条数=%s",insertCategoies.size(),updateCategoies.size()));
+ insertCategoies.forEach(insertEntity -> {
+ CustomerProjectCategoryDictEntity entityInsert=new CustomerProjectCategoryDictEntity();
+ entityInsert.setCustomerId(insertEntity.getCustomerId());
+ entityInsert.setCustomerType("internal");
+ entityInsert.setCategoryCode(insertEntity.getCategoryCode());
+ entityInsert.setCategoryName(insertEntity.getCategoryName());
+ entityInsert.setParentCategoryCode(insertEntity.getParentCategoryCode());
+ entityInsert.setLevel(Integer.valueOf(insertEntity.getCategoryType()));
+ entityInsert.setSort(insertEntity.getSort());
+ entityInsert.setIsDisable(insertEntity.getIsDisable());
+ entityInsert.setOriginCreatedTime(insertEntity.getCreatedTime());
+ entityInsert.setOriginUpdatedTime(insertEntity.getUpdatedTime());
+ entityInsert.setCategoryId(insertEntity.getId());
+ baseDao.insert(entityInsert);
+ });
+ updateCategoies.forEach(updatedEntity -> {
+ CustomerProjectCategoryDictEntity entity=baseDao.selectByCustomerIdAndId(updatedEntity.getCustomerId(),updatedEntity.getId());
+ if(null!=entity){
+ entity.setCategoryCode(updatedEntity.getCategoryCode());
+ entity.setCategoryName(updatedEntity.getCategoryName());
+ entity.setParentCategoryCode(updatedEntity.getParentCategoryCode());
+ entity.setLevel(Integer.valueOf(updatedEntity.getCategoryType()));
+ entity.setSort(updatedEntity.getSort());
+ entity.setIsDisable(updatedEntity.getIsDisable());
+ entity.setOriginCreatedTime(updatedEntity.getCreatedTime());
+ entity.setOriginUpdatedTime(updatedEntity.getUpdatedTime());
+ }
+ baseDao.updateById(entity);
+ });
+ }
+
+ /**
+ * @author yinzuomei
+ * @description 获取内部客户最近一次初始记录
+ * @Date 2021/3/19 14:57
+ **/
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX)
+ @Override
+ public CustomerProjectCategoryDictEntity getLatestProjectCategory() {
+ return baseDao.getLatestProjectCategory();
+ }
+
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX)
+ @Override
+ public CustomerProjectCategoryDictEntity getLatestUpdatedEntity() {
+ return baseDao.getLatestUpdatedEntity();
+ }
+
+ @DataSource(value = DataSourceConstant.EVALUATION_INDEX)
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void uploadCategoryDict(String customerId, CategoryDictDataFormDTO formDTO) {
+ if (formDTO.getIsFirst()) {
+ int deleteNum;
+ do {
+ deleteNum = baseDao.deleteCustomerProjectCategoryDict(customerId);
+ } while (deleteNum > NumConstant.ZERO);
+ }
+ if (!CollectionUtils.isEmpty(formDTO.getDataList())) {
+ baseDao.batchInsertCustomerProjectCategoryDict(formDTO.getDataList(), customerId);
+ }
+ }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.10__add_project_category_analysis.sql b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.10__add_project_category_analysis.sql
new file mode 100644
index 0000000000..391bb2af03
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.10__add_project_category_analysis.sql
@@ -0,0 +1,47 @@
+-- epmet_data_statistical 库:
+drop table if exists fact_origin_project_category_daily;
+CREATE TABLE `fact_origin_project_category_daily` (
+ `ID` varchar(64) NOT NULL COMMENT '主键',
+ `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id',
+ `PROJECT_ID` varchar(64) NOT NULL COMMENT '项目id',
+ `CATEGORY_CODE` varchar(50) NOT NULL COMMENT '分类编码',
+ `PARENT_CATEGORY_CODE` varchar(50) NOT NULL COMMENT '所属父类分类编码',
+ `LEVEL` int(11) NOT NULL COMMENT '分类等级:1、2....;产品目前只有2级分类',
+ `DEL_FLAG` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除;1已删除',
+ `REVISION` int(11) NOT NULL COMMENT '乐观锁',
+ `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
+ `CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
+ `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
+ `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
+ PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目所属分类表';
+
+-- epmet_data_statistical_display 、epmet_evaluation_index:
+drop table if exists customer_project_category_dict;
+CREATE TABLE `customer_project_category_dict` (
+ `ID` varchar(64) NOT NULL COMMENT '主键',
+ `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id',
+ `CUSTOMER_TYPE` varchar(20) NOT NULL COMMENT '外部客户:external;内部客户:internal',
+ `CATEGORY_CODE` varchar(64) NOT NULL COMMENT '客户自己的分类编码',
+ `CATEGORY_NAME` varchar(500) CHARACTER SET utf8 NOT NULL COMMENT '客户自己的分类名称',
+ `PARENT_CATEGORY_CODE` varchar(64) NOT NULL COMMENT '父类分类编码,如果是一级分类,此列赋值为0',
+ `LEVEL` int(11) NOT NULL COMMENT '分类等级:1、2....;产品只有2级分类',
+ `SORT` int(11) unsigned NOT NULL COMMENT '排序',
+ `IS_DISABLE` varchar(32) CHARACTER SET utf8 NOT NULL COMMENT '是否禁用(enable:启用 disable:禁用)',
+ `EPMET_CATEGORY_CODE` varchar(64) DEFAULT NULL COMMENT '对应e世通中的分类编码,没有此列为空',
+ `ORIGIN_CREATED_TIME` datetime DEFAULT NULL COMMENT '原始创建时间',
+ `ORIGIN_UPDATED_TIME` datetime DEFAULT NULL COMMENT '原始更新时间',
+ `CATEGORY_ID` varchar(64) NOT NULL COMMENT '分类字典表主键',
+ `DEL_FLAG` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除;1已删除',
+ `REVISION` int(11) NOT NULL COMMENT '乐观锁',
+ `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
+ `CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
+ `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
+ `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
+ PRIMARY KEY (`ID`) USING BTREE,
+ UNIQUE KEY `UN_KEY` (`CUSTOMER_ID`,`CATEGORY_CODE`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='客户项目分类字典表';
+-- epmet_data_statistical_display 、epmet_evaluation_index:
+
+alter table screen_project_category_org_daily add column `LEVEL` int(11) NOT NULL COMMENT '分类等级1、2....';
+alter table screen_project_category_grid_daily add column `LEVEL` int(11) NOT NULL COMMENT '分类等级1、2....';
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
new file mode 100644
index 0000000000..73b0945d0b
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectCategoryDailyDao.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ DELETE
+ FROM
+ fact_origin_project_category_daily
+ WHERE
+ CUSTOMER_ID = #{customerId}
+
+ AND DATE_FORMAT(CREATED_TIME,'%Y%m%d') = #{dateId}
+
+
+
+
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml
index bc84c6b2df..e79da541d9 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml
@@ -3,29 +3,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
delete from screen_project_category_grid_daily
where customer_id = #{customerId}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml
index 5d8cd9a73a..20c4452e69 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml
@@ -2,31 +2,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
delete from screen_project_category_org_daily
where customer_id = #{customerId}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/IssueProjectCategoryDictDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/IssueProjectCategoryDictDao.xml
new file mode 100644
index 0000000000..50185c99cb
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/IssueProjectCategoryDictDao.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ SELECT
+ *
+ FROM
+ issue_project_category_dict
+
+ DEL_FLAG = 0
+ and CUSTOMER_ID !='default'
+
+ AND CREATED_TIME > #{start}
+
+
+ AND CREATED_TIME < #{end}
+
+
+ ORDER BY CREATED_TIME ASC
+
+
+
+
+ SELECT
+ *
+ FROM
+ issue_project_category_dict
+
+ DEL_FLAG = 0
+ and CUSTOMER_ID !='default'
+
+ AND UPDATED_TIME > #{start}
+
+
+ AND UPDATED_TIME < #{end}
+
+
+ ORDER BY UPDATED_TIME ASC
+
+
+
+ select *
+ from issue_project_category_dict
+ where del_flag = '0'
+ and customer_id = #{customerId}
+ and id = #{id}
+
+
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml
index b4619ff0a2..ce72f989f2 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml
@@ -290,35 +290,15 @@
SELECT
- *
- FROM (
-
- SELECT
-
- *
-
- FROM issue_project_category_dict
- WHERE DEL_FLAG = '0'
- AND CUSTOMER_ID = #{customerId}
-
- id = #{id}
-
- UNION
- SELECT
-
- *
-
- FROM issue_project_category_dict outter
- WHERE outter.DEL_FLAG = '0'
- AND outter.CUSTOMER_ID = 'default'
+ a.ID,
+ IF(a.CATEGORY_TYPE = '2',concat(b.CATEGORY_NAME,'-',a.CATEGORY_NAME),a.CATEGORY_NAME) as categoryName
+ FROM issue_project_category_dict a
+ LEFT JOIN issue_project_category_dict b on a.pid = b.id and a.customer_id = b.customer_id
+ WHERE a.DEL_FLAG = '0'
+ AND a.CUSTOMER_ID = #{customerId}
- outter.id = #{id}
+ a.id = #{id}
- AND NOT EXISTS (
- SELECT * FROM issue_project_category_dict WHERE del_flag = '0' AND
- customer_id = #{customerId} and id = outter.id
- )
- ) temp
- order by temp.category_type,temp.sort
+ order by a.category_type,a.sort
\ No newline at end of file
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 2a8699d341..ec1cf07215 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
@@ -105,7 +105,7 @@
and CUSTOMER_ID = #{customerId}
and PARAMETER_KEY ='detention_days'
-
+
select
IF(customer_id = 'default' PARAMETER_KEY = 'detention_days',PARAMETER_VALUE,null) as defaultExceedLimit,
@@ -135,4 +135,14 @@
project_id = #{id}
-
\ No newline at end of file
+
+
+ select * from
+ `project_category`
+ where del_flag = '0'
+ and customer_id = #{customerId}
+
+ AND DATE_FORMAT(CREATED_TIME,'%Y%m%d')=#{dateId}
+
+
+
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/CustomerProjectCategoryDictDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/CustomerProjectCategoryDictDao.xml
new file mode 100644
index 0000000000..2802dc7625
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/CustomerProjectCategoryDictDao.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+ SELECT
+ *
+ FROM
+ customer_project_category_dict m
+ WHERE
+ m.DEL_FLAG = '0'
+ AND m.CUSTOMER_TYPE = 'internal'
+ ORDER BY
+ m.ORIGIN_CREATED_TIME DESC
+ LIMIT 1
+
+
+
+ SELECT
+ *
+ FROM
+ customer_project_category_dict m
+ WHERE
+ m.DEL_FLAG = '0'
+ AND m.CUSTOMER_TYPE = 'internal'
+ ORDER BY
+ m.ORIGIN_UPDATED_TIME DESC
+ LIMIT 1
+
+
+
+ SELECT
+ *
+ FROM
+ customer_project_category_dict m
+ WHERE
+ m.DEL_FLAG = '0'
+ and m.customer_id=#{customerId}
+ and m.CATEGORY_ID=#{categoryId}
+
+
+
+ delete from customer_project_category_dict
+ where CUSTOMER_ID = #{customerId}
+ limit 1000;
+
+
+
+ insert into customer_project_category_dict
+ (
+ ID,
+ CUSTOMER_ID,
+ CUSTOMER_TYPE,
+ CATEGORY_CODE,
+ CATEGORY_NAME,
+ PARENT_CATEGORY_CODE,
+ `LEVEL`,
+ SORT,
+ IS_DISABLE,
+ EPMET_CATEGORY_CODE,
+ ORIGIN_CREATED_TIME,
+ ORIGIN_UPDATED_TIME,
+ CATEGORY_ID,
+ DEL_FLAG,
+ REVISION,
+ CREATED_BY,
+ CREATED_TIME,
+ UPDATED_BY,
+ UPDATED_TIME
+ ) values
+
+ (
+ (SELECT REPLACE(UUID(), '-', '') AS id),
+ #{customerId},
+ 'external',
+ #{item.categoryCode},
+ #{item.categoryName},
+ #{item.parentCategoryCode},
+ #{item.level},
+ #{item.sort},
+ 'enable',
+ #{item.epmetCategoryCode},
+ #{item.originCreatedTime},
+ #{item.orginUpdatedTime},
+ #{item.categoryId},
+ 0,
+ 0,
+ 'APP_USER',
+ now(),
+ 'APP_USER',
+ now()
+ )
+
+
+
diff --git a/epmet-module/gov-issue/gov-issue-client/pom.xml b/epmet-module/gov-issue/gov-issue-client/pom.xml
index f77ec89656..9d07717da1 100644
--- a/epmet-module/gov-issue/gov-issue-client/pom.xml
+++ b/epmet-module/gov-issue/gov-issue-client/pom.xml
@@ -29,5 +29,11 @@
2.0.0
compile
+
+ com.epmet
+ data-report-client
+ 2.0.0
+ compile
+
-
\ No newline at end of file
+
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueCategoryDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueCategoryDTO.java
index 12d645937a..06d1f9d07d 100644
--- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueCategoryDTO.java
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueCategoryDTO.java
@@ -63,6 +63,16 @@ public class IssueCategoryDTO implements Serializable {
*/
private String categoryPids;
+ /**
+ * 分类编码,分类编码+customer_id唯一
+ */
+ private String categoryCode;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0未删除、1已删除
*/
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java
index d0df3169f5..a93a616cbf 100644
--- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java
@@ -53,6 +53,11 @@ public class IssueProjectCategoryDictDTO implements Serializable {
*/
private String pids;
+ /**
+ * 上级分类编码
+ */
+ private String parentCategoryCode;
+
/**
* 分类编码,分类编码+customer_id唯一
*/
@@ -73,6 +78,11 @@ public class IssueProjectCategoryDictDTO implements Serializable {
*/
private Integer sort;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0未删除、1已删除
*/
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectTagDictDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectTagDictDTO.java
index b13500e735..b07cf0042e 100644
--- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectTagDictDTO.java
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectTagDictDTO.java
@@ -68,6 +68,11 @@ public class IssueProjectTagDictDTO implements Serializable {
*/
private Integer projectUseCount;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0.未删除 1.已删除
*/
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueTagsDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueTagsDTO.java
index 6ca1c51c6a..87e464f4db 100644
--- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueTagsDTO.java
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueTagsDTO.java
@@ -63,6 +63,11 @@ public class IssueTagsDTO implements Serializable {
*/
private String tagName;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0.未删除 1.已删除
*/
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueSaveCategoryFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueSaveCategoryFormDTO.java
index 4a9ef489ba..299a2d25d2 100644
--- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueSaveCategoryFormDTO.java
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueSaveCategoryFormDTO.java
@@ -23,6 +23,12 @@ public class IssueSaveCategoryFormDTO implements Serializable {
* 议题分类集合
*/
private List categoryList;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
public interface SaveCategory{}
}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueTagsFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueTagsFormDTO.java
index 8cb89dc4d7..908edfba19 100644
--- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueTagsFormDTO.java
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueTagsFormDTO.java
@@ -43,6 +43,11 @@ public class IssueTagsFormDTO implements Serializable {
*/
private String name;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0.未删除 1.已删除
*/
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 38bc581f8c..c64e440d97 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
@@ -9,6 +9,8 @@ import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack;
+import com.epmet.project.dto.CustomerCategoryDTO;
+import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO;
@@ -272,4 +274,15 @@ public interface GovIssueOpenFeignClient {
@PostMapping("/gov/issue/issue/detail")
Result queryIssueDetail(@RequestBody IssueDetailFormDTO formDTO);
+
+ /**
+ * 获取客户 分类字典 信息
+ *
+ * @param dto
+ * @return com.epmet.commons.tools.utils.Result>
+ * @Author zhangyong
+ * @Date 14:10 2021-03-22
+ **/
+ @PostMapping(value = "/gov/issue/issueprojectcategorydict/getcustomercategorydict")
+ Result> getCustomerCategoryDict(@RequestBody CustomerCategoryDTO dto);
}
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 0046975f18..6b2254da05 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
@@ -10,6 +10,8 @@ import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.GovIssueOpenFeignClient;
+import com.epmet.project.dto.CustomerCategoryDTO;
+import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO;
@@ -237,4 +239,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient
public Result queryIssueDetail(IssueDetailFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "detail", formDTO);
}
+
+ @Override
+ public Result> getCustomerCategoryDict(CustomerCategoryDTO customerCategoryDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCustomerCategoryDict", customerCategoryDTO);
+ }
}
diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml
index 68e7b17d5b..673a33aeb9 100644
--- a/epmet-module/gov-issue/gov-issue-server/pom.xml
+++ b/epmet-module/gov-issue/gov-issue-server/pom.xml
@@ -96,6 +96,12 @@
2.0.0
compile
+
+ com.epmet
+ data-report-client
+ 2.0.0
+ compile
+
@@ -270,4 +276,4 @@
-
\ No newline at end of file
+
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCategoryController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCategoryController.java
index f8755d1037..cba3ed0825 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCategoryController.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCategoryController.java
@@ -17,9 +17,9 @@
package com.epmet.controller;
-import com.epmet.commons.tools.constant.NumConstant;
-import com.epmet.commons.tools.exception.RenException;
+import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
@@ -128,7 +128,8 @@ public class IssueCategoryController {
* @Author sun
**/
@PostMapping("save")
- public Result saveCategory(@RequestBody IssueSaveCategoryFormDTO formDTO) {
+ public Result saveCategory(@LoginUser TokenDto tokenDto, @RequestBody IssueSaveCategoryFormDTO formDTO) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO, IssueSaveCategoryFormDTO.SaveCategory.class);
issueCategoryService.saveCategory(formDTO);
return new Result();
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 16fb700639..cbd7c63190 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
@@ -29,10 +29,13 @@ 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.CategoryTagInitFormDTO;
+import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO;
import com.epmet.dto.form.ProjectSaveCategoryFormDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.dto.result.ProjectIssueCategoryResultDTO;
import com.epmet.excel.IssueProjectCategoryDictExcel;
+import com.epmet.project.dto.CustomerCategoryDTO;
+import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import com.epmet.service.IssueProjectCategoryDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -122,14 +125,14 @@ public class IssueProjectCategoryDictController {
}
/**
- * @param cstegoryIdList
+ * @param formDTO
* @return
* @Description 批量查询分类信息
* @Author sun
**/
@PostMapping("getcategorylist")
- public Result> getCategoryList(@RequestBody List cstegoryIdList) {
- return new Result>().ok(issueProjectCategoryDictService.getCategoryList(cstegoryIdList));
+ public Result> getCategoryList(@RequestBody IssueProjectCategoryDictListFormDTO formDTO) {
+ return new Result>().ok(issueProjectCategoryDictService.getCategoryList(formDTO));
}
/**
@@ -143,4 +146,41 @@ public class IssueProjectCategoryDictController {
return new Result().ok(issueProjectCategoryDictService.getProjectAndCategoryInfo(formDTO));
}
-}
\ No newline at end of file
+ /**
+ * @param formDTO
+ * @return
+ * @Description 分类启用与禁用
+ * @Author sun
+ **/
+ @PostMapping("isdisablecategory")
+ public Result isDisableCategory(@RequestBody ProjectSaveCategoryFormDTO formDTO) {
+ return new Result().ok(issueProjectCategoryDictService.isDisableCategory(formDTO));
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Description 分类删除
+ * @Author sun
+ **/
+ @PostMapping("delcategory")
+ public Result delCategory(@RequestBody ProjectSaveCategoryFormDTO formDTO) {
+ return new Result().ok(issueProjectCategoryDictService.delCategory(formDTO));
+ }
+
+ /**
+ * 获取客户 分类字典 信息
+ *
+ * @param dto
+ * pid = 0 查询一级分类
+ * pid != 0 查询二级分类
+ * @return com.epmet.commons.tools.utils.Result>
+ * @Author zhangyong
+ * @Date 14:10 2021-03-22
+ **/
+ @PostMapping("getcustomercategorydict")
+ public Result> getCustomerCategoryDict(@RequestBody CustomerCategoryDTO dto){
+ return new Result>().ok(issueProjectCategoryDictService.listCategoryDict(dto.getCustomerId(),
+ dto.getPid()));
+ }
+}
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 52405b07f5..1524bc1fc0 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
@@ -19,8 +19,10 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IssueProjectCategoryDictDTO;
+import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.entity.IssueProjectCategoryDictEntity;
+import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -36,7 +38,7 @@ import java.util.List;
public interface IssueProjectCategoryDictDao extends BaseDao {
/**
- * @Description 客户分类列表查询,按分类升序排列
+ * @Description 客户分类列表查询,按分类升序排列,查询未被禁用的
* @Author sun
**/
List selectCustomerCategoryList(@Param("customerId") String customerId);
@@ -55,12 +57,12 @@ public interface IssueProjectCategoryDictDao extends BaseDao selectCategoryListByCustomer(@Param("customerId") String customerId);
/**
- * @param cstegoryIdList
+ * @param formDTO
* @return
* @Description 批量查询分类信息
* @Author sun
**/
- List selectCategoryList(@Param("cstegoryIdList") List cstegoryIdList);
+ List selectCategoryList(IssueProjectCategoryDictListFormDTO formDTO);
/**
* @Description 根据客户Id、类别名称、类型查询单个类别 默认查询二级分类
@@ -72,4 +74,17 @@ public interface IssueProjectCategoryDictDao extends BaseDao
+ * @Author zhangyong
+ * @Date 14:10 2021-03-22
+ **/
+ List selectListCategoryDict(@Param("customerId") String customerId, @Param("pid") String pid);
+}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueCategoryEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueCategoryEntity.java
index fa9e5b8d5b..4f92ac6e6b 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueCategoryEntity.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueCategoryEntity.java
@@ -63,4 +63,14 @@ public class IssueCategoryEntity extends BaseEpmetEntity {
*/
private String categoryPids;
+ /**
+ * 分类编码,分类编码+customer_id唯一
+ */
+ private String categoryCode;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectCategoryDictEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectCategoryDictEntity.java
index 74a2e32b29..b99f37a2bf 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectCategoryDictEntity.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectCategoryDictEntity.java
@@ -53,6 +53,11 @@ public class IssueProjectCategoryDictEntity extends BaseEpmetEntity {
*/
private String pids;
+ /**
+ * 上级分类编码
+ */
+ private String parentCategoryCode;
+
/**
* 分类编码,分类编码+customer_id唯一
*/
@@ -73,4 +78,9 @@ public class IssueProjectCategoryDictEntity extends BaseEpmetEntity {
*/
private Integer sort;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectTagDictEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectTagDictEntity.java
index c56d5974a7..48d457624b 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectTagDictEntity.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueProjectTagDictEntity.java
@@ -68,4 +68,9 @@ public class IssueProjectTagDictEntity extends BaseEpmetEntity {
*/
private Integer projectUseCount;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueTagsEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueTagsEntity.java
index 1dc56255fc..0933fa1402 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueTagsEntity.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueTagsEntity.java
@@ -63,4 +63,9 @@ public class IssueTagsEntity extends BaseEpmetEntity {
*/
private String tagName;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
}
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 c283895c9f..24e824ffff 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
@@ -21,10 +21,12 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.CategoryTagInitFormDTO;
+import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO;
import com.epmet.dto.form.ProjectSaveCategoryFormDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.dto.result.ProjectIssueCategoryResultDTO;
import com.epmet.entity.IssueProjectCategoryDictEntity;
+import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import java.util.List;
import java.util.Map;
@@ -115,12 +117,12 @@ public interface IssueProjectCategoryDictService extends BaseService getCategoryList(List cstegoryIdList);
+ List getCategoryList(IssueProjectCategoryDictListFormDTO formDTO);
/**
* @param formDTO
@@ -129,4 +131,29 @@ public interface IssueProjectCategoryDictService extends BaseService
+ * @Author zhangyong
+ * @Date 14:10 2021-03-22
+ **/
+ List listCategoryDict(String customerId, String pid);
+}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCategoryServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCategoryServiceImpl.java
index 85d52737da..2ca1c6a005 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCategoryServiceImpl.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCategoryServiceImpl.java
@@ -29,10 +29,7 @@ import com.epmet.dao.IssueCategoryDao;
import com.epmet.dao.IssueTagsDao;
import com.epmet.dto.IssueCategoryDTO;
import com.epmet.dto.IssueProjectCategoryDictDTO;
-import com.epmet.dto.form.IssueCategoryTagListFormDTO;
-import com.epmet.dto.form.IssueSaveCategoryFormDTO;
-import com.epmet.dto.form.ProjectCategoryTagListFormDTO;
-import com.epmet.dto.form.SaveIssueCategoryFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.IssueCategoryTagListResultDTO;
import com.epmet.dto.result.IssueCategoryTagResultDTO;
import com.epmet.dto.result.ProjectCategoryTagResultDTO;
@@ -192,7 +189,10 @@ public class IssueCategoryServiceImpl extends BaseServiceImpl categoryIdList = formDTO.getCategoryList().stream().map(SaveIssueCategoryFormDTO::getId).collect(Collectors.toList());
- List categoryList = issueProjectCategoryDictService.getCategoryList(categoryIdList);
+ IssueProjectCategoryDictListFormDTO dictDto = new IssueProjectCategoryDictListFormDTO();
+ dictDto.setCustomerId(formDTO.getCustomerId());
+ dictDto.setCstegoryIdList(categoryIdList);
+ List categoryList = issueProjectCategoryDictService.getCategoryList(dictDto);
if (null == categoryList) {
throw new RenException(String.format("议题分类信息保存,根据分类Id获取分类信息失败"));
}
@@ -208,6 +208,8 @@ public class IssueCategoryServiceImpl extends BaseServiceImpl {
if (ca.getId().equals(cl.getId())) {
entity.setCategoryPids(cl.getPids());
+ entity.setCategoryCode(cl.getCategoryCode());
+ entity.setIsDisable(cl.getIsDisable());
}
});
entityList.add(entity);
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 966fb2ce14..c154a5f7e2 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
@@ -29,6 +29,7 @@ import com.epmet.dao.IssueProjectRelationDao;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.CategoryTagInitFormDTO;
+import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO;
import com.epmet.dto.form.ProjectSaveCategoryFormDTO;
import com.epmet.dto.form.SaveIssueCategoryFormDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
@@ -37,6 +38,7 @@ import com.epmet.dto.result.ProjectIssueCategoryResultDTO;
import com.epmet.dto.result.ProjectIssueDTOResultDTO;
import com.epmet.entity.IssueProjectCategoryDictEntity;
import com.epmet.entity.IssueProjectTagDictEntity;
+import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import com.epmet.redis.IssueProjectCategoryDictRedis;
import com.epmet.service.IssueProjectCategoryDictService;
import com.epmet.service.IssueProjectTagDictService;
@@ -122,7 +124,7 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl getCategoryList(List cstegoryIdList) {
- return baseDao.selectCategoryList(cstegoryIdList);
+ public List getCategoryList(IssueProjectCategoryDictListFormDTO formDTO) {
+ return baseDao.selectCategoryList(formDTO);
}
/**
@@ -160,7 +162,10 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl categoryIdList = formDTO.getCategoryList().stream().map(SaveIssueCategoryFormDTO::getId).collect(Collectors.toList());
- List categoryList = getCategoryList(categoryIdList);
+ IssueProjectCategoryDictListFormDTO dictDto = new IssueProjectCategoryDictListFormDTO();
+ dictDto.setCustomerId(formDTO.getCustomerId());
+ dictDto.setCstegoryIdList(categoryIdList);
+ List categoryList = getCategoryList(dictDto);
if (null == categoryList) {
throw new RenException(String.format("保存项目分类信息,根据分类Id获取分类信息失败"));
}
@@ -197,4 +202,28 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl listCategoryDict(String customerId, String pid) {
+ return baseDao.selectListCategoryDict(customerId, pid);
+ }
+}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
index 7590bbddd9..42db8f3551 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
@@ -1012,6 +1012,15 @@ public class IssueServiceImpl extends BaseServiceImpl imp
}catch(RenException e){
logger.error(e.getInternalMsg());
}
+
+
+ //7:发送话题转议题积分事件
+ TopicEventFormDTO eventParam = new TopicEventFormDTO();
+ eventParam.setTopicId(entity.getSourceId());
+ eventParam.setEvent(EventEnum.TOPIC_SHIFTED_TO_PROJECT);
+ if(!resiGroupOpenFeignClient.sendEvent(eventParam).success()){
+ logger.warn("com.epmet.service.impl.IssueServiceImpl.shiftProjectV2,话题被转为项目积分事件发送失败,参数:{}", JSON.toJSONString(formDTO));
+ }
}
/**
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueTagsServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueTagsServiceImpl.java
index 4cc9b404e8..0589da1fe4 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueTagsServiceImpl.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueTagsServiceImpl.java
@@ -158,6 +158,7 @@ public class IssueTagsServiceImpl extends BaseServiceImpl
@@ -36,6 +37,7 @@
del_flag = '0'
AND pid = #{id}
AND customer_id = #{customerId}
+ AND is_disable = 'enable'
ORDER BY sort ASC
@@ -62,6 +64,7 @@
issue_project_category_dict
WHERE
del_flag = '0'
+ AND customer_id = #{customerId}
id = #{id}
@@ -93,4 +96,21 @@
LIMIT 1
-
\ No newline at end of file
+
+
+ SELECT
+ CATEGORY_CODE categoryCode,
+ CATEGORY_NAME categoryName,
+ PID,
+ ID
+ FROM issue_project_category_dict d
+ WHERE d.CUSTOMER_ID = #{customerId}
+ AND d.DEL_FLAG ='0' AND d.IS_DISABLE = 'enable'
+
+ AND d.PID = '0'
+
+
+ AND d.PID != '0'
+
+
+
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueTagsDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueTagsDao.xml
index 5f134b85a3..592cdb43fb 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueTagsDao.xml
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueTagsDao.xml
@@ -70,7 +70,7 @@
- INSERT INTO issue_tags ( ID, CUSTOMER_ID, GRID_ID, ISSUE_ID, TAG_ID, TAG_NAME, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME )
+ INSERT INTO issue_tags ( ID, CUSTOMER_ID, GRID_ID, ISSUE_ID, TAG_ID, TAG_NAME, IS_DISABLE, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME )
VALUES
(
@@ -80,6 +80,7 @@
#{l.issueId},
#{l.tagId},
#{l.name},
+ #{l.isDisable},
#{l.delFlag},
#{l.revision},
#{l.createdBy},
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectCategoryDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectCategoryDTO.java
index 4c7b39c7d6..e04ce6da98 100644
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectCategoryDTO.java
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectCategoryDTO.java
@@ -63,6 +63,16 @@ public class ProjectCategoryDTO implements Serializable {
*/
private String categoryPids;
+ /**
+ * 分类编码,分类编码+customer_id唯一
+ */
+ private String categoryCode;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0未删除、1已删除
*/
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectTagsDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectTagsDTO.java
index 1cc47c4bb6..30a3cf75d6 100644
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectTagsDTO.java
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectTagsDTO.java
@@ -58,6 +58,11 @@ public class ProjectTagsDTO implements Serializable {
*/
private String tagName;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
/**
* 删除标识 0.未删除 1.已删除
*/
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IssueProjectCategoryDictListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IssueProjectCategoryDictListFormDTO.java
new file mode 100644
index 0000000000..ac2903fe32
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IssueProjectCategoryDictListFormDTO.java
@@ -0,0 +1,25 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 批量查询分类信息-接口入参
+ * @Author sun
+ */
+@Data
+public class IssueProjectCategoryDictListFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 2599592072265715951L;
+ /**
+ * 客户Id
+ */
+ private String customerId;
+ /**
+ * 分类Id集合
+ */
+ private List cstegoryIdList;
+
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectSaveCategoryFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectSaveCategoryFormDTO.java
index 9d0d1a407f..34a8732be5 100644
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectSaveCategoryFormDTO.java
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectSaveCategoryFormDTO.java
@@ -15,7 +15,7 @@ public class ProjectSaveCategoryFormDTO implements Serializable {
private static final long serialVersionUID = 2599592072265715951L;
/**
- * 议题Id
+ * 项目Id
*/
@NotBlank(message = "项目ID不能为空",groups = {SaveCategory.class})
private String projectId;
@@ -23,6 +23,12 @@ public class ProjectSaveCategoryFormDTO implements Serializable {
* 议题分类集合
*/
private List categoryList;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
public interface SaveCategory{}
}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryDTOResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryDTOResultDTO.java
index 17a4e51c20..8215a8850f 100644
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryDTOResultDTO.java
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryDTOResultDTO.java
@@ -32,6 +32,11 @@ public class ProjectCategoryDTOResultDTO implements Serializable {
*/
private String pids;
+ /**
+ * 上级分类编码
+ */
+ private String parentCategoryCode;
+
/**
* 分类编码,分类编码+customer_id唯一
*/
@@ -52,4 +57,9 @@ public class ProjectCategoryDTOResultDTO implements Serializable {
*/
private Integer sort;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java
index c47fb0ea4c..d1392bd0a6 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java
@@ -118,7 +118,8 @@ public class ProjectCategoryController {
* @Author sun
**/
@PostMapping("save")
- public Result saveCategory(@RequestBody ProjectSaveCategoryFormDTO formDTO) {
+ public Result saveCategory(@LoginUser TokenDto tokenDto, @RequestBody ProjectSaveCategoryFormDTO formDTO) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO, ProjectSaveCategoryFormDTO.SaveCategory.class);
projectCategoryService.saveCategory(formDTO);
return new Result();
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectCategoryEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectCategoryEntity.java
index ce718cc201..5a9fff63dc 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectCategoryEntity.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectCategoryEntity.java
@@ -63,4 +63,14 @@ public class ProjectCategoryEntity extends BaseEpmetEntity {
*/
private String categoryPids;
+ /**
+ * 分类编码,分类编码+customer_id唯一
+ */
+ private String categoryCode;
+
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectTagsEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectTagsEntity.java
index 12febddfea..2917f7e5e8 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectTagsEntity.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectTagsEntity.java
@@ -58,4 +58,9 @@ public class ProjectTagsEntity extends BaseEpmetEntity {
*/
private String tagName;
+ /**
+ * 是否禁用(enable:启用 disable:禁用)
+ */
+ private String isDisable;
+
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java
index 2db7977d67..f2a12df324 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java
@@ -175,6 +175,8 @@ public class ProjectCategoryServiceImpl extends BaseServiceImpl {
if (ca.getId().equals(cl.getId())) {
entity.setCategoryPids(cl.getPids());
+ entity.setCategoryCode(cl.getCategoryCode());
+ entity.setIsDisable(cl.getIsDisable());
}
});
entityList.add(entity);
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.7__alter_category_tag.sql b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.7__alter_category_tag.sql
new file mode 100644
index 0000000000..9b343fa74a
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.7__alter_category_tag.sql
@@ -0,0 +1,10 @@
+ALTER TABLE `project_category`
+ADD COLUMN `CATEGORY_CODE` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类编码,分类编码+customer_id唯一' AFTER `CATEGORY_PIDS`,
+ADD COLUMN `IS_DISABLE` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '是否禁用(enable:启用 disable:禁用)' AFTER `CATEGORY_CODE`;
+
+ALTER TABLE `project_tags`
+ADD COLUMN `IS_DISABLE` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '是否禁用(enable:启用 disable:禁用)' AFTER `TAG_NAME`;
+
+-- 删除表中历史数据,因为db做了调整
+DELETE FROM project_category;
+DELETE FROM project_tags;
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java
index 0f4313dfad..04508ac6df 100644
--- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java
@@ -122,4 +122,15 @@ public interface OperCrmOpenFeignClient {
**/
@GetMapping("/oper/crm/customer/getallsubcustomerids/{customerId}")
Result> getAllSubCustomerIds(@PathVariable("customerId") String customerId);
+
+ /**
+ * 获取外部客户,的父级 客户id
+ *
+ * @param customerId
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 14:57 2021-03-22
+ **/
+ @GetMapping("/oper/crm/customer/getexternalandparentcustomerid/{customerId}")
+ Result getExternalAndParentCustomerId(@PathVariable("customerId") String customerId);
}
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java
index 5de09ce167..b718517d4b 100644
--- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java
@@ -95,4 +95,9 @@ public class OperCrmOpenFeignClientFallback implements OperCrmOpenFeignClient {
public Result> getAllSubCustomerIds(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "getAllSubCustomerIds", customerId);
}
+
+ @Override
+ public Result getExternalAndParentCustomerId(String customerId) {
+ return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "getExternalAndParentCustomerId", customerId);
+ }
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
index c5330a9abd..30fe309079 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
@@ -376,4 +376,21 @@ public class CustomerController {
}
return new Result<>();
}
+
+ /**
+ * 获取外部客户,的父级 客户id
+ *
+ * @param customerId
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author zhangyong
+ * @Date 14:57 2021-03-22
+ **/
+ @GetMapping("getexternalandparentcustomerid/{customerId}")
+ public Result getExternalAndParentCustomerId(@PathVariable("customerId") String customerId){
+ if(StringUtils.isNotBlank(customerId)){
+ String resultDTO = customerService.getExternalAndParentCustomerId(customerId);
+ return new Result().ok(resultDTO);
+ }
+ return new Result<>();
+ }
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java
index b7aed8f55a..02ae9d9890 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java
@@ -48,7 +48,7 @@ public interface CustomerDao extends BaseDao {
* @param customerIdList
* @Author yinzuomei
* @Description 根据客户id查询客户信息
- * @Date 2020/4/24 9:21
+ * @Date 2020/4/24 9:21
**/
List selectListByIds(@Param("customerIdList") List customerIdList);
@@ -98,4 +98,13 @@ public interface CustomerDao extends BaseDao {
*/
List selectAllCustomerList(@Param("customerName") String customerName);
+ /**
+ * 获取外部客户,的父级 客户id
+ *
+ * @param customerId
+ * @return java.lang.String
+ * @Author zhangyong
+ * @Date 14:57 2021-03-22
+ **/
+ String getExternalAndParentCustomerId(@Param("customerId") String customerId);
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
index 82e872e511..f1efa2d087 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
@@ -226,4 +226,14 @@ public interface CustomerService extends BaseService {
* @Date 2021/2/3 12:52
**/
CustomerRelationInfoResultDTO queryCustomerInfoByCustomerId(String customerId);
+
+ /**
+ * 获取外部客户,的父级 客户id
+ *
+ * @param customerId
+ * @return java.lang.String
+ * @Author zhangyong
+ * @Date 14:57 2021-03-22
+ **/
+ String getExternalAndParentCustomerId(String customerId);
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
index 1fadbd8443..c2677c0504 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
@@ -785,4 +785,8 @@ public class CustomerServiceImpl extends BaseServiceImpl
+
+
+ SELECT
+ CR.PARENT_CUSTOMER_ID AS rootCustomerId
+ FROM customer_relation cr
+ WHERE cr.DEL_FLAG = '0'
+ AND cr.CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
+ AND cr.PARENT_CUSTOMER_ID != '0'
+ AND cr.CUSTOMER_TYPE = 'external'
+