Browse Source

基层治理接口 1~4

dev_shibei_match
wangchao 5 years ago
parent
commit
dd2c58fba5
  1. 28
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/AgencyAndNumFormDTO.java
  2. 24
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/AgencyFormDTO.java
  3. 35
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/AgencyNumTypeParamFormDTO.java
  4. 44
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/DifficultProjectResultDTO.java
  5. 47
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/PublicPartiProfileResultDTO.java
  6. 28
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/PublicPartiRankResultDTO.java
  7. 28
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserPointRankResultDTO.java
  8. 20
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserPointResultDTO.java
  9. 13
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenDifficultyDataDao.java
  10. 8
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyBranchDataDao.java
  11. 15
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyUserRankDataDao.java
  12. 13
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserJoinDao.java
  13. 20
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java
  14. 50
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassRootsGovernService.java
  15. 135
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java
  16. 61
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java
  17. 94
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
  18. 24
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java
  19. 25
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
  20. 8
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml
  21. 16
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
  22. 13
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserJoinDao.xml
  23. 29
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
  24. 4
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/utils/externalapp/ExtAppJwtTokenUtils.java

28
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/AgencyAndNumFormDTO.java

@ -0,0 +1,28 @@
package com.epmet.screen.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 通用的agencyId topNum入参
* @ClassName AgencyAndNumFormDTO
* @Auth wangc
* @Date 2020-08-20 10:29
*/
@Data
public class AgencyAndNumFormDTO implements Serializable {
private static final long serialVersionUID = -8674763412362557239L;
/**
* 显示多少条 不在这里设置默认值 不同的接口使用的默认值不同 在逻辑中判断
* */
private Integer topNum;
/**
* 机关Id
* */
@NotBlank(message = "机关Id不能为空" , groups = AgencyFormDTO.CommonAgencyIdGroup.class)
private String agencyId;
}

24
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/AgencyFormDTO.java

@ -0,0 +1,24 @@
package com.epmet.screen.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 通用 agencyId 入参
ClassName AgencyFormDTO
* @Auth wangc
* @Date 2020-08-20 10:29
*/
@Data
public class AgencyFormDTO implements Serializable {
private static final long serialVersionUID = -2880432640584616651L;
public interface CommonAgencyIdGroup extends CustomerClientShowGroup{}
@NotBlank(message = "机关Id不能为空" , groups = CommonAgencyIdGroup.class)
private String agencyId;
}

35
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/AgencyNumTypeParamFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.screen.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 通用 agencyId topNum type(各种类型)传参dto
* @ClassName AgencyNumTypeParamFormDTO
* @Auth wangc
* @Date 2020-08-20 13:36
*/
@Data
public class AgencyNumTypeParamFormDTO implements Serializable {
private static final long serialVersionUID = -8049013016922130410L;
public interface AgencyNumTypeParamGroup extends CustomerClientShowGroup{}
/**
* agencyId
* */
@NotBlank(message = "机关Id不能为空", groups = AgencyNumTypeParamGroup.class)
private String agencyId;
private Integer topNum;
/**
* 各种类型
* */
@NotBlank(message = "类型不能为空", groups = AgencyNumTypeParamGroup.class)
private String type;
}

44
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/DifficultProjectResultDTO.java

@ -0,0 +1,44 @@
package com.epmet.screen.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 2难点赌点-耗时最长|涉及部门最多|处理次数 返参DTO
* @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
* @ClassName DifficultProjectResultDTO
* @Auth wangc
* @Date 2020-08-20 13:43
*/
@Data
public class DifficultProjectResultDTO implements Serializable {
private static final long serialVersionUID = -7338625142484943434L;
private String projectId;
private String title;
/**
* 状态: 待处理: pending; 结案closed
* */
private String status;
private Integer totalHours;
/**
* yyyy-MM-dd HH:mm
* */
private String createDateTime;
private String gridName;
private String imgUrl;
private String categoryName;
private Integer handleDepts;
private Integer handleCount;
}

47
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/PublicPartiProfileResultDTO.java

@ -0,0 +1,47 @@
package com.epmet.screen.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 3公众参与概况返参DTO
* @ClassName PublicPartiProfileResultDTO
* @Auth wangc
* @Date 2020-08-20 14:33
*/
@Data
public class PublicPartiProfileResultDTO implements Serializable {
private static final long serialVersionUID = 2520835419152912027L;
private Integer total;
private String monthIncr;
/**
* incr上升, decr下降
* */
private String monthTrend;
private Integer averageIssue;
/**
* 较上月百分比
* */
private String issueCompareLastestMonth;
/**
* 较上月趋势incr上升decr下降
* */
private String issueCompareLatestTrend;
/**
* 平均参与度
* */
private Integer averageJoin;
private String joinCompareLatestMonth;
private String joinCompareLatestTrend;
}

28
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/PublicPartiRankResultDTO.java

@ -0,0 +1,28 @@
package com.epmet.screen.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 公众参与-排行榜 传参dto
* @ClassName PublicPartiRankResultDTO
* @Auth wangc
* @Date 2020-08-20 15:29
*/
@Data
public class PublicPartiRankResultDTO implements Serializable {
private static final long serialVersionUID = -2958188980327497507L;
private String name;
private Integer regNum;
private Integer joinNum;
private Integer topicNum;
private Integer issueNum;
private Integer projectNum;
}

28
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserPointRankResultDTO.java

@ -0,0 +1,28 @@
package com.epmet.screen.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
/**
* @Description
* @ClassName UserPointRankResultDTO
* @Auth wangc
* @Date 2020-08-20 10:46
*/
@Data
public class UserPointRankResultDTO implements Serializable {
private static final long serialVersionUID = 2829557017489626022L;
/**
* 横坐标姓名
* */
private List<String> nameData = new LinkedList<>();
/**
* 纵坐标积分
* */
private List<Integer> pointsData = new LinkedList<>();
}

20
epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserPointResultDTO.java

@ -0,0 +1,20 @@
package com.epmet.screen.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 用户积分DTO - 查询结果
* @ClassName UserPointResultDTO
* @Auth wangc
* @Date 2020-08-20 10:50
*/
@Data
public class UserPointResultDTO implements Serializable {
private static final long serialVersionUID = -5174248184514429116L;
private String name;
private Integer point;
}

13
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenDifficultyDataDao.java

@ -17,7 +17,11 @@
package com.epmet.datareport.dao.screen;
import com.epmet.screen.dto.result.DifficultProjectResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 基层治理-难点堵点
@ -28,4 +32,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ScreenDifficultyDataDao {
/**
* @Description 查询难点赌点-耗时最长|涉及部门最多|处理次数
* @param
* @return
* @author wangc
* @date 2020.08.20 14:26
**/
List<DifficultProjectResultDTO> selectDifficulty(@Param("agencyId")String agencyId,@Param("type")String type);
}

8
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyBranchDataDao.java

@ -62,4 +62,12 @@ public interface ScreenPartyBranchDataDao {
* @date 2020/8/20 3:30 下午
*/
List<VolunteerServiceResult> selectVolunteerServiceResult(@Param("agencyId")String agencyId);
/**
* @Description 查找指定组织的下一级组织的数据排行
* @param agencyId ..
* @return List<BranchBuildOrderByCountResultDTO>
* @author wangc
* @date 2020.08.20 09:46
**/
List<BranchBuildOrderByCountResultDTO> selectBranchDataByTypeOrder(@Param("agencyId")String agencyId,@Param("category")String category,@Param("monthId")String monthId,@Param("bottomMonthId")String bottomMonthId);
}

15
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPartyUserRankDataDao.java

@ -17,7 +17,11 @@
package com.epmet.datareport.dao.screen;
import com.epmet.screen.dto.result.UserPointResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 党建引领基层治理-市民党员积分排行榜
@ -27,5 +31,14 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ScreenPartyUserRankDataDao{
/**
* @Description 查询指定机关下的用户积分排名
* @param agencyId
* @return
* @author wangc
* @date 2020.08.20 11:11
**/
List<UserPointResultDTO> selectUserPointOrder(@Param("agencyId")String agencyId);
}

13
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserJoinDao.java

@ -17,7 +17,9 @@
package com.epmet.datareport.dao.screen;
import com.epmet.screen.dto.result.PublicPartiProfileResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 基层治理-公众参与
@ -27,5 +29,14 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ScreenUserJoinDao {
/**
* @Description 查询用户参与数据
* @param agencyId
* @return
* @author wangc
* @date 2020.08.20 15:07
**/
PublicPartiProfileResultDTO selectUserJoinData(@Param("agencyId") String agencyId, @Param("monthId")String monthId);
}

20
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java

@ -18,10 +18,13 @@
package com.epmet.datareport.dao.screen;
import com.epmet.screen.dto.result.PartymemberPercentResultDTO;
import com.epmet.screen.dto.result.PublicPartiRankResultDTO;
import com.epmet.screen.dto.result.TopProfileResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 中央区-各类用户总数
*
@ -48,4 +51,21 @@ public interface ScreenUserTotalDataDao {
*/
TopProfileResultDTO selectTopProfile(@Param("agencyId")String agencyId);
/**
* @Description 求出人均议题
* @param agencyId
* @return
* @author wangc
* @date 2020.08.20 14:54
**/
int selectAvgIssue(@Param("agencyId")String agencyId);
/**
* @Description 查询用户数据
* @param agencyId
* @return
* @author wangc
* @date 2020.08.20 16:00
**/
List<PublicPartiRankResultDTO> selectUserTotalData(@Param("agencyId") String agencyId);
}

50
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/GrassRootsGovernService.java

@ -1,5 +1,15 @@
package com.epmet.datareport.service.screen;
import com.epmet.screen.dto.form.AgencyAndNumFormDTO;
import com.epmet.screen.dto.form.AgencyFormDTO;
import com.epmet.screen.dto.form.AgencyNumTypeParamFormDTO;
import com.epmet.screen.dto.result.DifficultProjectResultDTO;
import com.epmet.screen.dto.result.PublicPartiProfileResultDTO;
import com.epmet.screen.dto.result.PublicPartiRankResultDTO;
import com.epmet.screen.dto.result.UserPointRankResultDTO;
import java.util.List;
/**
* 基层治理相关各指标查询
*
@ -7,4 +17,44 @@ package com.epmet.datareport.service.screen;
* @date 2020/8/18 10:20
*/
public interface GrassRootsGovernService {
/**
* @Description 1热心市民积分排行
* @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
* @param param
* @return
* @author wangc
* @date 2020.08.20 11:16
**/
UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param);
/**
* @Description 2难点赌点-耗时最长|涉及部门最多|处理次数
* @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
* @param param
* @return
* @author wangc
* @date 2020.08.20 13:55
**/
List<DifficultProjectResultDTO> difficultProject(AgencyNumTypeParamFormDTO param);
/**
* @Description 3公众参与概况
* @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
* @param param
* @return
* @author wangc
* @date 2020.08.20 14:37
**/
PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param);
/**
* @Description 公众参与-排行榜
* @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
* @param param
* @return
* @author wangc
* @date 2020.08.20 15:32
**/
List<PublicPartiRankResultDTO> publicPartiRank(AgencyAndNumFormDTO param);
}

135
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java

@ -1,8 +1,28 @@
package com.epmet.datareport.service.screen.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.datareport.dao.screen.ScreenDifficultyDataDao;
import com.epmet.datareport.dao.screen.ScreenPartyUserRankDataDao;
import com.epmet.datareport.dao.screen.ScreenUserJoinDao;
import com.epmet.datareport.dao.screen.ScreenUserTotalDataDao;
import com.epmet.datareport.service.screen.GrassRootsGovernService;
import com.epmet.datareport.utils.DateUtils;
import com.epmet.datareport.utils.ModuleConstant;
import com.epmet.screen.dto.form.AgencyAndNumFormDTO;
import com.epmet.screen.dto.form.AgencyFormDTO;
import com.epmet.screen.dto.form.AgencyNumTypeParamFormDTO;
import com.epmet.screen.dto.result.*;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 基层治理相关各指标查询
*
@ -11,4 +31,119 @@ import org.springframework.stereotype.Service;
*/
@Service
public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
@Autowired
private ScreenPartyUserRankDataDao screenPartyUserRankDataDao;
@Autowired
private ScreenDifficultyDataDao screenDifficultyDataDao;
@Autowired
private ScreenUserJoinDao screenUserJoinDao;
@Autowired
private DateUtils dateUtils;
@Autowired
private ScreenUserTotalDataDao screenUserTotalDataDao;
/**
* @Description 1热心市民积分排行
* @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
* @param param
* @return
* @author wangc
* @date 2020.08.20 11:16
**/
@Override
public UserPointRankResultDTO userPointRank(AgencyAndNumFormDTO param) {
//默认5
if(null == param.getTopNum()){
param.setTopNum(NumConstant.FIVE);
}
PageHelper.startPage(NumConstant.ONE,param.getTopNum());
List<UserPointResultDTO> userPointList = screenPartyUserRankDataDao.selectUserPointOrder(param.getAgencyId());
UserPointRankResultDTO result = new UserPointRankResultDTO();
result.setNameData(userPointList.stream().map(UserPointResultDTO::getName).collect(Collectors.toList()));
result.setPointsData(userPointList.stream().map(UserPointResultDTO::getPoint).collect(Collectors.toList()));
return result;
}
/**
* @Description 2难点赌点-耗时最长|涉及部门最多|处理次数
* @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321614
* @param param
* @return
* @author wangc
* @date 2020.08.20 13:55
**/
@Override
public List<DifficultProjectResultDTO> difficultProject(AgencyNumTypeParamFormDTO param) {
if(null == param.getTopNum()){
param.setTopNum(NumConstant.TWO);
}
PageHelper.startPage(NumConstant.ONE,param.getTopNum());
List<DifficultProjectResultDTO> result = screenDifficultyDataDao.selectDifficulty(param.getAgencyId(),param.getType());
if(null == result) return new ArrayList<>();
return result;
}
/**
* @Description 3公众参与概况
* @NEI https://nei.netease.com/interface/detail/res/?pid=57068&id=321975
* @param param
* @return
* @author wangc
* @date 2020.08.20 14:37
**/
@Override
public PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param) {
String monthId = dateUtils.getPreviousMonthId();
PublicPartiProfileResultDTO latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
if(null == latest) return null;
if(null == latest.getTotal()) latest.setTotal(NumConstant.ZERO);
if(null == latest.getAverageJoin()) latest.setAverageJoin(NumConstant.ZERO);
PublicPartiProfileResultDTO previous = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), dateUtils.getPreviousMonthIdByDest(null,monthId));
Integer preTotal ; Integer preAvgJoin ;
if(null == previous){ preTotal = NumConstant.ZERO; preAvgJoin = NumConstant.ZERO;}
preTotal = null == previous.getTotal() ? NumConstant.ZERO : previous.getTotal();
preAvgJoin = null == previous.getAverageJoin() ? NumConstant.ZERO : previous.getAverageJoin();
if(latest.getTotal() >= preTotal){
latest.setMonthTrend("incr");
latest.setMonthIncr(convertPercentStr(new BigDecimal((latest.getTotal() - preTotal)/preTotal)));
}
if(latest.getAverageJoin() >= preAvgJoin){
latest.setJoinCompareLatestTrend("incr");
latest.setJoinCompareLatestMonth(convertPercentStr(new BigDecimal((latest.getAverageJoin() - preAvgJoin)/preAvgJoin)));
}
latest.setAverageIssue(screenUserTotalDataDao.selectAvgIssue(param.getAgencyId()));
latest.setIssueCompareLatestTrend("incr");
latest.setIssueCompareLastestMonth(convertPercentStr(null));
return null;
}
/**
* @Description 公众参与-排行榜
* @NEI https://nei.netease.com/interface/detail/?pid=57068&id=321978
* @param param
* @return
* @author wangc
* @date 2020.08.20 15:32
**/
@Override
public List<PublicPartiRankResultDTO> publicPartiRank(AgencyAndNumFormDTO param) {
if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
PageHelper.startPage(NumConstant.ONE,param.getTopNum());
List<PublicPartiRankResultDTO> result = screenUserTotalDataDao.selectUserTotalData(param.getAgencyId());
if(null == result) return new ArrayList<>();
return result;
}
private String convertPercentStr(BigDecimal percent){
if(null == percent || BigDecimal.ZERO == percent) return "0.00%";
String percentStr = percent.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
}
}

61
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java

@ -4,11 +4,13 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.datareport.dao.screen.ScreenCpcBaseDataDao;
import com.epmet.datareport.dao.screen.ScreenPartyBranchDataDao;
import com.epmet.datareport.dao.screen.ScreenUserTotalDataDao;
import com.epmet.datareport.utils.ModuleConstant;
import com.epmet.screen.dto.form.BranchBuildRankFormDTO;
import com.epmet.screen.dto.form.BranchBuildTrendFormDTO;
import com.epmet.screen.dto.form.ParymemberFormDTO;
import com.epmet.screen.dto.result.*;
import com.epmet.datareport.service.screen.GrassrootsPartyDevService;
import com.github.pagehelper.PageHelper;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -17,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -90,15 +91,15 @@ public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService
**/
@Override
public BranchBuildTrendResultDTO branchBuildTrend(BranchBuildTrendFormDTO param) {
if(StringUtils.equals("ljgj",param.getCategory())){
if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
//联建共建情况
param.setCategory("union");
}else if(StringUtils.equals("ljdyzy",param.getCategory())){
param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
}else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
//联建党员志愿服务情况
param.setCategory("voluntaryservice");
param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
}else{
//默认支部建设
param.setCategory("party");
param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
}
BranchBuildTrendResultDTO result = new BranchBuildTrendResultDTO();
//生成近十二个月的横坐标数组
@ -158,16 +159,41 @@ public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService
**/
@Override
public BranchBuildRankResultDTO branchBuildRank(BranchBuildRankFormDTO param) {
//TODO .. 传参为agencyId 返参的横坐标为agencyId数组,传入的agencyId是父Id?还是应该传入customerId
return null;
if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_UNION,param.getCategory())){
//联建共建情况
param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_UNION);
}else if(StringUtils.equals(ModuleConstant.PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE,param.getCategory())){
//联建党员志愿服务情况
param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE);
}else{
//默认支部建设
param.setCategory(ModuleConstant.KEY_BRANCH_CATEGORY_PARTY);
}
if(StringUtils.isBlank(param.getMonthId())){
param.setMonthId(getPreviousMonthId());
}
if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX);
PageHelper.startPage(NumConstant.ONE,param.getTopNum());
List<BranchBuildOrderByCountResultDTO> orderList =
screenPartyBranchDataDao.selectBranchDataByTypeOrder(param.getAgencyId(),param.getCategory(),param.getMonthId(),param.getBottomMonthId());
BranchBuildRankResultDTO result = new BranchBuildRankResultDTO();
result.setJoinData(new LinkedList<>());
result.setOrganizeData(new LinkedList<>());
result.setXAxis(new LinkedList<>());
for(BranchBuildOrderByCountResultDTO data : orderList){
result.getXAxis().add(data.getOrgName());
result.getOrganizeData().add(data.getOrganizeData());
result.getJoinData().add(data.getJoinData());
}
return result;
}
private String convertPercentStr(BigDecimal percent){
if(null == percent || BigDecimal.ZERO == percent) return "0.00%";
String percentStr = percent.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
return percentStr.concat("%");
return percentStr.concat(ModuleConstant.SYMBOL_PERCENT);
}
/**
@ -255,4 +281,19 @@ public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService
result.keySet().forEach(key -> System.out.println(key));
}
/**
* @Description 得到上个月的monthId
* @param
* @return
* @author wangc
* @date 2020.08.20 10:19
**/
private String getPreviousMonthId(){
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date()); // 设置为当前时间
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
return format.format(calendar.getTime());
}
}

94
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java

@ -0,0 +1,94 @@
package com.epmet.datareport.utils;
import com.epmet.commons.tools.constant.NumConstant;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @Description
* @ClassName DateUtils
* @Auth wangc
* @Date 2020-08-20 10:56
*/
@Component
public class DateUtils {
/**
* @Description 返回当前月以及前十一个月升序
* @param
* @return Map<String,String> key:202001 value:1月
* @author wangc
* @date 2020.08.19 12:46
**/
public Map<String,String> getX(){
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date()); // 设置为当前时间
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
String currentMonth = format.format(calendar.getTime());
Integer monthCounter = Integer.parseInt(currentMonth);
Map<String,String> monthMap = new HashMap<>();
int i = NumConstant.ONE;
while(i <= NumConstant.TWELVE){
if(monthCounter.toString().endsWith("00")){
monthCounter -= NumConstant.EIGHTY_EIGHT;
}
String abscissa = monthCounter.toString().substring(monthCounter.toString().length() - NumConstant.TWO);
if(abscissa.startsWith("0")) {
abscissa = abscissa.replace("0","").concat("月");
}else{
abscissa = abscissa.concat("月");
}
monthMap.put(monthCounter.toString(),abscissa);
monthCounter-- ;
i++;
}
Map<String, String> result = Maps.newLinkedHashMap();
monthMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
.forEachOrdered((e -> result.put(e.getKey(),e.getValue())));
return result;
}
/**
* @Description 得到上个月的monthId
* @param
* @return
* @author wangc
* @date 2020.08.20 10:19
**/
public String getPreviousMonthId(){
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date()); // 设置为当前时间
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
return format.format(calendar.getTime());
}
public String getPreviousMonthIdByDest(Date date,String dateStr){
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
Calendar c = Calendar.getInstance();
if(null == date && StringUtils.isNotBlank(dateStr)){
try{
date = format.parse(dateStr);
}catch(Exception e){
e.printStackTrace();
}
}else{
return null;
}
c.setTime(date);
c.add(Calendar.MONTH, NumConstant.ONE_NEG);
return format.format(c.getTime());
}
}

24
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/ModuleConstant.java

@ -0,0 +1,24 @@
package com.epmet.datareport.utils;
public interface ModuleConstant {
String PARAM_BRANCH_CATEGORY_UNION = "ljgj";
String PARAM_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "ljdyzy";
String PARAM_BRANCH_CATEGORY_PARTY = "zbjs";
String KEY_BRANCH_CATEGORY_UNION = "union";
String KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE = "voluntaryservice";
String KEY_BRANCH_CATEGORY_PARTY = "party";
String SYMBOL_PERCENT = "%";
String PARAM_DIFFICULTY_TYPE_TIME_LONGEST = "timelongest";
String PARAM_DIFFICULTY_TYPE_MOST_DEPTS = "mostdepts";
String PARAM_DIFFICULTY_TYPE_MOST_HANDLED = "mosthandled";
}

25
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml

@ -3,5 +3,30 @@
<mapper namespace="com.epmet.datareport.dao.screen.ScreenDifficultyDataDao">
<!-- 查询难点赌点-耗时最长|涉及部门最多|处理次数 -->
<select id="selectDifficulty" resultType="com.epmet.screen.dto.result.DifficultProjectResultDTO">
SELECT
diff.EVENT_ID AS projectId,
eve.EVENT_TITLE AS title,
diff.EVENT_STATUS_CODE AS STATUS,
diff.EVENT_COST_TIME AS totalHours,
DATE_FORMAT( eve.EVENT_CREATE_TIME, '%Y-%m-%d %H:%i' ) AS createDateTime,
diff.EVENT_SOURCE AS gridName,
diff.EVENT_IMG_URL AS imgUrl,
diff.EVENT_CATEGORY_NAME AS categoryName,
diff.EVENT_RE_ORG AS handleDepts,
diff.EVENT_RE_ORG AS handleCount
FROM
screen_difficulty_data diff
LEFT JOIN screen_event_data eve ON diff.EVENT_ID = eve.EVENT_ID
AND eve.DEL_FLAG = '0'
WHERE
diff.DEL_FLAG = '0'
AND diff.ORG_TYPE = 'agencyId'
AND diff.ORG_ID = #{agencyId}
ORDER BY
CASE #{type} WHEN 'timelongest' THEN diff.EVENT_COST_TIME DESC
ELSE diss.EVENT_RE_ORG DESC END
</select>
</mapper>

8
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml

@ -42,8 +42,9 @@
<select id="selectBranchDataByTypeOrder" resultType="com.epmet.screen.dto.result.BranchBuildOrderByCountResultDTO">
SELECT
ORG_NAME,
COUNT( ORGANIZE_COUNT ) AS organizeData,
COUNT( JOIN_USER_COUNT ) AS joinData
SUM( ORGANIZE_COUNT ) AS organizeData ,
SUM( JOIN_USER_COUNT ) AS joinData ,
SUM( ORGANIZE_COUNT + JOIN_USER_COUNT) AS total
FROM
screen_party_branch_data
<where>
@ -61,8 +62,9 @@
</if>
</where>
GROUP BY ORG_NAME
ORDER BY
(organizeData + joinData) DESC,
total DESC,
organizeData DESC,
joinData DESC
</select>

16
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml

@ -3,6 +3,20 @@
<mapper namespace="com.epmet.datareport.dao.screen.ScreenPartyUserRankDataDao">
<!-- 查询指定机关下的用户积分排名 -->
<select id="selectUserPointOrder" resultType="com.epmet.screen.dto.result.UserPointResultDTO">
SELECT
user_name AS name,
point_total AS point
FROM
screen_party_user_rank_data
WHERE
del_flag = '0'
AND org_type = 'agency'
AND org_id = #{agencyId}
ORDER BY
point_total DESC,
user_name
</select>
</mapper>

13
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserJoinDao.xml

@ -3,5 +3,16 @@
<mapper namespace="com.epmet.datareport.dao.screen.ScreenUserJoinDao">
<select id="selectUserJoinData" resultType="com.epmet.screen.dto.result.PublicPartiProfileResultDTO">
SELECT
JOIN_TOTAL AS total,
AVG_JOIN_USER AS averageJoin
FROM
screen_user_join
WHERE
DEL_FLAG = '0'
AND ORG_TYPE = 'agency'
AND ORG_ID = #{agencyId}
AND MONTH_ID = #{monthId}
</select>
</mapper>

29
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml

@ -33,4 +33,33 @@
AND org_id = #{agencyId}
</select>
<!-- 求出人均议题 -->
<select id="selectAvgIssue" resultType="int">
SELECT
ROUND( ISSUE_TOTAL / USER_TOTAL, 2 )
FROM
screen_user_total_data
WHERE
DEL_FLAG = '0'
AND ORG_TYPE = 'agency'
AND ORG_ID = #{agencyId}
</select>
<!-- 查询用户数据 -->
<select id="selectUserTotalData" resultType="com.epmet.screen.dto.result.PublicPartiRankResultDTO">
SELECT
ORG_NAME AS NAME,
USER_TOTAL AS regNum,
PARTY_TOTAL AS joinNum,
TOPIC_TOTAL AS topicNum,
ISSUE_TOTAL AS issueNum,
PROJECT_TOTAL AS projectNum
FROM
screen_user_total_data
WHERE
DEL_FLAG = '0'
AND ORG_TYPE = 'agency'
AND ORG_ID = #{agencyId}
</select>
</mapper>

4
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/utils/externalapp/ExtAppJwtTokenUtils.java

@ -75,8 +75,8 @@ public class ExtAppJwtTokenUtils {
public static void genToken() {
HashMap<String, Object> claim = new HashMap<>();
claim.put("appId", "dbfad3110c124c89948d16e8b06a8888");
claim.put("customerId", "c1");
claim.put("appId", "227fb75ae4baa820755aaf43bf7f0a69");
claim.put("customerId", "b09527201c4409e19d1dbc5e3c3429a1 ");
claim.put("ts", System.currentTimeMillis() - 1000 * 60 * 4);
String abc = new ExtAppJwtTokenUtils().createToken(claim, "4a762660254c57996343f8ee42fbc0a6");

Loading…
Cancel
Save