From 3d4ad49b296b2fe3a12a75c13f272d6df74bc16f Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 1 Feb 2021 10:30:18 +0800 Subject: [PATCH] screenProjectGridDaily screenProjectQuantityGrid --- .../com/epmet/constant/PingYinConstants.java | 18 +++ .../pingyin/result/ClosedIncrResultDTO.java | 19 +++ .../result/EvaluateTotalResultDTO.java | 20 +++ .../pingyin/result/ProjectIncrResultDTO.java | 19 +++ .../pingyin/result/ProjectTotalResultDTO.java | 18 +++ .../pingyin/result/ResolvedNumResultDTO.java | 18 +++ .../result/UnClosedTotalResultDTO.java | 19 +++ .../dto/screen/ScreenProjectGridDailyDTO.java | 15 ++ .../ScreenProjectQuantityGridMonthlyDTO.java | 12 ++ .../com/epmet/controller/DemoController.java | 20 +++ .../FactOriginProjectMainDailyDao.java | 56 +++++++ .../screen/ScreenCustomerGridDao.java | 9 ++ .../screen/ScreenProjectGridDailyDao.java | 8 +- .../FactOriginProjectMainDailyService.java | 56 +++++++ ...FactOriginProjectMainDailyServiceImpl.java | 99 ++++++++++++ .../screen/ScreenProjectGridDailyService.java | 8 + ...reenProjectQuantityGridMonthlyService.java | 9 ++ .../ScreenProjectGridDailyServiceImpl.java | 148 ++++++++++++++++++ ...ProjectQuantityGridMonthlyServiceImpl.java | 124 +++++++++++++++ .../extract/FactOriginProjectMainDailyDao.xml | 94 +++++++++++ .../screen/ScreenCustomerGridDao.xml | 16 ++ .../screen/ScreenProjectGridDailyDao.xml | 49 ++++++ 22 files changed, 853 insertions(+), 1 deletion(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/PingYinConstants.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/PingYinConstants.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/PingYinConstants.java new file mode 100644 index 0000000000..95b61d3af8 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/PingYinConstants.java @@ -0,0 +1,18 @@ +package com.epmet.constant; + +/** + * @Author zxc + * @DateTime 2021/1/28 下午3:20 + */ +public interface PingYinConstants { + + String GRID_INFO_IS_ZERO = "客户【%s】下的网格信息为空......"; + + String EVALUATE_BAD = "bad"; + String EVALUATE_GOOD = "good"; + String EVALUATE_PERFECT = "perfect"; + + String UN_CLOSED = "unClosed"; + String CLOSED = "closed"; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java new file mode 100644 index 0000000000..d1f9083b30 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.pingyin.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/2/1 上午9:22 + */ +@Data +public class ClosedIncrResultDTO implements Serializable { + + private static final long serialVersionUID = 4907953818631953766L; + + private String gridId; + + private Integer closedIncr; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java new file mode 100644 index 0000000000..3eb30a3887 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.pingyin.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/1/29 上午9:08 + */ +@Data +public class EvaluateTotalResultDTO implements Serializable { + + private static final long serialVersionUID = -4734985200452228738L; + + private String orgId; + + private Integer evaluateCount = NumConstant.ZERO; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java new file mode 100644 index 0000000000..6200eb8add --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.pingyin.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/1/29 下午2:28 + */ +@Data +public class ProjectIncrResultDTO implements Serializable { + + private static final long serialVersionUID = -1452144390062903633L; + + private String gridId; + + private Integer projectIncr; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java new file mode 100644 index 0000000000..a356c0ccdb --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.pingyin.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/1/28 下午3:15 + */ +@Data +public class ProjectTotalResultDTO implements Serializable { + + private static final long serialVersionUID = 6071988402600005617L; + + private String gridId; + private Integer projectTotal; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java new file mode 100644 index 0000000000..6710de4469 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.pingyin.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/1/28 下午3:15 + */ +@Data +public class ResolvedNumResultDTO implements Serializable { + + private static final long serialVersionUID = 607198840261205617L; + + private String gridId; + private Integer resolvedNum; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java new file mode 100644 index 0000000000..d31e85ec28 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.pingyin.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/1/29 下午2:59 + */ +@Data +public class UnClosedTotalResultDTO implements Serializable { + + private static final long serialVersionUID = -722723608888414454L; + + private String gridId; + + private Integer projectCount; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectGridDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectGridDailyDTO.java index 3d5b49c2b6..c1f5f2ed12 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectGridDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectGridDailyDTO.java @@ -17,6 +17,7 @@ package com.epmet.dto.screen; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; @@ -134,4 +135,18 @@ public class ScreenProjectGridDailyDTO implements Serializable { */ private Date updatedTime; + public ScreenProjectGridDailyDTO() { + this.projectTotal = NumConstant.ZERO; + this.resolvedNum = NumConstant.ZERO; + this.resolvedRatio = NumConstant.ZERO_DECIMAL; + this.evaluateTotal = NumConstant.ZERO; + this.goodTotal = NumConstant.ZERO; + this.badTotal = NumConstant.ZERO; + this.goodRatio = NumConstant.ZERO_DECIMAL; + this.badRatio = NumConstant.ZERO_DECIMAL; + this.createdBy = "APP_USER"; + this.updatedBy = "APP_USER"; + this.delFlag = NumConstant.ZERO_STR; + this.revision = NumConstant.ZERO; + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectQuantityGridMonthlyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectQuantityGridMonthlyDTO.java index 26c6fff15d..b735ed6e27 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectQuantityGridMonthlyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectQuantityGridMonthlyDTO.java @@ -17,6 +17,7 @@ package com.epmet.dto.screen; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; @@ -119,4 +120,15 @@ public class ScreenProjectQuantityGridMonthlyDTO implements Serializable { */ private Date updatedTime; + public ScreenProjectQuantityGridMonthlyDTO() { + this.projectIncr = NumConstant.ZERO; + this.projectTotal = NumConstant.ZERO; + this.unClosedTotal = NumConstant.ZERO; + this.closedTotal = NumConstant.ZERO; + this.closedIncr = NumConstant.ZERO; + this.delFlag = NumConstant.ZERO_STR; + this.revision = NumConstant.ZERO; + this.createdBy = "APP_USER"; + this.updatedBy = "APP_USER"; + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 9b700fb365..3dc014ae20 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -36,6 +36,8 @@ import com.epmet.service.evaluationindex.extract.dataToIndex.*; import com.epmet.service.evaluationindex.extract.todata.FactOriginTopicMainDailyService; import com.epmet.service.evaluationindex.extract.toscreen.*; import com.epmet.service.evaluationindex.indexcal.*; +import com.epmet.service.evaluationindex.screen.ScreenProjectGridDailyService; +import com.epmet.service.evaluationindex.screen.ScreenProjectQuantityGridMonthlyService; import com.epmet.service.stats.DimAgencyService; import com.epmet.service.stats.DimCustomerPartymemberService; import lombok.extern.slf4j.Slf4j; @@ -743,4 +745,22 @@ public class DemoController { log.info("影响行数="+updateNum); return new Result(); } + + @Autowired + private ScreenProjectGridDailyService screenProjectGridDailyService; + + @Autowired + private ScreenProjectQuantityGridMonthlyService screenProjectQuantityGridMonthlyService; + + @PostMapping("screenProjectGridDaily") + public Result screenProjectGridDaily(@RequestParam("customerId")String customerId,@RequestParam("dateId")String dateId){ + screenProjectGridDailyService.extractionProjectGridDaily(customerId,dateId); + return new Result(); + } + + @PostMapping("screenProjectQuantityGrid") + public Result screenProjectQuantityGrid(@RequestParam("customerId")String customerId,@RequestParam("monthId")String monthId){ + screenProjectQuantityGridMonthlyService.extractionProjectGridMonthly(customerId,monthId); + return new Result(); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java index ebbbe5e84b..12b747d206 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java @@ -23,6 +23,7 @@ import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.dto.extract.result.TransferRightRatioResultDTO; import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO; +import com.epmet.dto.pingyin.result.*; import com.epmet.dto.screen.form.ProjectSourceMapFormDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity; @@ -217,4 +218,59 @@ public interface FactOriginProjectMainDailyDao extends BaseDao getOrgProjectCount(@Param("customerId") String customerId, @Param("monthId")String monthId, @Param("level") String level); + + /** + * @Description 查询项目总数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/28 下午4:01 + */ + List selectProjectTotal(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("monthId")String monthId); + + /** + * @Description 查询已解决项目数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/28 下午4:15 + */ + List selectResolvedNum(@Param("customerId")String customerId, @Param("dateId")String dateId); + + /** + * @Description 查询 满意度评价次数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/29 上午9:10 + */ + List selectEvaluateCount(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("activeCodes") List activeCodes); + + /** + * @Description 查询本月新增项目数 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/1/29 下午2:31 + */ + List selectProjectIncr(@Param("customerId")String customerId, @Param("monthId")String monthId); + + /** + * @Description 根据状态查询项目数 + * @Param customerId + * @Param monthId + * @Param status + * @author zxc + * @date 2021/1/29 下午3:25 + */ + List selectProjectCount(@Param("customerId")String customerId, @Param("monthId")String monthId, @Param("status") String status); + + /** + * @Description 本月新增结案项目数 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/2/1 上午9:25 + */ + List selectClosedIncr(@Param("customerId")String customerId, @Param("monthId")String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java index f6d064a62b..c06e189d7c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java @@ -23,6 +23,7 @@ import com.epmet.dto.extract.form.*; import com.epmet.dto.extract.result.GridInfoResultDTO; import com.epmet.dto.extract.result.OrgNameResultDTO; import com.epmet.dto.indexcal.PageQueryGridFormDTO; +import com.epmet.dto.screen.ScreenProjectGridDailyDTO; import com.epmet.dto.screencoll.form.CustomerGridFormDTO; import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity; import org.apache.ibatis.annotations.Mapper; @@ -185,4 +186,12 @@ public interface ScreenCustomerGridDao extends BaseDao * @date 2020/9/18 10:47 上午 */ List selectAllGridInfo(@Param("customerId") String customerId); + + /** + * @Description 查询客户下的网格信息 + * @Param customerId + * @author zxc + * @date 2021/1/28 下午3:18 + */ + List selectGridInfoByCustomerId(@Param("customerId") String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectGridDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectGridDailyDao.java index 12c7c1a527..f9cbac7ffe 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectGridDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectGridDailyDao.java @@ -39,5 +39,11 @@ public interface ScreenProjectGridDailyDao extends BaseDao list); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java index 8b7e1ae06c..3cb5f6e0e7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java @@ -24,6 +24,7 @@ import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.dto.extract.result.TransferRightRatioResultDTO; import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO; +import com.epmet.dto.pingyin.result.*; import com.epmet.dto.screen.form.ProjectSourceMapFormDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity; @@ -263,4 +264,59 @@ public interface FactOriginProjectMainDailyService extends BaseService getNewProject(String customerId, List list); + + /** + * @Description 查询项目总数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/28 下午3:59 + */ + List selectProjectTotal(String customerId,String dateId,String monthId); + + /** + * @Description 查询已解决项目数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/28 下午4:15 + */ + List selectResolvedNum(String customerId, String dateId); + + /** + * @Description 查询 满意度评价次数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/29 上午9:10 + */ + List selectEvaluateCount(String customerId, String dateId,List activeCodes); + + /** + * @Description 查询本月新增项目数 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/1/29 下午2:29 + */ + List selectProjectIncr(String customerId, String monthId); + + /** + * @Description 根据状态查询项目数 + * @Param customerId + * @Param monthId + * @Param status + * @author zxc + * @date 2021/1/29 下午3:25 + */ + List selectProjectCount(String customerId, String monthId, String status); + + /** + * @Description 本月新增结案项目数 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/2/1 上午9:24 + */ + List selectClosedIncr(String customerId, String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java index bdc82b519d..a5dcc11955 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java @@ -32,6 +32,7 @@ import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.dto.extract.result.TransferRightRatioResultDTO; import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO; +import com.epmet.dto.pingyin.result.*; import com.epmet.dto.screen.form.ProjectSourceMapFormDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity; @@ -41,6 +42,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -259,4 +261,101 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl getNewProject(String customerId, List list) { return baseDao.selectNewProject(customerId,list); } + + /** + * @Description 查询项目总数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/28 下午3:59 + */ + @Override + public List selectProjectTotal(String customerId, String dateId,String monthId) { + if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId)){ + List projectTotalResultDTOS = baseDao.selectProjectTotal(customerId, dateId, monthId); + return projectTotalResultDTOS; + } + return new ArrayList<>(); + } + + /** + * @Description 查询已解决项目数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/28 下午4:15 + */ + @Override + public List selectResolvedNum(String customerId, String dateId) { + if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId)){ + List resolvedNumResultDTOS = baseDao.selectResolvedNum(customerId, dateId); + return resolvedNumResultDTOS; + } + return new ArrayList<>(); + } + + /** + * @Description 查询 满意度评价次数 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/1/29 上午9:10 + */ + @Override + public List selectEvaluateCount(String customerId, String dateId, List activeCodes) { + if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId) && !CollectionUtils.isEmpty(activeCodes)){ + List evaluateTotalResultDTOS = baseDao.selectEvaluateCount(customerId, dateId, activeCodes); + return evaluateTotalResultDTOS; + } + return new ArrayList<>(); + } + + /** + * @Description 查询本月新增项目数 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/1/29 下午2:29 + */ + @Override + public List selectProjectIncr(String customerId, String monthId) { + if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(monthId)){ + List projectIncrResultDTOS = baseDao.selectProjectIncr(customerId, monthId); + return projectIncrResultDTOS; + } + return new ArrayList<>(); + } + + /** + * @Description 根据状态查询项目数 + * @Param customerId + * @Param monthId + * @Param status + * @author zxc + * @date 2021/1/29 下午3:25 + */ + @Override + public List selectProjectCount(String customerId, String monthId, String status) { + if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(monthId)){ + List resultDTOS = baseDao.selectProjectCount(customerId, monthId, status); + return resultDTOS; + } + return new ArrayList<>(); + } + + /** + * @Description 本月新增结案项目数 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/2/1 上午9:24 + */ + @Override + public List selectClosedIncr(String customerId, String monthId) { + if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(monthId)){ + List result = baseDao.selectClosedIncr(customerId, monthId); + return result; + } + return new ArrayList<>(); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectGridDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectGridDailyService.java index e58e45fb56..2b710cefb3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectGridDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectGridDailyService.java @@ -103,4 +103,12 @@ public interface ScreenProjectGridDailyService extends BaseService data); + + /** + * @Description 数据抽取【网格-日】 + * @Param + * @author zxc + * @date 2021/1/28 下午3:05 + */ + void extractionProjectGridDaily(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/ScreenProjectQuantityGridMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectQuantityGridMonthlyService.java index 95b6679707..6d5e5b909d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectQuantityGridMonthlyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectQuantityGridMonthlyService.java @@ -102,4 +102,13 @@ public interface ScreenProjectQuantityGridMonthlyService extends BaseService data); + + /** + * @Description 数据抽取 【网格-月】 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/1/29 下午1:57 + */ + void extractionProjectGridMonthly(String customerId,String monthId); } \ 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/ScreenProjectGridDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java index 7fc206dc3e..64c3c2ef8a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java @@ -22,18 +22,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.PingYinConstants; +import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao; import com.epmet.dao.evaluationindex.screen.ScreenProjectGridDailyDao; +import com.epmet.dto.pingyin.result.EvaluateTotalResultDTO; +import com.epmet.dto.pingyin.result.ProjectTotalResultDTO; +import com.epmet.dto.pingyin.result.ResolvedNumResultDTO; import com.epmet.dto.screen.ScreenProjectGridDailyDTO; import com.epmet.dto.screencoll.ScreenCollFormDTO; import com.epmet.entity.evaluationindex.screen.ScreenProjectGridDailyEntity; +import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService; import com.epmet.service.evaluationindex.screen.ScreenProjectGridDailyService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; +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.math.BigDecimal; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -45,8 +58,15 @@ import java.util.Map; * @since v1.0.0 2021-01-27 */ @Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl implements ScreenProjectGridDailyService { + @Autowired + private ScreenCustomerGridDao gridDao; + + @Autowired + private FactOriginProjectMainDailyService projectMainDailyService; @Override public PageData page(Map params) { @@ -121,4 +141,132 @@ public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl gridInfos = gridDao.selectGridInfoByCustomerId(customerId); + if (CollectionUtils.isEmpty(gridInfos)){ + throw new RenException(String.format(PingYinConstants.GRID_INFO_IS_ZERO,customerId)); + } + // 查询 项目总数 + List projectTotal = projectMainDailyService.selectProjectTotal(customerId, dateId, null); + // 查询 项目解决数 + List resolvedNum = projectMainDailyService.selectResolvedNum(customerId, dateId); + //查询 参与满意度评价的总次数 + String[] activeCodesAll = {PingYinConstants.EVALUATE_BAD,PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT}; + List evaluateTotal = projectMainDailyService.selectEvaluateCount(customerId, dateId, getActiveCode(activeCodesAll)); + //查询 满意+非常满意的总次数 + String[] activeCodesGood = {PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT}; + List evaluateGood = projectMainDailyService.selectEvaluateCount(customerId, dateId, getActiveCode(activeCodesGood)); + + gridInfos.forEach(g -> { + g.setDateId(dateId); + // 项目总数赋值 + if (!CollectionUtils.isEmpty(projectTotal)){ + projectTotal.forEach(pt -> { + if (g.getGridId().equals(pt.getGridId())){ + g.setProjectTotal(pt.getProjectTotal()); + } + }); + } + // 项目解决数赋值 + if (!CollectionUtils.isEmpty(resolvedNum)){ + resolvedNum.forEach(rn -> { + if (g.getGridId().equals(rn.getGridId())){ + g.setResolvedNum(rn.getResolvedNum()); + } + }); + } + // 解决率 + g.setResolvedRatio(getRatio(g.getResolvedNum(),g.getProjectTotal())); + // 参与满意度评价的总次数 赋值 + if (!CollectionUtils.isEmpty(evaluateTotal)){ + evaluateTotal.forEach(et -> { + if (g.getGridId().equals(et.getOrgId())){ + g.setEvaluateTotal(et.getEvaluateCount()); + } + }); + } + // 满意+非常满意的总次数 赋值 + if (!CollectionUtils.isEmpty(evaluateGood)){ + evaluateGood.forEach(eg -> { + if (g.getGridId().equals(eg.getOrgId())){ + g.setGoodTotal(eg.getEvaluateCount()); + } + }); + } + // 不满意总次数 + g.setBadTotal(g.getEvaluateTotal()==NumConstant.ZERO ? NumConstant.ZERO : g.getEvaluateTotal() - g.getGoodTotal()); + // 满意率 + g.setGoodRatio(getRatio(g.getGoodTotal(),g.getEvaluateTotal())); + // 不满意率 + g.setBadRatio(getRatio(g.getBadTotal(),g.getEvaluateTotal())); + }); + log.info(gridInfos.toString()); + delScreenProjectGridDaily(customerId, dateId); + insertScreenProjectGridDaily(gridInfos); + } + + /** + * @Description activeCode处理 + * @Param actCode + * @author zxc + * @date 2021/1/29 上午9:33 + */ + public List getActiveCode(String[] actCode){ + List activeCodes = Arrays.asList(actCode); + return activeCodes; + } + + /** + * @Description + * @Param a + * @Param b 分母 + * @author zxc + * @date 2021/1/29 上午10:10 + */ + public BigDecimal getRatio(Integer a , Integer b){ + if (b==NumConstant.ZERO){ + return new BigDecimal(NumConstant.ZERO); + } + BigDecimal bigDecimalA = new BigDecimal(a); + BigDecimal bigDecimalB = new BigDecimal(b); + BigDecimal divide = bigDecimalA.divide(bigDecimalB, NumConstant.FOUR, BigDecimal.ROUND_HALF_UP); + return divide; + } + + /** + * @Description 新增 + * @Param list + * @author zxc + * @date 2021/2/1 上午10:24 + */ + @Transactional(rollbackFor = Exception.class) + public void insertScreenProjectGridDaily(List list){ + List> partition = ListUtils.partition(list, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + baseDao.insertScreenProjectGridDaily(p); + }); + } + + /** + * @Description 删除 + * @Param customerId + * @Param dateId + * @author zxc + * @date 2021/2/1 上午10:24 + */ + @Transactional(rollbackFor = Exception.class) + public void delScreenProjectGridDaily(String customerId,String dateId){ + Integer flag; + do { + flag = baseDao.deleteByDateIdAndCustomerId(customerId,dateId); + }while (flag > NumConstant.ZERO && flag == NumConstant.ONE_THOUSAND); + } } \ 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/ScreenProjectQuantityGridMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java index 0977e2d627..43114fc18f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java @@ -22,17 +22,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.PingYinConstants; +import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao; import com.epmet.dao.evaluationindex.screen.ScreenProjectQuantityGridMonthlyDao; +import com.epmet.dto.pingyin.result.ClosedIncrResultDTO; +import com.epmet.dto.pingyin.result.ProjectIncrResultDTO; +import com.epmet.dto.pingyin.result.ProjectTotalResultDTO; +import com.epmet.dto.pingyin.result.UnClosedTotalResultDTO; +import com.epmet.dto.screen.ScreenProjectGridDailyDTO; import com.epmet.dto.screen.ScreenProjectQuantityGridMonthlyDTO; import com.epmet.dto.screencoll.ScreenCollFormDTO; import com.epmet.entity.evaluationindex.screen.ScreenProjectQuantityGridMonthlyEntity; +import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService; import com.epmet.service.evaluationindex.screen.ScreenProjectQuantityGridMonthlyService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; +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.Arrays; import java.util.List; @@ -45,8 +59,15 @@ import java.util.Map; * @since v1.0.0 2021-01-27 */ @Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) public class ScreenProjectQuantityGridMonthlyServiceImpl extends BaseServiceImpl implements ScreenProjectQuantityGridMonthlyService { + @Autowired + private ScreenCustomerGridDao gridDao; + + @Autowired + private FactOriginProjectMainDailyService projectMainDailyService; @Override public PageData page(Map params) { @@ -121,4 +142,107 @@ public class ScreenProjectQuantityGridMonthlyServiceImpl extends BaseServiceImpl baseDao.insertBatch(data.getDataList(),customerId,"APP_USER",data.getMonthId()); } + /** + * @Description 数据抽取 【网格-月】 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/1/29 下午1:57 + */ + @Override + public void extractionProjectGridMonthly(String customerId, String monthId) { + // 查询客户下所有网格 + List screenProjectGridDailyDTOS = gridDao.selectGridInfoByCustomerId(customerId); + if (CollectionUtils.isEmpty(screenProjectGridDailyDTOS)){ + throw new RenException(String.format(PingYinConstants.GRID_INFO_IS_ZERO,customerId)); + } + List gridInfos = ConvertUtils.sourceToTarget(screenProjectGridDailyDTOS, ScreenProjectQuantityGridMonthlyDTO.class); + + // 本月新增的项目数量 转项目日期在当前月份内 + List projectIncr = projectMainDailyService.selectProjectIncr(customerId, monthId); + // 截止到当前月份:累计项目总数 + List projectTotal = projectMainDailyService.selectProjectTotal(customerId, null, monthId); + // 截止到当前月份:累计未结项目总数 + List projectUnClosed = projectMainDailyService.selectProjectCount(customerId, monthId, PingYinConstants.UN_CLOSED); + // 截止到当前月份:累计已结项目 + List projectClosed = projectMainDailyService.selectProjectCount(customerId, monthId, PingYinConstants.CLOSED); + // 本月新增结案项目数 + List closedIncr = projectMainDailyService.selectClosedIncr(customerId, monthId); + gridInfos.forEach(g -> { + g.setMonthId(monthId); + // 本月新增的项目数量 转项目日期在当前月份内 + if (!CollectionUtils.isEmpty(projectIncr)){ + projectIncr.forEach(p -> { + if (g.getGridId().equals(p.getGridId())){ + g.setProjectIncr(p.getProjectIncr()); + } + }); + } + // 截止到当前月份:累计项目总数 + if (!CollectionUtils.isEmpty(projectTotal)){ + projectTotal.forEach(p -> { + if (g.getGridId().equals(p.getGridId())){ + g.setProjectTotal(p.getProjectTotal()); + } + }); + } + // 截止到当前月份:累计未结项目总数 + if (!CollectionUtils.isEmpty(projectUnClosed)){ + projectUnClosed.forEach(p -> { + if (g.getGridId().equals(p.getGridId())){ + g.setUnClosedTotal(p.getProjectCount()); + } + }); + } + // 截止到当前月份:累计已结项目 + if (!CollectionUtils.isEmpty(projectClosed)){ + projectClosed.forEach(p -> { + if (g.getGridId().equals(p.getGridId())){ + g.setClosedTotal(p.getProjectCount()); + } + }); + } + // 本月新增结案项目数 + if (!CollectionUtils.isEmpty(closedIncr)){ + closedIncr.forEach(p -> { + if (g.getGridId().equals(p.getGridId())){ + g.setClosedIncr(p.getClosedIncr()); + } + }); + } + }); + log.info(gridInfos.toString()); + del(customerId, monthId); + insert(gridInfos,customerId,monthId); + } + + /** + * @Description 删除 + * @Param customerId + * @Param monthId + * @author zxc + * @date 2021/2/1 上午10:13 + */ + @Transactional(rollbackFor = Exception.class) + public void del(String customerId,String monthId){ + Integer flag; + do { + flag = baseDao.deleteByMonthIdAndCustomerId(customerId, monthId); + }while (flag > NumConstant.ZERO && flag == NumConstant.ONE_THOUSAND); + } + + /** + * @Description 新增 + * @Param list + * @author zxc + * @date 2021/2/1 上午10:16 + */ + @Transactional(rollbackFor = Exception.class) + public void insert(List list,String customerId,String monthId){ + List> partition = ListUtils.partition(list, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + baseDao.insertBatch(p,customerId,"APP_USER",monthId); + }); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml index 1ea4b350fd..3d21f70ce7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml @@ -440,4 +440,98 @@ CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml index 7506b05335..c6ad68ca8b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml @@ -343,4 +343,20 @@ del_flag = '0' AND CUSTOMER_ID = #{customerId} + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectGridDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectGridDailyDao.xml index 09b2b2f470..9b10fe1d04 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectGridDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectGridDailyDao.xml @@ -94,6 +94,55 @@ ) + + INSERT INTO screen_project_grid_daily + ( + id, + customer_id, + date_id, + grid_id, + pid, + pids, + project_total, + resolved_num, + resolved_ratio, + evaluate_total, + good_total, + bad_total, + good_ratio, + bad_ratio, + del_flag, + revision, + created_by, + created_time, + updated_by, + updated_time + ) values + + ( + REPLACE(UUID(), '-', ''), + #{item.customerId}, + #{item.dateId}, + #{item.gridId}, + #{item.pid}, + #{item.pids}, + #{item.projectTotal}, + #{item.resolvedNum}, + #{item.resolvedRatio}, + #{item.evaluateTotal}, + #{item.goodTotal}, + #{item.badTotal}, + #{item.goodRatio}, + #{item.badRatio}, + #{item.delFlag}, + #{item.revision}, + #{item.createdBy}, + now(), + #{item.createdBy}, + now() + ) + +