From a702adc62c2593370f204510abe9f51c748c45d9 Mon Sep 17 00:00:00 2001 From: wangchao Date: Sun, 20 Sep 2020 20:24:55 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=B0=8F=E7=BB=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8A=BD=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/FactOriginGroupMainDailyDTO.java | 6 + .../dto/extract/form/GridHeartedFormDTO.java | 20 ++ ...tractGroupMemberActionRecordResultDTO.java | 41 ++++ .../result/ProjectOrgPeriodResultDTO.java | 6 + .../stats/result/GridAttributesResultDTO.java | 36 ++++ .../controller/FactOriginController.java | 33 +++- .../extract/FactOriginGroupMainDailyDao.java | 75 ++++++++ .../com/epmet/dao/group/GroupDataDao.java | 10 + .../java/com/epmet/dao/stats/DimGridDao.java | 10 + .../main/java/com/epmet/dao/user/UserDao.java | 7 +- ...FactOriginProjectOrgPeriodDailyEntity.java | 2 +- .../extract/GroupExtractService.java | 11 ++ .../extract/impl/GroupExtractServiceImpl.java | 116 ++++++++++++ .../impl/ProjectPeriodExtractServiceImpl.java | 1 - .../epmet/service/group/GroupDataService.java | 11 ++ .../group/impl/GroupDataServiceImpl.java | 18 ++ .../impl/ProjectProcessServiceImpl.java | 11 +- .../epmet/service/stats/DimGridService.java | 10 + .../stats/impl/DimGridServiceImpl.java | 20 +- .../com/epmet/service/user/UserService.java | 20 ++ .../service/user/impl/UserServiceImpl.java | 25 +++ .../extract/FactOriginGroupMainDailyDao.xml | 178 ++++++++++++++++++ .../FactOriginProjectOrgPeriodDailyDao.xml | 33 ++-- .../resources/mapper/group/GroupDataDao.xml | 58 +++++- .../mapper/project/ProjectProcessDao.xml | 11 +- .../resources/mapper/stats/DimGridDao.xml | 19 ++ .../main/resources/mapper/user/UserDao.xml | 33 ++++ 27 files changed, 784 insertions(+), 37 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java index 7fbeb1ca84..8292361039 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java @@ -18,7 +18,11 @@ package com.epmet.dto.extract; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; +import java.util.List; + +import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; import lombok.Data; @@ -146,4 +150,6 @@ Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审 */ private Date updatedTime; + + private List members = new ArrayList(); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java new file mode 100644 index 0000000000..f570700d01 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @ClassName GridHeartedFormDTO + * @Auth wangc + * @Date 2020-09-20 12:42 + */ +@Data +public class GridHeartedFormDTO implements Serializable { + private static final long serialVersionUID = 9069263069122734316L; + + private String userId; + + private String gridId; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java new file mode 100644 index 0000000000..47aa8e8783 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.group.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description + * @ClassName ExtractGroupMemberActionRecordResultDTO + * @Auth wangc + * @Date 2020-09-18 21:18 + */ +@Data +public class ExtractGroupMemberActionRecordResultDTO implements Serializable { + private static final long serialVersionUID = -74883228267461785L; + private String customerId; + + private String groupId; + + private String memberId; + + private String leaderFlag; + + private String dateId; + + private String weekId; + + private String monthId; + + private String quarterId; + + private String yearId; + + private Date joinDate; + + /** + * 目前只有join leader也是join + * */ + private String actionCode; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java index caa7034481..b3e101295d 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java @@ -86,4 +86,10 @@ public class ProjectOrgPeriodResultDTO implements Serializable { * */ private Date periodTillReplyFirstly; + private String customerId; + + private String staffId; + + private String isResolved; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java new file mode 100644 index 0000000000..17fd652a8c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.stats.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @ClassName GridAttributesResultDTO + * @Auth wangc + * @Date 2020-09-20 12:50 + */ +@Data +public class GridAttributesResultDTO implements Serializable { + private static final long serialVersionUID = 466974582608407121L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 网格所属机关ID + */ + private String agencyId; + + /** + * 机关的上级ID + */ + private String parentId; + + /** + * 所有上级Id + * */ + private String pids; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index 870485ffd3..b90bdcdc28 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -4,10 +4,7 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.service.evaluationindex.extract.FactOriginExtractService; -import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; -import com.epmet.service.evaluationindex.extract.IssueExtractService; -import com.epmet.service.evaluationindex.extract.ProjectExtractService; +import com.epmet.service.evaluationindex.extract.*; import com.epmet.util.DimIdGenerator; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +33,8 @@ public class FactOriginController { private FactOriginTopicMainDailyService factOriginTopicMainDailyService; @Autowired private ProjectExtractService projectExtractService; + @Autowired + private GroupExtractService groupExtractService; /** * desc: @@ -107,4 +106,30 @@ public class FactOriginController { projectExtractService.saveOriginProjectDaily(extractFormDTO); return new Result(); } + + /** + * @Description 项目节点历时数据清洗 + * @param param + * @return + * @author wangc + * @date 2020.09.20 16:11 + **/ + @PostMapping("projectorgperiodcleanning") + public Result projectOrgPeriodCleaning(@RequestBody ExtractFormDTO param){ + projectExtractService.extractProjectPeriodData(param); + return new Result(); + } + + /** + * @Description 小组数据清洗 + * @param + * @return + * @author wangc + * @date 2020.09.20 16:11 + **/ + @PostMapping("groupdatacleaning") + public Result groupDataCleaning(@RequestBody ExtractFormDTO param){ + groupExtractService.extractGroupData(param); + return new Result(); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java index ff1c16d1ec..c2100cee16 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java @@ -19,6 +19,9 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; +import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginGroupMainDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -43,4 +46,76 @@ public interface FactOriginGroupMainDailyDao extends BaseDao selectPartyCreateGroupCount(@Param("customerId") String customerId,@Param("monthId") String monthId); + + /** + * @Description 查询是否存在该客户下的数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 23:30 + **/ + int selectIfExist(@Param("customerId")String customerId); + + /** + * @Description 按照客户Id清除组数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 09:58 + **/ + void deleteBatchByCustomerId(@Param("customerId")String customerId); + + /** + * @Description 按照客户Id清除组员数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 09:58 + **/ + void deleteBatchMemberByCustomerId(@Param("customerId")String customerId); + + /** + * @Description 按照组Id清除组和组员数据 + * @param list + * @return + * @author wangc + * @date 2020.09.20 12:16 + **/ + void deleteBatchByGroupId(@Param("list") List list); + + /** + * @Description 更新群主的党员信息 + * @param list + * @return + * @author wangc + * @date 2020.09.20 12:44 + **/ + int updatePartyFlag(@Param("list") List list); + + /** + * @Description 更新群主的热心居民信息 + * @param list + * @return + * @author wangc + * @date 2020.09.20 12:44 + **/ + int updateHeartedFlag(@Param("list") List list); + + /** + * @Description 批量插入组主表 + * @param list + * @return + * @author wangc + * @date 2020.09.20 15:37 + **/ + int insertBatchMain(@Param("list") List list); + + /** + * @Description 批量插入组员表 + * @param list + * @return + * @author wangc + * @date 2020.09.20 15:37 + **/ + int insertBatchMembers(List list); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java index db1bc08318..32059b58b3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java @@ -1,5 +1,6 @@ package com.epmet.dao.group; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; import com.epmet.dto.group.form.GridGroupPeopleFormDTO; import com.epmet.dto.group.form.GridGroupPeopleTotalFormDTO; import com.epmet.dto.group.form.GridGroupTotalFormDTO; @@ -80,4 +81,13 @@ public interface GroupDataDao { * @author zxc */ List getAgencyGrid(@Param("gridIds")List gridIds); + + /** + * @Description 抽取小组数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 22:45 + **/ + List groupExtracting(@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/DimGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java index dd2338bb69..3087abdd21 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.group.AgencyDTO; import com.epmet.dto.group.result.AgencyGridInfoResultDTO; import com.epmet.dto.group.result.SubAgencyIdResultDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.dto.stats.result.GridBelongAgencyResultDTO; import com.epmet.entity.stats.DimGridEntity; import org.apache.ibatis.annotations.Mapper; @@ -69,4 +70,13 @@ public interface DimGridDao extends BaseDao { * @date 2020/9/17 2:34 下午 */ List selectGridBelongAgencyInfo(@Param("gridIds") List gridIds); + + /** + * @Description 查询网格的所有所属上级属性 + * @param gridIds + * @return + * @author wangc + * @date 2020.09.20 13:01 + **/ + List selectGridAttributes(@Param("gridIds") List gridIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index 9e50c2d7d4..22372cbed4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -1,5 +1,6 @@ package com.epmet.dao.user; +import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; import org.apache.ibatis.annotations.Mapper; @@ -105,5 +106,9 @@ public interface UserDao { * @author zxc * @date 2020/9/15 4:23 下午 */ - List selectUserIsParty(@Param("userIds") List userIds);; + List selectUserIsParty(@Param("userIds") List userIds); + + List selectPartymembersByCustomerId(@Param("customerId")String customerId); + + List selectWarmHeartedByCustomerId(@Param("customerId")String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java index c6dc080aea..b5f0d2d53b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java @@ -83,7 +83,7 @@ public class FactOriginProjectOrgPeriodDailyEntity extends BaseEpmetEntity { /** * 截至第一次响应时长,从流转到第一次处理(响应、结案、流转)耗时,大于等于上一项值 */ - private Integer periodTillReplyFirstly; + private Date periodTillReplyFirstly; /** * resloved 、 unresolved diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java index e775660b9e..c43a4d01c7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java @@ -4,6 +4,8 @@ import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import java.util.List; +import com.epmet.dto.extract.form.ExtractFormDTO; + /** * @Desc 业务数据抽取 - 组相关 * @Author wangc @@ -20,4 +22,13 @@ public interface GroupExtractService { */ List selectPartyCreateGroupCount(String customerId,String monthId); + + /** + * @Description 业务抽取 - 小组祥光 + * @param param + * @return + * @author wangc + * @date 2020.09.18 21:07 + **/ + void extractGroupData(ExtractFormDTO param); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java index 56a3b46245..9d3c89eca8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java @@ -2,10 +2,34 @@ package com.epmet.service.evaluationindex.extract.impl; import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.service.evaluationindex.extract.GroupExtractService; +import com.epmet.service.group.GroupDataService; +import com.epmet.service.stats.DimAgencyService; +import com.epmet.service.stats.DimGridService; +import com.epmet.service.user.UserService; +import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; import java.util.List; @@ -33,4 +57,96 @@ public class GroupExtractServiceImpl implements GroupExtractService { public List selectPartyCreateGroupCount(String customerId, String monthId) { return groupMainDailyDao.selectPartyCreateGroupCount(customerId, monthId); } + @Autowired + private GroupDataService groupDataService; + @Autowired + private FactOriginGroupMainDailyDao factOriginGroupMainDailyDao; + @Autowired + private UserService userService; + @Autowired + private DimGridService dimGridService; + + /** + * @Description 业务抽取 - 小组祥光 + * @param param + * @return + * @author wangc + * @date 2020.09.18 21:07 + **/ + @Override + public void extractGroupData(ExtractFormDTO param) { + int count = factOriginGroupMainDailyDao.selectIfExist(param.getCustomerId()); + + if(StringUtils.isBlank(param.getDateId())){ + Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + param.setDateId(format.format(yesterday)); + } + //原生数据,如果是首次,则为全部组,如果非首次,则只有新创建以及新进人的组 + //但是每个组每天都要更新一次组长的身份信息 + List originGroupData = groupDataService.extractGroupData( + count <= NumConstant.ZERO ? true : false, + param.getCustomerId(), param.getDateId()); + + List memberList = new LinkedList<>(); + if (!CollectionUtils.isEmpty(originGroupData)) { + List gridList = dimGridService.getGridAttributes(originGroupData.stream().map(FactOriginGroupMainDailyDTO::getGridId).distinct().collect(Collectors.toList())); + + if (!CollectionUtils.isEmpty(gridList)) { + Map gridMap = + gridList.stream().collect(Collectors.toMap(GridAttributesResultDTO::getGridId, Function.identity(), (key1, key2) -> key2)); + if (!CollectionUtils.isEmpty(originGroupData)) { + originGroupData.forEach(group -> { + if (!CollectionUtils.isEmpty(group.getMembers())) { + group.setMemberTotal(group.getMembers().size()); + group.getMembers().forEach(member -> { + DimIdGenerator.DimIdBean dateInfo = DimIdGenerator.getDimIdBean(member.getJoinDate()); + member.setDateId(dateInfo.getDateId()); + member.setWeekId(dateInfo.getWeekId()); + member.setMonthId(dateInfo.getMonthId()); + member.setQuarterId(dateInfo.getQuarterId()); + member.setYearId(dateInfo.getYearId()); + + memberList.add(member); + }); + } + GridAttributesResultDTO attr = gridMap.get(group.getGridId()); + if (null != attr) { + group.setAgencyId(attr.getAgencyId()); + group.setParentId(attr.getParentId()); + group.setPids(attr.getPids()); + } + if(null != group.getCreatedTime()){ + DimIdGenerator.DimIdBean dateInfo = DimIdGenerator.getDimIdBean(group.getCreatedTime()); + group.setDateId(dateInfo.getDateId()); + group.setWeekId(dateInfo.getWeekId()); + group.setMonthId(dateInfo.getMonthId()); + group.setQuarterId(dateInfo.getQuarterId()); + group.setYearId(dateInfo.getYearId()); + } + }); + } + + + if (count <= NumConstant.ZERO) { + //isFirst + factOriginGroupMainDailyDao.deleteBatchByCustomerId(param.getCustomerId()); + factOriginGroupMainDailyDao.deleteBatchMemberByCustomerId(param.getCustomerId()); + factOriginGroupMainDailyDao.insertBatchMain(originGroupData); + factOriginGroupMainDailyDao.insertBatchMembers(memberList); + } else { + factOriginGroupMainDailyDao.deleteBatchByGroupId(originGroupData.stream().map(FactOriginGroupMainDailyDTO :: getId).distinct().collect(Collectors.toList())); + factOriginGroupMainDailyDao.insertBatchMembers(memberList); + } + + } + + + List partyIds = userService.getPartymembersByCustomerId(param.getCustomerId()); + List heartedIds = userService.getWarmHeartedByCustomerId(param.getCustomerId()); + + factOriginGroupMainDailyDao.updatePartyFlag(partyIds); + factOriginGroupMainDailyDao.updateHeartedFlag(heartedIds); + } + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java index 20c3e99e29..37f6237c88 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java @@ -6,7 +6,6 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; -import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; import com.epmet.service.evaluationindex.extract.ProjectPeriodExtractService; import com.epmet.service.project.ProjectProcessService; diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java index 82588801a7..38e291d420 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java @@ -1,5 +1,6 @@ package com.epmet.service.group; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; import com.epmet.dto.group.result.*; import com.epmet.util.DimIdGenerator; import org.apache.ibatis.annotations.Param; @@ -55,4 +56,14 @@ public interface GroupDataService { */ List getAgencyGrid(@Param("gridIds") List gridIds); + /** + * @Description 业务抽取 - 小组数据 + * @param isFirst + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 22:52 + **/ + List extractGroupData(Boolean isFirst,String customerId,String dateId); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java index 2b37f81ed6..b7875982d5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java @@ -4,6 +4,7 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.group.GroupDataDao; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; import com.epmet.dto.group.form.GridGroupPeopleFormDTO; import com.epmet.dto.group.form.GridGroupPeopleTotalFormDTO; import com.epmet.dto.group.form.GridGroupTotalFormDTO; @@ -12,9 +13,12 @@ import com.epmet.dto.group.result.*; import com.epmet.entity.stats.DimGridEntity; import com.epmet.service.group.GroupDataService; import com.epmet.util.DimIdGenerator; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.util.StringUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; @@ -193,4 +197,18 @@ public class GroupDataServiceImpl implements GroupDataService { } + /** + * @Description 业务抽取 - 小组数据 + * * @param isFirst + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 22:52 + **/ + @Override + public List extractGroupData(Boolean isFirst ,String customerId,String dateId) { + return groupDataDao.groupExtracting(customerId,isFirst?null:dateId); + } + + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index a78dec1da7..fdf84a48e5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -143,19 +143,16 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl processSingleList = dest.get(staffResponseTraceUnit.get(index).getProcessId()); if(!CollectionUtils.isEmpty(processSingleList)){ - ProjectOrgPeriodResultDTO element = processSingleList.get(NumConstant.ZERO); + //ProjectOrgPeriodResultDTO element = processSingleList.get(NumConstant.ZERO); + ProjectOrgPeriodResultDTO element = processSingleList.stream().filter(node -> + StringUtils.equals(node.getStaffId(),staffResponseTraceUnit.get(index).getStaffId())).findFirst().get(); if(!ifResponsed && null == element.getHandledDate()){ log.warn("com.epmet.service.project.impl.ProjectProcessServiceImpl.skipLevelGrouping::已流出节点没有办结日期,节点ID{}",element.getProcessId() ); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java index 399781d3d3..aed58b369b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java @@ -23,6 +23,7 @@ import com.epmet.dto.group.AgencyDTO; import com.epmet.dto.group.result.AgencyGridInfoResultDTO; import com.epmet.dto.group.result.SubAgencyIdResultDTO; import com.epmet.dto.stats.DimGridDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.dto.stats.result.GridBelongAgencyResultDTO; import com.epmet.entity.stats.DimGridEntity; import com.epmet.entity.stats.LastExecRecordEntity; @@ -138,4 +139,13 @@ public interface DimGridService extends BaseService { * @date 2020/9/17 2:34 下午 */ List selectGridBelongAgencyInfo(List gridIds); + + /** + * @Description 查询网格的所有所属上级属性 + * @param gridIds + * @return + * @author wangc + * @date 2020.09.20 13:01 + **/ + List getGridAttributes(List gridIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java index f7cec14b13..6a6a5ff323 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java @@ -34,6 +34,7 @@ import com.epmet.dto.group.AgencyDTO; import com.epmet.dto.group.result.AgencyGridInfoResultDTO; import com.epmet.dto.group.result.SubAgencyIdResultDTO; import com.epmet.dto.stats.DimGridDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.dto.stats.result.GridBelongAgencyResultDTO; import com.epmet.entity.stats.DimGridEntity; import com.epmet.service.stats.DimGridService; @@ -41,11 +42,9 @@ 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.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 客户网格维度 @@ -177,4 +176,17 @@ public class DimGridServiceImpl extends BaseServiceImpl selectGridBelongAgencyInfo(List gridIds) { return baseDao.selectGridBelongAgencyInfo(gridIds); } + + /** + * @Description 查询网格的所有所属上级属性 + * @param gridIds + * @return + * @author wangc + * @date 2020.09.20 13:01 + **/ + @Override + public List getGridAttributes(List gridIds) { + if(CollectionUtils.isEmpty(gridIds)) return Collections.EMPTY_LIST; + return baseDao.selectGridAttributes(gridIds); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java index 60934ed2c1..0203780cc8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java @@ -1,8 +1,10 @@ package com.epmet.service.user; import com.epmet.dto.AgencySubTreeDto; +import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.util.DimIdGenerator; +import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; @@ -35,4 +37,22 @@ public interface UserService { * @date 2020/9/15 4:23 下午 */ Map selectUserIsParty(List userIds); + + /** + * @Description 查询客户下的党员userId + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + List getPartymembersByCustomerId(String customerId); + + /** + * @Description 查询客户下的热心居民Id以及所在网格Id + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + List getWarmHeartedByCustomerId(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index 3d230f476b..5a8aa7b3f2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -6,6 +6,7 @@ import com.epmet.constant.DataSourceConstant; import com.epmet.constant.ExtractConstant; import com.epmet.dao.user.UserDao; import com.epmet.dto.AgencySubTreeDto; +import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.stats.user.*; import com.epmet.dto.stats.user.result.UserStatisticalData; @@ -152,6 +153,30 @@ public class UserServiceImpl implements UserService { return result; } + /** + * @Description 查询客户下的党员userId + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + @Override + public List getPartymembersByCustomerId(String customerId) { + return userDao.selectPartymembersByCustomerId(customerId); + } + + /** + * @Description 查询客户下的热心居民Id以及所在网格Id + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + @Override + public List getWarmHeartedByCustomerId(String customerId) { + return userDao.selectWarmHeartedByCustomerId(customerId); + } + /** * @Description 初始化机关-所有下级网格Map diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index fd90cd5a18..305b618772 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -18,4 +18,182 @@ + + + + DELETE FROM + fact_origin_group_main_daily + WHERE + CUSTOMER_ID = #{customerId} + + + + + + DELETE FROM + fact_origin_group_member_daily + WHERE + CUSTOMER_ID = #{customerId} + + + + DELETE FROM + fact_origin_group_main_daily + + + ID = #{groupId} + + + + + + UPDATE fact_origin_group_main_daily + SET IS_OWNER_PARTY = 1 + + DEL_FLAG = '0' + AND + + GROUP_OWNER_ID = #{ownerId} + + + + + + UPDATE fact_origin_group_main_daily + SET IS_OWNER_HEARTED = 1 + + DEL_FLAG = '0' + AND + + (GROUP_OWNER_ID = #{item.userId} AND GRID_ID = #{item.gridId}) + + + + + + INSERT INTO fact_origin_group_main_daily + ( + + id, + customer_id, + group_state, + grid_id, + agency_id, + parent_id, + pids, + date_id, + week_id, + month_id, + quarter_id, + year_id, + resi_member_count, + member_total, + group_owner_id, + is_owner_hearted, + is_owner_party, + del_flag, + revision, + created_by, + created_time, + updated_by, + updated_time + )VALUES + + ( + #{item.id}, + #{item.customerId}, + #{item.groupState}, + #{item.gridId}, + #{item.agencyId}, + #{item.parentId}, + #{item.pids}, + #{item.dateId}, + #{item.weekId}, + #{item.monthId}, + #{item.quarterId}, + #{item.yearId}, + 0, + #{item.memberTotal}, + #{item.groupOwnerId}, + + + 0, + + + #{item.isOwnerHearted}, + + + + + + 0, + + + #{item.isOwnerParty}, + + + + '0', + 0, + 'CRAWLER_ROBOT', + now(), + 'CRAWLER_ROBOT', + now() + + ) + + + + + + INSERT INTO fact_origin_group_member_daily + ( + id, + group_id, + member_id, + customer_id, + leader_flag, + date_id, + week_id, + month_id, + quarter_id, + year_id, + action_code, + revision, + del_flag, + created_by, + created_time, + updated_by, + updated_time + )VALUES + + ( + (SELECT REPLACE(UUID(), '-', '') AS id), + #{item.groupId}, + #{item.memberId}, + #{item.customerId}, + #{item.leaderFlag}, + #{item.dateId}, + #{item.weekId}, + #{item.monthId}, + #{item.quarterId}, + #{item.yearId}, + #{item.actionCode}, + '0', + 0, + 'CRAWLER_ROBOT', + now(), + 'CRAWLER_ROBOT', + now() + ) + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml index c047ea0541..a642ff1f56 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml @@ -29,7 +29,7 @@ @@ -90,24 +90,27 @@ ( (SELECT REPLACE(UUID(), '-', '') AS id), - #{customerId}, - #{projectId}, - #{orgId}, - #{orgType}, - #{pid}, - #{pids}, - #{informedDate}, - #{handledDate}, - #{totalPeriod}, - #{periodTillReplyFirstly}, - #{isResolved}, - #{operation}, + #{item.customerId}, + #{item.projectId}, + #{item.orgId}, + #{item.orgType}, + + 0, + #{item.pid}, + + #{item.pids}, + #{item.informedDate}, + #{item.handledDate}, + #{item.totalPeriod}, + #{item.periodTillReplyFirstly}, + #{item.isResolved}, + #{item.operation}, '0', 0, - 'CRAWLER_ROBOT', now(), 'CRAWLER_ROBOT', - now() + now(), + 'CRAWLER_ROBOT' ) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml index 0ed8f428fe..61e4057e22 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml @@ -155,5 +155,61 @@ rgm.resi_group_id - + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index fae85f5561..be19516363 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -90,11 +90,14 @@ staff.ORG_ID, staff.DEPARTMENT_ID, staff.GRID_ID, + staff.CREATED_BY AS staffId, staff.ORG_ID_PATH, IF(staff.IS_HANDLE='handle',timestampdiff(MINUTE , staff.CREATED_TIME , staff.UPDATED_TIME),0) AS TOTAL_PERIOD, + staff.CREATED_TIME AS informedDate, - -- 转入时间 - IF(staff.IS_HANDLE='handle',staff.UPDATED_TIME,null) AS handledDate + IF(staff.IS_HANDLE='handle','resolved','unresolved') AS isResolved, + IF(staff.IS_HANDLE='handle',staff.UPDATED_TIME,null) AS handledDate, + IF(staff.IS_HANDLE='handle',staff.UPDATED_TIME,null) AS periodTillReplyFirstly FROM PROJECT_STAFF staff LEFT JOIN PROJECT project ON staff.PROJECT_ID = project.ID AND project.DEL_FLAG = '0' @@ -102,7 +105,7 @@ LEFT JOIN PROJECT_PROCESS selfAction ON staff.PROJECT_ID = selfAction.PROJECT_ID AND selfAction.DEL_FLAG = '0' AND staff.UPDATED_TIME = selfAction.CREATED_TIME AND staff.STAFF_ID = selfAction.STAFF_ID WHERE staff.DEL_FLAG = '0' AND project.CUSTOMER_ID = #{customerId} - + AND project.STATUS = #{projectStatus} @@ -114,7 +117,7 @@ ) AND process.OPERATION ]]> 'response' - ORDER BY process.PROJECT_ID,staff.CREATED_TIME ASC -- 按照立项-流转的顺序 + ORDER BY process.PROJECT_ID,staff.CREATED_TIME ASC diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml index d3f6c044a3..09aa1bee36 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml @@ -89,4 +89,23 @@ ) + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 67e2ab9442..22061e3e70 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -424,4 +424,37 @@ ) + + + + From 201b82ba87032fc65c4de6202fa37aea320593ff Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 20 Sep 2020 21:17:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8A=BD=E5=8F=96=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B0=8F=E7=BB=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/impl/FactOriginExtractServiceImpl.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java index f1a5b7e378..6b1aa32805 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java @@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.service.evaluationindex.extract.FactOriginExtractService; -import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; -import com.epmet.service.evaluationindex.extract.IssueExtractService; -import com.epmet.service.evaluationindex.extract.ProjectExtractService; +import com.epmet.service.evaluationindex.extract.*; import com.epmet.service.stats.DimCustomerService; import com.epmet.util.DimIdGenerator; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -42,6 +39,8 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { private ProjectExtractService projectExtractService; @Autowired private DimCustomerService dimCustomerService; + @Autowired + private GroupExtractService groupExtractService; @Override @@ -74,6 +73,13 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { } private void submitJob(ExtractFormDTO param) { + threadPool.submit(() -> { + try { + groupExtractService.extractGroupData(param); + } catch (Exception e) { + log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + }); threadPool.submit(() -> { try { factOriginTopicMainDailyService.topicCleaning(param); From 37b4b4c6bba97a17fb3855e1ccfe7693eb4834c9 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 20 Sep 2020 21:51:09 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8A=BD=E5=8F=96?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/FactExtractOpenFeignClient.java | 30 +++ .../FactExtractOpenFeignClientFallBack.java | 184 ++++++++++++++++++ .../controller/FactOriginController.java | 4 +- .../service/FactOriginExtractTaskService.java | 23 +++ .../FactOriginExtractTaskServiceImpl.java | 30 +++ .../com/epmet/task/FactOriginExtractTask.java | 48 +++++ 6 files changed, 317 insertions(+), 2 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java new file mode 100644 index 0000000000..97bd66843c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java @@ -0,0 +1,30 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.feign.impl.FactExtractOpenFeignClientFallBack; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * desc: 数据抽取 对外feign client + * + * @return: + * @date: 2020/6/22 17:39 + * @author: jianjun liu + */ +@FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallback = FactExtractOpenFeignClientFallBack.class) +public interface FactExtractOpenFeignClient { + + /** + * desc: 【日】抽取业务数据到统计库 小组 话题 议题 项目 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @PostMapping(value = "data/stats/factorigin/extractall") + Result extractall(@RequestBody(required = false) ExtractFormDTO formDTO); + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java new file mode 100644 index 0000000000..b5a24ce131 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java @@ -0,0 +1,184 @@ +package com.epmet.feign.impl; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.group.form.GroupStatsFormDTO; +import com.epmet.dto.issue.form.IssueJobFromDTO; +import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import org.springframework.stereotype.Component; + +/** + * desc: + * + * @return: + * @date: 2020/6/22 9:38 + * @author: jianjun liu + * email:liujianjun@git.elinkit.com.cn + */ +@Component +public class FactExtractOpenFeignClientFallBack implements DataStatisticalOpenFeignClient { + + /** + * desc: 【日】统计文章总数及在线文章总数 包含 机关 部门 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result articleSummaryDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "articleSummaryDailyStatsjob", formDTO); + } + + /** + * desc: 定时任务 【日】统计文章总数及在线文章总数 包含 机关 部门 网格 + * + * @return: + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagUsedDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedDailyStatsjob", formDTO); + } + + /** + * desc: 【月】 统计发表文章最多的分类 包含 机关 部门 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagUsedMonthlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedMonthlyStatsjob", formDTO); + } + + /** + * desc: 【季,年】 统计发表文章最多的分类 包含 机关 部门 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagUsedQuarterlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedQuarterlyStatsjob", formDTO); + } + + /** + * desc: 【日】 统计阅读最多的标签 包含 机关 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagViewedDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedDailyStatsjob", formDTO); + } + + /** + * desc: 【月】 统计阅读最多的标签 包含 机关 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagViewedMonthlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedMonthlyStatsjob", formDTO); + } + + /** + * desc: 【季,年】 统计阅读最多的标签 包含 机关 网格 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagViewedQuarterlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedQuarterlyStatsjob", formDTO); + } + + @Override + public Result groupGridDaily(GroupStatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupGridDaily", formDTO); + } + + @Override + public Result groupAgencyDaily(GroupStatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupAgencyDaily", formDTO); + } + + @Override + public Result groupAgencyMonthly(GroupStatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupAgencyMonthly", formDTO); + } + + @Override + public Result agencyGridIssueStats() { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyGridIssueStats"); + } + + @Override + public Result agencyGridIssueStatsOfDate(IssueJobFromDTO fromDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyGridIssueStatsOfDate"); + } + + /** + * @Description 数据统计-项目-机关日月统计 + * @Author sun + */ + @Override + public Result agencyProjectStats(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyProjectStats", formDTO); + } + + /** + * @Description 数据统计-项目-网格日月统计 + * @Author sun + */ + @Override + public Result gridProjectStats(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "gridProjectStats", formDTO); + } + + @Override + public Result initAllDims() { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "initAllDims"); + } + + /** + * @param + * @return + * @Description 执行用户统计 + * @author wangc + * @date 2020.06.29 09:26 + **/ + @Override + public Result execUserStatistical(String date) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "execUserStatistical", date); + } + + /** + * @param + * @return + * @Description 执行话题统计 + * @author wangc + * @date 2020.06.29 09:27 + **/ + @Override + public Result execTopicStatistical(String date) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "execTopicStatistical", date); + } + + @Override + public Result getPartyInfo(CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getPartyInfo", customerIdAndDateIdFormDTO); + } + + @Override + public Result processPenddingCalculate() { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "processPenddingCalculate"); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index b90bdcdc28..0810df755a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -37,9 +37,9 @@ public class FactOriginController { private GroupExtractService groupExtractService; /** - * desc: + * desc:抽取业务数据到统计库 * - * @param extractFormDTO + * @param extractFormDTO 默认统计前一天 * @return */ @PostMapping("extractall") diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java new file mode 100644 index 0000000000..59ce874166 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java @@ -0,0 +1,23 @@ +package com.epmet.service; + + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractFormDTO; + +/** + * desc: 业务数据抽取到统计库服务类 + * + * @return: + * @date: 2020/6/22 10:24 + * @author: jianjun liu + */ +public interface FactOriginExtractTaskService { + + /** + * desc: 【日】抽取 小组 话题 议题 项目数据到统计库 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + Result factOriginExtractJob(ExtractFormDTO formDTO); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java new file mode 100644 index 0000000000..b9b818d305 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java @@ -0,0 +1,30 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.feign.FactExtractOpenFeignClient; +import com.epmet.service.FactOriginExtractTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * desc:数据统计 任务服务类 + */ +@Service +public class FactOriginExtractTaskServiceImpl implements FactOriginExtractTaskService { + @Autowired + private FactExtractOpenFeignClient factExtractOpenFeignClient; + + + /** + * desc: 【日】抽取 小组 话题 议题 项目数据到统计库 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result factOriginExtractJob(ExtractFormDTO formDTO) { + return factExtractOpenFeignClient.extractall(formDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java new file mode 100644 index 0000000000..51d4a847bc --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java @@ -0,0 +1,48 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.service.FactOriginExtractTaskService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * desc:数据抽取定时任务 定时任务 + */ +@Component("factOriginExtractTask") +public class FactOriginExtractTask implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private FactOriginExtractTaskService factOriginExtractTaskService; + + + @Override + public void run(String params) { + logger.info("FactOriginExtractTask定时任务正在执行,参数为:{}", params); + ExtractFormDTO formDTO = new ExtractFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, ExtractFormDTO.class); + } + Result result = factOriginExtractTaskService.factOriginExtractJob(formDTO); + if (result.success()) { + logger.info("FactOriginExtractTask定时任务执行成功"); + } else { + logger.error("FactOriginExtractTask定时任务执行失败:" + result.getMsg()); + } + } + + public static void main(String[] args) { + StatsFormDTO formDTO = new StatsFormDTO(); + String params = "{'date':'\"2020-06-20','customerId':'123'}"; + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, StatsFormDTO.class); + } + System.out.println(JSON.toJSONString(formDTO)); + } +} From 29eac44df52c784e81462365762039b85907eea3 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Sun, 20 Sep 2020 22:27:00 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=B2=BB=E7=90=86=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/project/FinishOrgDTO.java | 20 ++++ .../extract/FactOriginProjectLogDailyDao.java | 19 +++- .../FactOriginProjectMainDailyDao.java | 6 +- .../FactOriginProjectOrgPeriodDailyDao.java | 8 +- .../FactIndexGovrnAblityOrgMonthlyDao.java | 11 +++ .../epmet/dao/project/ProjectProcessDao.java | 5 +- .../com/epmet/dao/stats/DimAgencyDao.java | 10 ++ .../FactOriginProjectLogDailyService.java | 17 +++- .../FactOriginProjectMainDailyService.java | 6 +- .../FactOriginProjectLogDailyServiceImpl.java | 13 ++- ...FactOriginProjectMainDailyServiceImpl.java | 8 +- .../impl/ProjectExtractServiceImpl.java | 25 ++++- ...FactIndexGovrnAblityOrgMonthlyService.java | 22 +++++ .../indexcoll/IndexCollCommunityService.java | 16 +++- .../indexcoll/IndexCollStreetService.java | 10 ++ ...IndexGovrnAblityOrgMonthlyServiceImpl.java | 23 +++++ .../impl/IndexCollCommunityServiceImpl.java | 96 +++++++++++++++++-- .../impl/IndexCollStreetServiceImpl.java | 93 ++++++++++++++++++ .../project/ProjectProcessService.java | 11 +++ .../impl/ProjectProcessServiceImpl.java | 6 ++ .../epmet/service/stats/DimAgencyService.java | 11 +++ .../stats/impl/DimAgencyServiceImpl.java | 5 + .../extract/FactOriginProjectLogDailyDao.xml | 33 ++++++- .../extract/FactOriginProjectMainDailyDao.xml | 8 +- .../FactOriginProjectOrgPeriodDailyDao.xml | 1 + .../FactIndexGovrnAblityOrgMonthlyDao.xml | 6 ++ .../mapper/project/ProjectProcessDao.xml | 13 ++- .../resources/mapper/stats/DimAgencyDao.xml | 15 +++ 28 files changed, 480 insertions(+), 37 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java new file mode 100644 index 0000000000..ab5c9ef2ce --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 21:08 + */ +@Data +public class FinishOrgDTO implements Serializable { + + private static final long serialVersionUID = -5684606755705833962L; + private String projectId; + private String orgIdPath; + private String pIdPath; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java index 293163e1d9..759a56e82c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java @@ -40,11 +40,13 @@ public interface FactOriginProjectLogDailyDao extends BaseDao */ - List selectAgencyTransferCount(@Param("monthId") String monthId, @Param("level")String level); + List selectAgencyTransferCount(@Param("customerId") String customerId, @Param("monthId") String monthId, + @Param("level")String level); /** * @Description 查询未被退回的项目数 @@ -77,8 +79,21 @@ public interface FactOriginProjectLogDailyDao extends BaseDao + */ + List selectSatisfaction(@Param("customerId") String customerId, @Param("monthId") String monthId, + @Param("level")String level); } 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 a8fef6685c..58e683ebbf 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 @@ -58,10 +58,11 @@ public interface FactOriginProjectMainDailyDao extends BaseDao */ - List selectOverdueCount(@Param("monthId") String monthId); + List selectOverdueCount(@Param("customerId") String customerId, @Param("monthId") String monthId); /** * @Description 网格办结项目数 @@ -77,8 +78,9 @@ public interface FactOriginProjectMainDailyDao extends BaseDao */ -// List selectResponsiveness(@Param("monthId") String monthId, @Param("level")String level, -// @Param("orgType")String orgType); + List selectResponsiveness(@Param("customerId") String customerId, @Param("monthId") String monthId, + @Param("level")String level, + @Param("orgType")String orgType); + void deleteByProjectId(@Param("list") List list); /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java index ef770f48b5..c3c85c1ffd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java @@ -66,4 +66,15 @@ public interface FactIndexGovrnAblityOrgMonthlyDao extends BaseDao> selectCommunityGovernAbility(@Param("customerId")String customerId, @Param("monthId")String monthId,@Param("level")String level); + + /** + * 根据组织类型删除数据 + * @author zhaoqifeng + * @date 2020/9/20 20:52 + * @param customerId + * @param monthId + * @param type + * @return java.lang.Integer + */ + Integer deleteByCustomer(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("type") String type); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java index 1c71121c1d..72beea8ca3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.project; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.project.FinishOrgDTO; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; @@ -109,7 +110,7 @@ public interface ProjectProcessDao extends BaseDao { * @date 2020/9/18 18:01 * @param customerId * @param date - * @return java.util.List + * @return java.util.List */ - List selectFinishOrg(@Param("customerId") String customerId, @Param("date") String date); + List selectFinishOrg(@Param("customerId") String customerId, @Param("date") String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java index 7e20babbeb..487bc79f97 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java @@ -135,4 +135,14 @@ public interface DimAgencyDao extends BaseDao { * @date 2020/9/15 6:15 下午 */ List selectAgencyInfo(@Param("agencyIds")List agencyIds); + + /** + * 根据级别获取组织信息 + * @author zhaoqifeng + * @date 2020/9/20 17:31 + * @param customerId + * @param level + * @return java.util.List + */ + List selectDimAgencyByLevel(@Param("customerId")String customerId, @Param("level")String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java index ba3b6f5239..72f840ba81 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java @@ -101,11 +101,12 @@ public interface FactOriginProjectLogDailyService extends BaseService */ - List getAgencyTransferCount(String monthId, String level); + List getAgencyTransferCount(String customerId, String monthId, String level); /** * @Description 查询未被退回的项目数 @@ -129,10 +130,11 @@ public interface FactOriginProjectLogDailyService extends BaseService selectProjectAutoNoMy(String customerId,String monthId); + + /** + * 办结项目满意度 + * @author zhaoqifeng + * @date 2020/9/20 16:43 + * @param customerId + * @param monthId + * @param level + * @return java.util.List + */ + List getSatisfaction(String customerId, String monthId, String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java index 338418717b..2b8e9f629a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java @@ -127,17 +127,19 @@ public interface FactOriginProjectMainDailyService extends BaseService */ - List getOverdueCount(String monthId); + List getOverdueCount(String customerId, String monthId); /** * 根据日期删除数据 * @author zhaoqifeng * @date 2020/9/18 17:30 + * @param customerId * @param date * @return void */ - void deleteByDate(String date); + void deleteByDate(String customerId, String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java index e23ab2e626..a62fdd38e2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java @@ -102,8 +102,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getAgencyTransferCount(String monthId, String level) { - return baseDao.selectAgencyTransferCount(monthId, level); + public List getAgencyTransferCount(String customerId, String monthId, String level) { + return baseDao.selectAgencyTransferCount(customerId, monthId, level); } /** @@ -131,8 +131,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getSatisfaction(String customerId, String monthId, String level) { + return baseDao.selectSatisfaction(customerId, monthId, level); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java index 1358c2fdc4..3e42dfd1fb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java @@ -109,8 +109,8 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl getOverdueCount(String monthId) { - return baseDao.selectOverdueCount(monthId); + public List getOverdueCount(String customerId, String monthId) { + return baseDao.selectOverdueCount(customerId, monthId); } /** @@ -127,8 +127,8 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl closedList = projectProcessService.getClosedProjectList(customerId, dateString); List pendingList = factOriginProjectMainDailyService.getPendingList(customerId); + List finishOrgList= projectProcessService.getFinishOrg(customerId, dateString); if (null != closedList && !closedList.isEmpty()) { List closeProjects = pendingList.stream().flatMap(pending -> closedList.stream().filter(closed -> pending.getId().equals(closed.getProjectId())).map(process -> { @@ -85,6 +87,17 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setUpdatedTime(process.getUpdatedTime()); return entity; })).collect(Collectors.toList()); + + if (null != finishOrgList && !finishOrgList.isEmpty()) { + closeProjects.forEach(close -> finishOrgList.stream().filter(finish -> close.getId().equals(finish.getProjectId())).forEach(dto -> { + String[] orgIds = dto.getPIdPath().split(":"); + if (orgIds.length > NumConstant.ONE) { + close.setFinishOrgIds(orgIds[orgIds.length - 1]); + } else { + close.setFinishOrgIds(orgIds[0]); + } + })); + } //更新状态 if (!closeProjects.isEmpty()) { factOriginProjectMainDailyService.updateBatchById(closeProjects); @@ -141,9 +154,17 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { list.forEach(entity -> partyMemberList.stream().filter(partyMemberDTO -> partyMemberDTO.getGridId().equals(entity.getGridId()) && partyMemberDTO.getUserId().equals(entity.getTopicCreatorId())).forEach(partyMember -> { entity.setIsParty(NumConstant.ONE_STR); })); + list.forEach(entity -> finishOrgList.stream().filter(finish -> entity.getId().equals(finish.getProjectId())).forEach(dto -> { + String[] orgIds = dto.getPIdPath().split(":"); + if (orgIds.length > NumConstant.ONE) { + entity.setFinishOrgIds(orgIds[orgIds.length - 1]); + } else { + entity.setFinishOrgIds(orgIds[0]); + } + })); //插入数据 if (!list.isEmpty()) { - factOriginProjectMainDailyService.deleteByDate(dateString); + factOriginProjectMainDailyService.deleteByDate(customerId, dateString); factOriginProjectMainDailyService.insertBatch(list); } } @@ -222,7 +243,7 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { }).collect(Collectors.toList())); if (!logList.isEmpty()) { - factOriginProjectLogDailyService.deleteByDate(dateString); + factOriginProjectLogDailyService.deleteByDate(customerId, dateString); factOriginProjectLogDailyService.insertBatch(logList); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java new file mode 100644 index 0000000000..c2e3b3a179 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java @@ -0,0 +1,22 @@ +package com.epmet.service.evaluationindex.indexcoll; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 20:29 + */ +public interface FactIndexGovrnAblityOrgMonthlyService extends BaseService { + /** + * 根据客户清空数据 + * @author zhaoqifeng + * @date 2020/9/20 20:33 + * @param customerId + * @param monthId + * @param type + * @return void + */ + void deleteByCustomer(String customerId, String monthId, String type); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java index 26e46a623f..40fd419333 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java @@ -12,8 +12,20 @@ public interface IndexCollCommunityService { * * @author zhaoqifeng * @date 2020/9/18 13:52 - * @param + * @param customerId + * @param dateId * @return void */ - void saveCommunityAbility(); + void saveCommunityAbility(String customerId, String dateId); + + /** + * 社区党建能力统计 + * + * @author zhaoqifeng + * @date 2020/9/18 13:52 + * @param customerId + * @param dateId + * @return void + */ + void saveCommunityPartyAbility(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java index 2266a52369..a38bff296d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java @@ -7,4 +7,14 @@ package com.epmet.service.evaluationindex.indexcoll; * @date 2020/9/18 10:35 */ public interface IndexCollStreetService { + /** + * 街道治理能力统计 + * + * @author zhaoqifeng + * @date 2020/9/18 13:52 + * @param customerId + * @param dateId + * @return void + */ + void saveStreetAbility(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java new file mode 100644 index 0000000000..a1665b836c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java @@ -0,0 +1,23 @@ +package com.epmet.service.evaluationindex.indexcoll.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyDao; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; +import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 20:29 + */ +@Service +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class FactIndexGovrnAblityOrgMonthlyServiceImpl extends BaseServiceImpl implements FactIndexGovrnAblityOrgMonthlyService { + @Override + public void deleteByCustomer(String customerId, String monthId, String type) { + baseDao.deleteByCustomer(customerId, monthId, type); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java index 4fcf0bcaff..73e99caaa0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java @@ -1,21 +1,30 @@ package com.epmet.service.evaluationindex.indexcoll.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.OrgTypeConstant; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyDao; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; +import com.epmet.dto.stats.DimAgencyDTO; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; +import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; import com.epmet.service.evaluationindex.indexcoll.IndexCollCommunityService; +import com.epmet.service.stats.DimAgencyService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @author zhaoqifeng @@ -27,7 +36,9 @@ import java.util.List; @DataSource(DataSourceConstant.EVALUATION_INDEX) public class IndexCollCommunityServiceImpl implements IndexCollCommunityService { @Autowired - private FactIndexGovrnAblityOrgMonthlyDao factIndexGovrnAblityOrgMonthlyDao; + private DimAgencyService dimAgencyService; + @Autowired + private FactIndexGovrnAblityOrgMonthlyService factIndexGovrnAblityOrgMonthlyService; @Autowired private FactOriginProjectLogDailyService factOriginProjectLogDailyService; @Autowired @@ -36,19 +47,90 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService private FactOriginProjectMainDailyService factOriginProjectMainDailyService; @Override - public void saveCommunityAbility() { + public void saveCommunityAbility(String customerId, String dateId) { //当前日期前一天 - Date date = DateUtils.getBeforeDay(new Date()); + Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); //获取日期相关维度 DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取社区列表 + ListagencyList = dimAgencyService.getAgencyByLevel(customerId, OrgTypeConstant.COMMUNITY); + //社区数据初始化 + List list = agencyList.stream().map(agency ->{ + FactIndexGovrnAblityOrgMonthlyEntity entity = new FactIndexGovrnAblityOrgMonthlyEntity(); + entity.setCustomerId(customerId); + entity.setAgencyId(agency.getId()); + entity.setParentId(agency.getPid()); + entity.setYearId(dimId.getYearId()); + entity.setQuarterId(dimId.getQuarterId()); + entity.setMonthId(dimId.getMonthId()); + entity.setDataType(OrgTypeConstant.COMMUNITY); + entity.setTransferedCount(NumConstant.ZERO); + entity.setClosedProjectCount(NumConstant.ZERO); + entity.setRespProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setOverdueProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO)); + entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO)); + return entity; + }).collect(Collectors.toList()); + //被吹哨次数统计 - List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(dimId.getMonthId(), "community"); + List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(customerId, dimId.getMonthId(), + OrgTypeConstant.COMMUNITY); + if (null != transferCount && !transferCount.isEmpty()) { + list.forEach(entity -> transferCount.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(count -> { + entity.setTransferedCount(count.getCount()); + })); + } + //社区项目响应度 -// List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(dimId.getMonthId(), "community", -// "agency"); + List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(customerId, dimId.getMonthId(), + OrgTypeConstant.COMMUNITY, OrgTypeConstant.AGENCY); + if (null != responsiveness && !responsiveness.isEmpty()) { + list.forEach(entity -> responsiveness.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(response -> { + if (response.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(response.getCount()); + BigDecimal sum = new BigDecimal(response.getSum()); + entity.setRespProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + //社区超期项目率 - List overdueCount = factOriginProjectMainDailyService.getOverdueCount(dimId.getMonthId()); + List overdueCount = factOriginProjectMainDailyService.getOverdueCount(customerId, dimId.getMonthId()); + if (null != overdueCount && !overdueCount.isEmpty()) { + list.forEach(entity -> overdueCount.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(overdue -> { + if (overdue.getSum() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(overdue.getCount()); + BigDecimal sum = new BigDecimal(overdue.getSum()); + entity.setOverdueProjectRatio(count.divide(sum, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + //社区办结项目满意度 + List satisfaction = factOriginProjectLogDailyService.getSatisfaction(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); + if (null != satisfaction && !satisfaction.isEmpty()) { + list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> { + if (sa.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(sa.getCount()); + BigDecimal sum = new BigDecimal(sa.getSum()); + entity.setOverdueProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); + factIndexGovrnAblityOrgMonthlyService.insertBatch(list); + } + @Override + public void saveCommunityPartyAbility(String customerId, String dateId) { + //当前日期前一天 + Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); + //获取日期相关维度 + DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取社区列表 + ListagencyList = dimAgencyService.getAgencyByLevel(customerId, OrgTypeConstant.COMMUNITY); + //获取社区发文数量 } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java index 09ceaf6188..8f32d7507a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java @@ -1,11 +1,30 @@ package com.epmet.service.evaluationindex.indexcoll.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.OrgTypeConstant; +import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; +import com.epmet.dto.extract.result.OrgStatisticsResultDTO; +import com.epmet.dto.stats.DimAgencyDTO; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; +import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; +import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; +import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; import com.epmet.service.evaluationindex.indexcoll.IndexCollStreetService; +import com.epmet.service.stats.DimAgencyService; +import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + /** * @author zhaoqifeng * @dscription @@ -15,4 +34,78 @@ import org.springframework.stereotype.Service; @Slf4j @DataSource(DataSourceConstant.EVALUATION_INDEX) public class IndexCollStreetServiceImpl implements IndexCollStreetService { + @Autowired + private DimAgencyService dimAgencyService; + @Autowired + private FactIndexGovrnAblityOrgMonthlyService factIndexGovrnAblityOrgMonthlyService; + @Autowired + private FactOriginProjectLogDailyService factOriginProjectLogDailyService; + @Autowired + private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; + @Autowired + private FactOriginProjectMainDailyService factOriginProjectMainDailyService; + @Override + public void saveStreetAbility(String customerId, String dateId) { + //当前日期前一天 + Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); + //获取日期相关维度 + DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取社区列表 + ListagencyList = dimAgencyService.getAgencyByLevel(customerId, OrgTypeConstant.STREET); + //社区数据初始化 + List list = agencyList.stream().map(agency ->{ + FactIndexGovrnAblityOrgMonthlyEntity entity = new FactIndexGovrnAblityOrgMonthlyEntity(); + entity.setCustomerId(customerId); + entity.setAgencyId(agency.getId()); + entity.setParentId(agency.getPid()); + entity.setYearId(dimId.getYearId()); + entity.setQuarterId(dimId.getQuarterId()); + entity.setMonthId(dimId.getMonthId()); + entity.setDataType(OrgTypeConstant.STREET); + entity.setTransferedCount(NumConstant.ZERO); + entity.setClosedProjectCount(NumConstant.ZERO); + entity.setRespProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setOverdueProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO)); + entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO)); + return entity; + }).collect(Collectors.toList()); + + //被吹哨次数统计 + List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(customerId, dimId.getMonthId(), + OrgTypeConstant.STREET); + if (null != transferCount && !transferCount.isEmpty()) { + list.forEach(entity -> transferCount.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(count -> { + entity.setTransferedCount(count.getCount()); + })); + } + + //社区项目响应度 + List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(customerId, dimId.getMonthId(), + OrgTypeConstant.STREET, OrgTypeConstant.AGENCY); + if (null != responsiveness && !responsiveness.isEmpty()) { + list.forEach(entity -> responsiveness.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(response -> { + if (response.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(response.getCount()); + BigDecimal sum = new BigDecimal(response.getSum()); + entity.setRespProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + + //社区办结项目满意度 + List satisfaction = factOriginProjectLogDailyService.getSatisfaction(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); + if (null != satisfaction && !satisfaction.isEmpty()) { + list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> { + if (sa.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(sa.getCount()); + BigDecimal sum = new BigDecimal(sa.getSum()); + entity.setOverdueProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); + factIndexGovrnAblityOrgMonthlyService.insertBatch(list); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java index 42def9affd..b6b0f70269 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java @@ -18,6 +18,7 @@ package com.epmet.service.project; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.project.FinishOrgDTO; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.entity.project.ProjectEntity; @@ -90,4 +91,14 @@ public interface ProjectProcessService extends BaseService * @date 2020.09.18 13:38 **/ List getProjectPeriod(Boolean isFirst,String customerId,String date); + + /** + * 获取办结组织 + * @author zhaoqifeng + * @date 2020/9/20 21:11 + * @param customerId + * @param date + * @return java.util.List + */ + List getFinishOrg(String customerId, String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index fdf84a48e5..6d4f47d76c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.project.ProjectProcessDao; import com.epmet.dto.form.CommonStaffIdFormDTO; +import com.epmet.dto.project.FinishOrgDTO; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; @@ -117,6 +118,11 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl(); } + @Override + public List getFinishOrg(String customerId, String date) { + return baseDao.selectFinishOrg(customerId, date); + } + /** * @Description 跨级分组 eg -> transfer ; response response transfer ; return ; response close. * @param dest - Map> 需要填充的数据 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java index aad2cae314..e22b42c609 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java @@ -25,6 +25,7 @@ import com.epmet.dto.stats.DimAgencyDTO; import com.epmet.entity.org.CustomerAgencyEntity; import com.epmet.entity.stats.DimAgencyEntity; +import javax.xml.soap.SAAJResult; import java.util.Date; import java.util.List; import java.util.Map; @@ -176,4 +177,14 @@ public interface DimAgencyService extends BaseService { DimAgencyEntity getLatestCreatedAgencyDimEntity(); DimAgencyEntity getLatestUpdatedAgencyDimEntity(); + + /** + * 根据级别获取组织信息 + * @author zhaoqifeng + * @date 2020/9/20 17:29 + * @param customerId + * @param level + * @return java.util.List + */ + List getAgencyByLevel(String customerId, String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java index ee4c56db29..f0f530fa4f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java @@ -276,4 +276,9 @@ public class DimAgencyServiceImpl extends BaseServiceImpl getAgencyByLevel(String customerId, String level) { + return baseDao.selectDimAgencyByLevel(customerId, level); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml index cfb6ff85b7..6047bc9726 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml @@ -5,8 +5,9 @@ DELETE FROM fact_origin_project_log_daily + WHERE + CUSTOMER_ID = #{customerId} - WHERE DATE_ID = #{date} @@ -24,6 +25,7 @@ fopld.IS_ACTIVE = 0 AND fopld.ACTION_CODE = 'transfer' AND fopld.MONTH_ID = #{monthId} + AND fopld.CUSTOMER_ID = #{customerId} GROUP BY fopld.CUSTOMER_ID, fopld.AGENCY_ID @@ -84,5 +86,34 @@ OR l.ACTION_CODE = 'unresolved' OR l.ACTION_CODE = 'created') + \ 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 81472beb65..7dee1c7ccf 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 @@ -61,8 +61,9 @@ INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID AND da.`LEVEL` = 'community' WHERE - f.IS_OVERDUE = 0 + f.PROJECT_STATUS = 'closed' AND f.MONTH_ID = #{monthId} + AND f.CUSTOMER_ID = #{customerId} GROUP BY f.CUSTOMER_ID, f.AGENCY_ID @@ -78,7 +79,9 @@ AND da.`LEVEL` = 'community' WHERE f.IS_OVERDUE = 1 + AND f.PROJECT_STATUS = 'closed' AND f.MONTH_ID = #{monthId} + AND f.CUSTOMER_ID = #{customerId} GROUP BY f.CUSTOMER_ID, f.AGENCY_ID @@ -102,8 +105,9 @@ DELETE FROM fact_origin_project_main_daily + WHERE + CUSTOMER_ID = #{customerId} - WHERE DATE_ID = #{date} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml index a642ff1f56..20f45783a4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml @@ -58,6 +58,7 @@ f.ORG_TYPE = #{orgType} AND DATE_FORMAT(INFORMED_DATE, '%Y%m') = #{monthId} AND PERIOD_TILL_REPLY_FIRSTLY != 0 + AND f.CUSTOMER_ID = #{customerId} GROUP BY f.CUSTOMER_ID, f.ORG_ID diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml index eb9a582759..4644c01b11 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml @@ -33,6 +33,12 @@ AND MONTH_ID = #{monthId} limit 1000; + + delete from fact_index_govrn_ablity_org_monthly + where CUSTOMER_ID = #{customerId} + AND MONTH_ID = #{monthId} + AND DATA_TYPE = #{type} + insert into fact_index_govrn_ablity_org_monthly diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index be19516363..48bf09f1c2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -144,11 +144,11 @@ ) ORDER BY process.STAFF_ID , process.CREATED_TIME ASC - SELECT a.PROJECT_ID, a.ORG_ID_PATH, - b.ORG_ID_PATH + b.ORG_ID_PATH AS pIdPath FROM ( SELECT @@ -161,12 +161,19 @@ AND pp.PROJECT_ID = ps.PROJECT_ID AND ps.IS_HANDLE = 'handle' AND pp.CREATED_TIME = ps.UPDATED_TIME + AND ps.CUSTOMER_ID = #{customerId} WHERE pp.OPERATION = 'close' + + AND pp.CREATED_TIME = #{date} + + ) a LEFT JOIN ( SELECT PROJECT_ID, ORG_ID_PATH, MIN( LENGTH( ORG_ID_PATH )) - FROM project_staff GROUP BY PROJECT_ID + FROM project_staff + WHERE CUSTOMER_ID = #{customerId} + GROUP BY PROJECT_ID ) b ON a.PROJECT_ID = b.PROJECT_ID \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml index 357265ee82..58dbc205d9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml @@ -315,5 +315,20 @@ ) + \ No newline at end of file