Browse Source

Merge branch 'dev' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_bugfix_ljj

dev
zhaoqifeng 4 years ago
parent
commit
a4c8e4a081
  1. 16
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java
  2. 5
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleDTO.java
  3. 10
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleTemplateDTO.java
  4. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/GovStaffRoleEntity.java
  5. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/GovStaffRoleTemplateEntity.java
  6. 5
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AgencyFormDTO.java
  7. 24
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinIndicatorGrowthRateResultDTO.java
  8. 67
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/GrassRootsGovernServiceImpl.java
  9. 8
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/utils/DateUtils.java
  10. 42
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserJoinDao.xml
  11. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/ScreenProjectDataInfoFormDTO.java
  12. 20
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserJoinFormDTO.java
  13. 16
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/GovernConstant.java
  14. 21
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenUserJoinDao.java
  15. 20
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenUserJoinEntity.java
  16. 294
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java
  17. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenUserJoinService.java
  18. 26
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java
  19. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenUserJoinServiceImpl.java
  20. 7
      epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.22__pulic_party.sql
  21. 25
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenUserJoinDao.xml
  22. 2
      epmet-module/gov-access/gov-access-server/src/main/resources/mapper/RoleOperationDefaultDao.xml
  23. 2
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/RoleInfoResultDTO.java
  24. 3
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInfoResultDTO.java
  25. 2
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffRoleResultDTO.java
  26. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/GovStaffRoleDTO.java
  27. 30
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UpGovRoleFormDTO.java
  28. 23
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GovStaffRoleResultDTO.java
  29. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GovStaffRoleTemplateDTO.java
  30. 42
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java
  31. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java
  32. 22
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleTemplateDao.java
  33. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/GovStaffRoleEntity.java
  34. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/GovStaffRoleTemplateEntity.java
  35. 33
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java
  36. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
  37. 99
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java
  38. 47
      epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml
  39. 48
      epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleTemplateDao.xml

16
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java

@ -446,6 +446,22 @@ public class DateUtils {
return DateUtils.format(date,DateUtils.DATE_PATTERN_YYYYMM);
}
/**
* @Description 获取指定 月份的前n月 返回yyyyMM
* @Param beforeMonth
* @Param monthId
* @author zxc
* @date 2021/7/9 2:44 下午
*/
public static String getBeforeNMonthByMonth(int beforeMonth, String monthId){
StringBuilder builder = new StringBuilder(monthId);
builder.insert(NumConstant.FOUR,"-");
builder.insert(builder.length(),"-01");
LocalDate parse = LocalDate.parse(builder.toString());
LocalDate localDate = parse.minusMonths(beforeMonth);
return localDate.toString().replace("-","").substring(NumConstant.ZERO,NumConstant.SIX);
}
/**
* @return java.util.List<java.lang.String> 返回yyyyMMdd
* @param startTime yyyyMMdd

5
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleDTO.java

@ -93,6 +93,11 @@ public class GovStaffRoleDTO implements Serializable {
*/
private Integer fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
*/

10
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/GovStaffRoleTemplateDTO.java

@ -58,6 +58,16 @@ public class GovStaffRoleTemplateDTO implements Serializable {
*/
private Integer fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
*/
private String sort;
/**
*
*/

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/GovStaffRoleEntity.java

@ -63,6 +63,11 @@ public class GovStaffRoleEntity extends BaseEpmetEntity {
*/
private Integer fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
*/

10
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/GovStaffRoleTemplateEntity.java

@ -58,4 +58,14 @@ public class GovStaffRoleTemplateEntity extends BaseEpmetEntity {
*/
private Integer fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
*/
private String sort;
}

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

@ -21,4 +21,9 @@ public class AgencyFormDTO implements Serializable {
@NotBlank(message = "机关Id不能为空" , groups = CommonAgencyIdGroup.class)
private String agencyId;
/**
* 平阴县默认穿370124,跟随8个街道点击事件传入街道的areaCode
* */
private String areaCode;
}

24
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/UserJoinIndicatorGrowthRateResultDTO.java

@ -8,7 +8,7 @@ import java.math.BigDecimal;
/**
* @Description 用户参与各项指标以及增长查询结果dto
* @ClassName UserJoinIndicatorGrowthRateResultDTO
* @Auth wangc
* @author wangc
* @Date 2020-08-21 16:07
*/
@Data
@ -16,25 +16,33 @@ public class UserJoinIndicatorGrowthRateResultDTO implements Serializable {
private static final long serialVersionUID = -8830240350298414599L;
private String id;
/**
* 总参与数
* */
private Integer total;
/**
* 总参与数月增长
* */
private BigDecimal monthIncr;
/**
* incr上升, decr下降
* 总参与数incr上升, decr下降
* */
private String monthTrend;
/**
* 人均议题
* */
private BigDecimal averageIssue;
/**
* 较上月百分比
* 人均议题较上月百分比
* */
private BigDecimal issueCompareLatestMonth;
/**
* 较上月趋势incr上升decr下降
* 人均议题较上月趋势incr上升decr下降
* */
private String issueCompareLatestTrend;
@ -43,7 +51,13 @@ public class UserJoinIndicatorGrowthRateResultDTO implements Serializable {
*/
private BigDecimal averageJoin;
/**
* 平均参与度: 较上月百分比
*/
private BigDecimal joinCompareLatestMonth;
/**
* 平均参与度较上月趋势incr上升decr下降
*/
private String joinCompareLatestTrend;
}

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

@ -133,30 +133,57 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
* @author wangc
* @date 2020.08.20 14:37
**/
@DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
@DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true)
@Override
public PublicPartiProfileResultDTO publicPartiProfile(AgencyFormDTO param) {
ScreenCustomerAgencyDTO agencyInfo = agencyInfo(param.getAgencyId());
Result<List<String>> crmResp = crmClient.getAllSubCustomerIds(agencyInfo.getCustomerId());
List<String> subCustomers;
if(null == crmResp || !crmResp.success()|| org.apache.commons.collections4.CollectionUtils.isEmpty(crmResp.getData())) {subCustomers = null ;}
else {subCustomers = crmResp.getData();}
String monthId = dateUtils.getPreviousMonthId(NumConstant.ONE);
UserJoinIndicatorGrowthRateResultDTO latest = new UserJoinIndicatorGrowthRateResultDTO();
if (StringUtils.isNotBlank(param.getAreaCode()) && "370124".equals(param.getAreaCode())) {
latest= screenUserJoinDao.selectUserJoinDataByAreaCode(param.getAreaCode(), monthId);
if (null == latest) {
log.warn(String.format("平阴县查询screen_user_join表为空,monthId:%s", monthId));
return new PublicPartiProfileResultDTO();
}
UserJoinIndicatorGrowthRateResultDTO beforeTwoMonth = screenUserJoinDao.selectUserJoinDataByAreaCode(param.getAreaCode(), dateUtils.getPreviousMonthId(NumConstant.TWO));
if (null == beforeTwoMonth) {
log.warn(String.format("平阴县查询screen_user_join表为空,monthId:%s",dateUtils.getPreviousMonthId(NumConstant.TWO)));
}else{
//举例,today is 20210707 , latest是06月份的数据,beforeTwoMonth是05月份的数据
String monthId = dateUtils.getCurrentMonthId();
UserJoinIndicatorGrowthRateResultDTO latest = CollectionUtils.isEmpty(subCustomers) ||StringUtils.isBlank(agencyInfo.getAreaCode())?
screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId) :
screenUserJoinDao.selectUserJoinDataByAreaCode(agencyInfo.getAreaCode(),monthId);
//保证获取公众参与概率数据的最大可能性
int time = NumConstant.TWELVE;
while ((null == latest || latest.getId() == null) && time > NumConstant.ONE) {
time--;
monthId = dateUtils.getPreviousMonthIdByDest(null, monthId);
latest = CollectionUtils.isEmpty(subCustomers)||StringUtils.isBlank(agencyInfo.getAreaCode()) ?
screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId) :
screenUserJoinDao.selectUserJoinDataByAreaCode(agencyInfo.getAreaCode(),monthId);
}
// 总参与数6月份比5月份增加了?
int incrTotal = latest.getTotal() - beforeTwoMonth.getTotal();
// 总参与数月增长:增加的占5月份的占比???
BigDecimal monthIncr = BigDecimal.valueOf(incrTotal / beforeTwoMonth.getTotal());
latest.setMonthIncr(monthIncr);
latest.setMonthTrend(monthIncr.compareTo(BigDecimal.ZERO) > 0 ? "incr" : "decr");
//人均议题数6月份比五月份增加了?
BigDecimal issueIncrTotal = latest.getAverageIssue().subtract(beforeTwoMonth.getAverageIssue());
//人均议题数月增长:增加的占5月份的占比???
BigDecimal issueCompareLatestMonth = issueIncrTotal.divide(beforeTwoMonth.getAverageIssue());
latest.setIssueCompareLatestMonth(issueCompareLatestMonth);
latest.setIssueCompareLatestTrend(issueCompareLatestMonth.compareTo(BigDecimal.ZERO) > 0 ? "incr" : "decr");
if (null == latest) return new PublicPartiProfileResultDTO();
// 平均参与度6月份比5月份增加了?
BigDecimal incrJoinCompareLatestMonth=latest.getJoinCompareLatestMonth().subtract(beforeTwoMonth.getJoinCompareLatestMonth());
//平均参与度月增长:增加的占5月份的占比???
BigDecimal joinCompareLatestMonth=incrJoinCompareLatestMonth.divide(beforeTwoMonth.getJoinCompareLatestMonth());
latest.setJoinCompareLatestMonth(joinCompareLatestMonth);
latest.setJoinCompareLatestTrend(joinCompareLatestMonth.compareTo(BigDecimal.ZERO) > 0 ? "incr" : "decr");
}
} else {
latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
//保证获取公众参与概率数据的最大可能性
int time = NumConstant.TWELVE;
while ((null == latest || latest.getId() == null) && time > NumConstant.ONE) {
time--;
monthId = dateUtils.getPreviousMonthIdByDest(null, monthId);
latest = screenUserJoinDao.selectUserJoinData(param.getAgencyId(), monthId);
}
}
if (null == latest) {
return new PublicPartiProfileResultDTO();
}
PublicPartiProfileResultDTO result = ConvertUtils.sourceToTarget(latest, PublicPartiProfileResultDTO.class);
result.setMonthIncr(convertPercentStr(latest.getMonthIncr(), NumConstant.ZERO));
result.setJoinCompareLatestMonth(convertPercentStr(latest.getJoinCompareLatestMonth().abs(), NumConstant.ZERO));

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

@ -107,17 +107,17 @@ public class DateUtils {
}
/**
* @Description 得到上个月的monthId
* @param
* @Description 前n个月
* @param beforeMonthNum
* @return
* @author wangc
* @date 2020.08.20 10:19
**/
public String getPreviousMonthId(){
public String getPreviousMonthId(int beforeMonthNum){
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date()); // 设置为当前时间
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - beforeMonthNum); // 设置为上一个月
return format.format(calendar.getTime());
}

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

@ -28,36 +28,22 @@
<!-- 根据地区码查询用户参与数据 -->
<select id="selectUserJoinDataByAreaCode" resultType="com.epmet.evaluationindex.screen.dto.result.UserJoinIndicatorGrowthRateResultDTO">
SELECT
scj.ID,
IFNULL(avg( scj.JOIN_TOTAL ),0) AS total,
IFNULL(ROUND( avg( scj.AVG_JOIN ), 1 ),0) AS averageJoin,
IFNULL(avg( scj.JOIN_TOTAL_UP_RATE ),0) AS monthIncr,
(case when IFNULL(avg( scj.JOIN_TOTAL_UP_RATE ),0) &gt;0 then 'incr'
when IFNULL(avg( scj.JOIN_TOTAL_UP_RATE ),0) &lt; 0 then 'decr'
else 'eq'
end )as monthTrend,
ROUND( IFNULL(avg( scj.AVG_ISSUE ),0), 1 ) AS averageIssue,
IFNULL(avg( scj.AVG_ISSUE_UP_RATE ),0) AS issueCompareLatestMonth,
(
case when IFNULL(avg( scj.AVG_ISSUE_UP_RATE ),0) &gt; 0 then 'incr'
when IFNULL(avg( scj.AVG_ISSUE_UP_RATE ),0) &lt; 0 then 'decr'
else 'eq'
end
)as issueCompareLatestTrend,
IFNULL(avg( scj.AGVG_JOIN_UP_RATE) ,0) AS joinCompareLatestMonth,
(
case when IFNULL(avg( scj.AGVG_JOIN_UP_RATE ),0) &gt; 0 then 'incr'
when IFNULL(avg( scj.AGVG_JOIN_UP_RATE ),0) &lt; 0 then 'decr'
else 'eq'
end
)as joinCompareLatestTrend
ifnull(sum(suj.JOIN_TOTAL),0) as total,
0 as monthIncr,
''as monthTrend,
round(IFNULL(sum(suj.avg_issue_fz)/sum(suj.avg_issue_fm),0)) as averageIssue,
0 as issueCompareLatestMonth,
'' as issueCompareLatestTrend,
round(ifnull(sum(suj.avg_join_fz)/sum(suj.avg_join_fm),0))as averageJoin,
0 as joinCompareLatestMonth,
'' as joinCompareLatestTrend
FROM
screen_user_join scj
LEFT JOIN screen_customer_agency agency ON scj.org_id = agency.agency_id
screen_user_join suj
INNER JOIN screen_customer_agency sca ON ( suj.ORG_ID = sca.AGENCY_ID AND sca.DEL_FLAG = '0' )
WHERE
scj.DEL_FLAG = '0'
AND scj.MONTH_ID = #{monthId}
AND agency.PARENT_AREA_CODE =#{areaCode}
suj.ORG_TYPE = 'agency'
AND sca.PARENT_AREA_CODE = #{areaCode}
AND suj.MONTH_ID = #{monthId}
</select>

5
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/ScreenProjectDataInfoFormDTO.java

@ -1,9 +1,11 @@
package com.epmet.dto.screen.form;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
@ -47,7 +49,8 @@ public class ScreenProjectDataInfoFormDTO implements Serializable {
/**
* 事件时间
*/
private String projectCreateTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date projectCreateTime;
/**
* 上报人

20
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserJoinFormDTO.java

@ -50,6 +50,16 @@ public class UserJoinFormDTO implements Serializable {
*/
private BigDecimal avgIssue;
/**
* 人均议题分子
*/
private Integer avgIssueFz;
/**
* 人均议题分母
*/
private Integer avgIssueFm;
/**
* 总的参与次数
*/
@ -59,4 +69,14 @@ public class UserJoinFormDTO implements Serializable {
* 平均参与度
*/
private BigDecimal avgJoin;
/**
* 平均参与度分子
*/
private Integer avgJoinFz;
/**
* 平均参与度分母
*/
private Integer avgJoinFm;
}

16
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/GovernConstant.java

@ -0,0 +1,16 @@
package com.epmet.constant;
/**
* @Author zxc
* @DateTime 2021/7/9 3:24 下午
* @DESC
*/
public interface GovernConstant {
/**
* 增长incr下降decr 相等 eq
*/
String INCR = "incr";
String DECR = "decr";
String EQ = "eq";
}

21
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenUserJoinDao.java

@ -62,6 +62,17 @@ public interface ScreenUserJoinDao extends BaseDao<ScreenUserJoinEntity> {
Integer deleteUserJoin(@Param("customerId") String customerId,
@Param("monthId") String monthId);
/**
* @Description 根据类别删除
* @Param customerId
* @Param monthId
* @Param delFlag
* @author zxc
* @date 2021/7/9 2:21 下午
*/
Integer deleteUserJoinByCategory(@Param("customerId") String customerId,@Param("monthId") String monthId,
@Param("delFlag") String delFlag);
/**
* 11基层治理-公众参与
* 2) 在批量新增
@ -72,4 +83,14 @@ public interface ScreenUserJoinDao extends BaseDao<ScreenUserJoinEntity> {
* @Date 10:52 2020-08-18
**/
void batchInsertUserJoin(@Param("list") List<ScreenUserJoinEntity> list, @Param("customerId")String customerId);
/**
* @Description 根据月份查询screenUserJoin
* @Param customerId
* @Param monthId
* @Param flag agency grid
* @author zxc
* @date 2021/7/9 3:13 下午
*/
List<ScreenUserJoinEntity> selectScreenUserJoin(@Param("customerId")String customerId, @Param("monthId")String monthId, @Param("flag")String flag);
}

20
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenUserJoinEntity.java

@ -92,6 +92,16 @@ public class ScreenUserJoinEntity extends BaseEpmetEntity {
*/
private BigDecimal avgIssue;
/**
* 人均议题分子
*/
private Integer avgIssueFz;
/**
* 人均议题分母
*/
private Integer avgIssueFm;
/**
* 人均议题较上月增长率(采集的时候后台自己计算)
*/
@ -107,6 +117,16 @@ public class ScreenUserJoinEntity extends BaseEpmetEntity {
*/
private BigDecimal avgJoin;
/**
* 平均参与度分子
*/
private Integer avgJoinFz;
/**
* 平均参与度分母
*/
private Integer avgJoinFm;
/**
* 平均参与度较上月增长率(采集的时候后台自己计算)
*/

294
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.GovernConstant;
import com.epmet.constant.OrgTypeConstant;
import com.epmet.constant.ProjectConstant;
import com.epmet.dto.extract.form.ExtractScreenFormDTO;
@ -76,6 +77,14 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
* <p>
* 不考虑市北人均议题统计周期内议题总数/发过议题的人数 参与度各个行为(表决)的总数/发生行为的人数
*
*
* ================================================================================================================
* ================================================================================================================
* 2021-07-09 新注释
* 公众参与里的指标含义说明
* 总参与议题参与的次数比如 表决 等行为产品只有表决行为其他三个街道 包含评论数点赞数点踩数
* 人均议题议题总数/组织内的总人数项目绑定网格的总用户数产品组织内的小组成员数去重
* 平均参与度议题参与的总人数每个议题参与人数的和/应参与人数项目组织内的人数不去重产品组织内的小组成员数去重* 议题个数
* @return java.lang.Boolean
* @author LiuJanJun
* @date 2020/9/25 10:24 上午
@ -86,9 +95,9 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
log.warn("extractTotalDataMonthly param is error,param:{}", JSON.toJSONString(formDTO));
return false;
}
extractGridUserJoin(formDTO);
extractAgencyUserJoin(formDTO);
return null;
gridUserJoinCal(formDTO);
agencyUserJoinCal(formDTO);
return true;
}
private void extractGridUserJoin(ExtractScreenFormDTO formDTO) {
@ -178,7 +187,7 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
entity.setAvgJoin(bigDecimal.divide(votedByIssueCount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(NumConstant.ONE_HUNDRED)));
}
}
screenUserJoinService.deleteAndInsertBatch(formDTO, new ArrayList<>(insertMap.values()));
screenUserJoinService.deleteAndInsertBatch(formDTO, new ArrayList<>(insertMap.values()),OrgTypeConstant.GRID);
}
private void extractAgencyUserJoin(ExtractScreenFormDTO formDTO) {
@ -219,7 +228,7 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
List<IssueVoteUserCountResultDTO> voteCountList = factOriginIssueLogDailyService.getVoteCount(formDTO.getCustomerId(), formDTO.getMonthId(), ProjectConstant.AGENCY_ID);
Map<String, Integer> orgMemberCount = new HashMap<>();
if (!CollectionUtils.isEmpty(issueTotal)) {
//获取每个网格的应表决人数
//获取每个网格的应表决人数 (组成员数去重)
List<GridGroupUserCountResultDTO> memberCountList = factOriginGroupMainDailyService.selectDistinctGroupMemberCount(formDTO.getCustomerId(), ProjectConstant.AGENCY_ID);
if (CollectionUtils.isEmpty(memberCountList)) {
log.warn("抽取【公众参与-人均议题】,获取应表决人数为空,customerId:{}", formDTO.getCustomerId());
@ -253,12 +262,7 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
}
});
}
screenUserJoinService.deleteAndInsertBatch(formDTO, new ArrayList<>(insertMap.values()));
}
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal(0);
bigDecimal = bigDecimal.add(new BigDecimal(0 / (1 * 1.0)));
screenUserJoinService.deleteAndInsertBatch(formDTO, new ArrayList<>(insertMap.values()),OrgTypeConstant.GRID);
}
private void buildUserJoinEntity(ExtractScreenFormDTO formDTO, Object org, Map<String, ScreenUserJoinEntity> result) {
@ -274,7 +278,7 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
} else if (org instanceof DimAgencyEntity) {
DimAgencyEntity agency = (DimAgencyEntity) org;
entity.setCustomerId(agency.getCustomerId());
entity.setOrgType(agency.getLevel());
entity.setOrgType(OrgTypeConstant.AGENCY);
entity.setOrgId(agency.getId());
entity.setParentId(agency.getPid());
entity.setOrgName(agency.getAgencyName());
@ -289,6 +293,10 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
entity.setAvgJoin(new BigDecimal(0));
entity.setAgvgJoinUpRate(new BigDecimal("0"));
entity.setAgvgJoinUpFlag("");
entity.setAvgIssueFz(NumConstant.ZERO);
entity.setAvgIssueFm(NumConstant.ZERO);
entity.setAvgJoinFz(NumConstant.ZERO);
entity.setAvgJoinFm(NumConstant.ZERO);
result.put(entity.getOrgId(), entity);
}
@ -304,4 +312,266 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService {
public Boolean extractPerTotalDataDaily(ExtractScreenFormDTO formDTO) {
return null;
}
/**
* @Description 基层治理-公众参与网格-
* @Param formDTO
* @author zxc
* @date 2021/7/9 9:20 上午
*/
public void gridUserJoinCal(ExtractScreenFormDTO formDTO){
// 查询客户下所有网格
List<DimGridEntity> orgList = dimGridService.getGridListByCustomerId(formDTO.getCustomerId());
if (CollectionUtils.isEmpty(orgList)) {
log.warn("抽取【公众参与-人均议题】,获取组织数据失败,customerId:{}", formDTO.getCustomerId());
return;
}
//构建组织数据
Map<String, ScreenUserJoinEntity> insertMap = new HashMap<>(16);
orgList.forEach(org -> buildUserJoinEntity(formDTO, org, insertMap));
//获取议题月份增量
List<FactIssueGridMonthlyEntity> issueTotal = factIssueGridMonthlyService.getIssueIncCountAndTotalByMonthId(formDTO.getCustomerId(), formDTO.getMonthId());
if (CollectionUtils.isEmpty(issueTotal)) {
return;
}
// 查询 注册居民本月增量 党员认证本月增量 截止本月底居民总数
List<GridUserCountResultDTO> userCountList = factRegUserGridMonthlyService.selectGridUserCount(formDTO.getCustomerId(), formDTO.getMonthId());
if (CollectionUtils.isEmpty(userCountList)) {
return;
}
// list 转 map 以orgId为key
Map<String, GridUserCountResultDTO> userCountMap = userCountList.stream().collect(Collectors.toMap(GridUserCountResultDTO::getOrgId, o -> o));
for (FactIssueGridMonthlyEntity issue : issueTotal) {
String gridId = issue.getGridId();
ScreenUserJoinEntity entity = insertMap.get(gridId);
if (entity == null) {
continue;
}
// 议题本月增长
entity.setJoinTotal(issue.getIssueIncr());
// 网格下 注册居民本月增量,党员认证本月增量,截止本月底居民总数
GridUserCountResultDTO user = userCountMap.get(gridId);
if (user == null) {
continue;
}
// 议题总数/组织内的总人数(项目:绑定网格的总用户数,产品:组织内的小组成员数去重)
log.debug("issue:{}", JSON.toJSONString(issue));
log.debug("user:{}", JSON.toJSONString(user));
if (!user.getRegTotal().equals(0)) {
BigDecimal avgIssueCount = new BigDecimal(issue.getIssueIncr()).divide(new BigDecimal(user.getRegTotal()),NumConstant.FOUR, BigDecimal.ROUND_HALF_UP);
entity.setAvgIssueFz(issue.getIssueIncr());
entity.setAvgIssueFm(user.getRegTotal());
// 人均议题
entity.setAvgIssue(avgIssueCount);
}
}
//获取该月 表决的人数
List<IssueVoteUserCountResultDTO> voteCountList = factOriginIssueLogDailyService.getVoteCount(formDTO.getCustomerId(), formDTO.getMonthId(), ProjectConstant.GRID_ID);
Map<String, Integer> gridMemberCount = new HashMap<>(16);
// 议题月份增量不为空
if (!CollectionUtils.isEmpty(issueTotal)) {
//获取每个网格的应表决人数
List<GridGroupUserCountResultDTO> memberCountList = factOriginGroupMainDailyService.selectDistinctGroupMemberCount(formDTO.getCustomerId(), ProjectConstant.GRID_ID);
if (CollectionUtils.isEmpty(memberCountList)) {
return;
}
// 网格下的组员
gridMemberCount = memberCountList.stream().collect(Collectors.toMap(GridGroupUserCountResultDTO::getOrgId, o -> o.getMemberCount()));
}
/**
* 平均参与度议题参与的总人数每个议题参与人数的和/应参与人数项目网格内的人数不去重产品组织内的小组成员数去重* 议题个数
*/
// 根据网格ID分组
Map<String, List<IssueVoteUserCountResultDTO>> voteMap = voteCountList.stream().collect(Collectors.groupingBy(IssueVoteUserCountResultDTO::getOrgId));
//遍历实际参与人数
for (Map.Entry<String, List<IssueVoteUserCountResultDTO>> entry : voteMap.entrySet()) {
String gridId = entry.getKey();
ScreenUserJoinEntity entity = insertMap.get(gridId);
if (entity == null) {
continue;
}
List<IssueVoteUserCountResultDTO> issueList = entry.getValue();
BigDecimal realJoinCount = new BigDecimal(0);
// 网格下 议题个数
BigDecimal votedByIssueCount = new BigDecimal(issueList.get(0).getIssueCount());
// 网格下 组员人数
Integer memberCount = gridMemberCount.get(gridId);
for (IssueVoteUserCountResultDTO vote : issueList) {
// 每个议题参与人数求和
realJoinCount = realJoinCount.add(new BigDecimal(vote.getVoteCount()));
}
if (votedByIssueCount.intValue() != NumConstant.ZERO) {
// 平均参与度 = 议题参与的总人数 / (应参与人数 * 议题个数)
BigDecimal avgFz = votedByIssueCount.multiply(new BigDecimal(memberCount));
entity.setAvgJoinFz(Integer.valueOf(avgFz.toString()));
entity.setAvgJoinFm(Integer.valueOf(realJoinCount.toString()));
entity.setAvgJoin(realJoinCount.divide(avgFz, NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
}
}
ArrayList<ScreenUserJoinEntity> dispose = dispose(formDTO, insertMap, OrgTypeConstant.GRID);
screenUserJoinService.deleteAndInsertBatch(formDTO, dispose,OrgTypeConstant.GRID);
}
/**
* @Description 基层治理-公众参与组织-
* @Param formDTO
* @author zxc
* @date 2021/7/9 9:20 上午
*/
public void agencyUserJoinCal(ExtractScreenFormDTO formDTO){
// 查询客户下的所有组织
List<DimAgencyEntity> agencyList = dimAgencyService.getAgencyListByCustomerId(formDTO.getCustomerId());
if (CollectionUtils.isEmpty(agencyList)) {
log.warn("抽取【公众参与-人均议题】,获取组织数据失败,customerId:{}", formDTO.getCustomerId());
return;
}
//构建组织数据
Map<String, ScreenUserJoinEntity> insertMap = new HashMap<>(16);
agencyList.forEach(org -> buildUserJoinEntity(formDTO, org, insertMap));
// 查询组织下 议题月增长,截止本月议题总数
List<FactIssueAgencyMonthlyEntity> issueTotal = factIssueAgencyMonthlyService.getIssueIncCountAndTotalByMonthId(formDTO.getCustomerId(), formDTO.getMonthId());
// 查询 注册居民本月增量 党员认证本月增量 截止本月底居民总数
List<GridUserCountResultDTO> userCountList = factRegUserAgencyMonthlyService.selectAgencyUserCount(formDTO.getCustomerId(), formDTO.getMonthId());
// 以agencyId为key
Map<String, GridUserCountResultDTO> userCountMap = userCountList.stream().collect(Collectors.toMap(GridUserCountResultDTO::getOrgId, o -> o));
Set<String> agencyIdSet = new HashSet<>();
if (!CollectionUtils.isEmpty(issueTotal)) {
issueTotal.forEach(issue -> {
String agencyId = issue.getAgencyId();
agencyIdSet.add(agencyId);
ScreenUserJoinEntity entity = insertMap.get(agencyId);
if (entity == null){
return;
}
entity.setJoinTotal(issue.getIssueIncr());
GridUserCountResultDTO user = userCountMap.get(agencyId);
// 人均议题:议题总数/组织内的总人数(项目:绑定网格的总用户数,产品:组织内的小组成员数去重)
if (!user.getRegTotal().equals(NumConstant.ZERO)) {
BigDecimal avgIssueCount = new BigDecimal(issue.getIssueIncr()).divide(new BigDecimal(user.getRegTotal()), NumConstant.FOUR, BigDecimal.ROUND_HALF_UP);
entity.setAvgIssueFz(issue.getIssueIncr());
entity.setAvgIssueFm(user.getRegTotal());
entity.setAvgIssue(avgIssueCount);
}
});
List<List<String>> partition = ListUtils.partition(new ArrayList<>(agencyIdSet), NumConstant.THIRTY);
partition.forEach(list -> {
//获取该月 表决的人数
List<IssueVoteUserCountResultDTO> voteCountList = factOriginIssueLogDailyService.getVoteCount(formDTO.getCustomerId(), formDTO.getMonthId(), ProjectConstant.AGENCY_ID);
Map<String, Integer> orgMemberCount = new HashMap<>(16);
if (!CollectionUtils.isEmpty(issueTotal)) {
//获取每个组织的应表决人数
List<GridGroupUserCountResultDTO> memberCountList = factOriginGroupMainDailyService.selectDistinctGroupMemberCount(formDTO.getCustomerId(), ProjectConstant.AGENCY_ID);
if (CollectionUtils.isEmpty(memberCountList)) {
log.warn("抽取【公众参与-人均议题】,获取应表决人数为空,customerId:{}", formDTO.getCustomerId());
return;
}
// (k,v) = (agencyId,组织下的人)
orgMemberCount = memberCountList.stream().collect(Collectors.toMap(GridGroupUserCountResultDTO::getOrgId, o -> o.getMemberCount()));
}
// 平均参与度:议题参与的总人数(每个议题参与人数的和)/(应参与人数(项目:组织内的人数不去重;产品:组织内的小组成员数去重)* 议题个数)
// 根据组织ID分组
Map<String, List<IssueVoteUserCountResultDTO>> voteMap = voteCountList.stream().collect(Collectors.groupingBy(IssueVoteUserCountResultDTO::getOrgId));
for (Map.Entry<String, List<IssueVoteUserCountResultDTO>> entry : voteMap.entrySet()) {
String orgId = entry.getKey();
ScreenUserJoinEntity entity = insertMap.get(orgId);
List<IssueVoteUserCountResultDTO> issueList = entry.getValue();
// 实际参与人数
BigDecimal realJoinCount = new BigDecimal(NumConstant.ZERO);
// 组织下 的议题数
BigDecimal votedByIssueCount = new BigDecimal(issueList.get(NumConstant.ZERO).getIssueCount());
// 组织下应参与人数
Integer memberCount = orgMemberCount.get(orgId);
for (IssueVoteUserCountResultDTO vote : issueList) {
realJoinCount = realJoinCount.add(new BigDecimal(vote.getVoteCount()));
}
if (votedByIssueCount.intValue() != 0) {
// 平均参与度 = 议题参与的总人数 / (应参与人数 * 议题个数)
BigDecimal avgFz = votedByIssueCount.multiply(new BigDecimal(memberCount));
entity.setAvgJoin(realJoinCount.divide(votedByIssueCount, NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
entity.setAvgJoinFz(Integer.valueOf(realJoinCount.toString()));
entity.setAvgJoinFm(Integer.valueOf(avgFz.toString()));
}
}
});
}
ArrayList<ScreenUserJoinEntity> dispose = dispose(formDTO, insertMap, OrgTypeConstant.AGENCY);
screenUserJoinService.deleteAndInsertBatch(formDTO, dispose,OrgTypeConstant.AGENCY);
}
public ArrayList<ScreenUserJoinEntity> dispose(ExtractScreenFormDTO formDTO,Map<String, ScreenUserJoinEntity> insertMap,String flag) {
String beforeNMonthByMonth = DateUtils.getBeforeNMonthByMonth(NumConstant.ONE, formDTO.getMonthId());
List<ScreenUserJoinEntity> screenUserJoinEntities = screenUserJoinService.selectScreenUserJoin(formDTO.getCustomerId(), beforeNMonthByMonth, flag);
ArrayList<ScreenUserJoinEntity> insertList = new ArrayList<>(insertMap.values());
if (CollectionUtils.isEmpty(screenUserJoinEntities)) {
insertList.forEach(l -> {
// 总的参与次数较上月增长率
if (l.getJoinTotal().equals(NumConstant.ZERO)) {
l.setJoinTotalUpFlag(GovernConstant.EQ);
l.setJoinTotalUpRate(NumConstant.ZERO_DECIMAL);
} else if (l.getJoinTotal() > NumConstant.ZERO) {
l.setJoinTotalUpFlag(GovernConstant.INCR);
l.setJoinTotalUpRate(NumConstant.ONE_HUNDRED_DECIMAL);
}
// 人均议题较上月增长率
if (l.getAvgIssue().equals(NumConstant.ZERO_DECIMAL)) {
l.setAvgIssueUpFlag(GovernConstant.EQ);
l.setAvgIssueUpRate(NumConstant.ZERO_DECIMAL);
} else {
l.setAvgIssueUpFlag(GovernConstant.INCR);
l.setAvgIssueUpRate(NumConstant.ONE_HUNDRED_DECIMAL);
}
// 平均参与度较上月增长率
if (l.getAvgJoin().equals(NumConstant.ZERO_DECIMAL)) {
l.setAgvgJoinUpFlag(GovernConstant.EQ);
l.setAgvgJoinUpRate(NumConstant.ZERO_DECIMAL);
} else {
l.setAgvgJoinUpFlag(GovernConstant.INCR);
l.setAgvgJoinUpRate(NumConstant.ONE_HUNDRED_DECIMAL);
}
});
} else {
insertList.forEach(l -> {
screenUserJoinEntities.forEach(s -> {
if (l.getOrgId().equals(s.getOrgId())) {
// 总的参与次数较上月增长率
if (l.getJoinTotal() > s.getJoinTotal()) {
l.setJoinTotalUpFlag(GovernConstant.INCR);
l.setJoinTotalUpRate(new BigDecimal(((l.getJoinTotal() - s.getJoinTotal()) / s.getJoinTotal()) * NumConstant.ONE_HUNDRED).setScale(NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
} else if (l.getJoinTotal() < s.getJoinTotal()) {
l.setJoinTotalUpFlag(GovernConstant.DECR);
l.setJoinTotalUpRate(new BigDecimal(((l.getJoinTotal() - s.getJoinTotal()) / s.getJoinTotal()) * NumConstant.ONE_HUNDRED).setScale(NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
} else {
l.setJoinTotalUpFlag(GovernConstant.EQ);
l.setJoinTotalUpRate(NumConstant.ZERO_DECIMAL);
}
// 人均议题较上月增长率
Integer re = l.getAvgIssue().compareTo(s.getAvgIssue());
if (re.equals(NumConstant.ONE)) {
l.setAvgIssueUpFlag(GovernConstant.INCR);
l.setAvgIssueUpRate(l.getAvgIssue().subtract(s.getAvgIssue()).divide(s.getAvgIssue()).multiply(NumConstant.ONE_HUNDRED_DECIMAL).setScale(NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
} else if (re.equals(NumConstant.ONE_NEG)) {
l.setAvgIssueUpFlag(GovernConstant.DECR);
l.setAvgIssueUpRate(l.getAvgIssue().subtract(s.getAvgIssue()).divide(s.getAvgIssue()).multiply(NumConstant.ONE_HUNDRED_DECIMAL).setScale(NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
} else {
l.setAvgIssueUpFlag(GovernConstant.EQ);
l.setAvgIssueUpRate(NumConstant.ZERO_DECIMAL);
}
// 平均参与度较上月增长率
Integer avgJoinRe = l.getAvgJoin().compareTo(s.getAvgJoin());
if (avgJoinRe.equals(NumConstant.ONE)) {
l.setAgvgJoinUpFlag(GovernConstant.INCR);
l.setAgvgJoinUpRate(l.getAvgJoin().subtract(s.getAvgJoin()).divide(s.getAvgJoin()).multiply(NumConstant.ONE_HUNDRED_DECIMAL).setScale(NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
} else if (avgJoinRe.equals(NumConstant.ONE_NEG)) {
l.setAvgIssueUpFlag(GovernConstant.DECR);
l.setAgvgJoinUpRate(l.getAvgJoin().subtract(s.getAvgJoin()).divide(s.getAvgJoin()).multiply(NumConstant.ONE_HUNDRED_DECIMAL).setScale(NumConstant.FOUR, BigDecimal.ROUND_HALF_UP));
} else {
l.setAvgIssueUpFlag(GovernConstant.EQ);
l.setAgvgJoinUpRate(NumConstant.ZERO_DECIMAL);
}
}
});
});
}
return insertList;
}
}

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenUserJoinService.java

@ -36,9 +36,20 @@ public interface ScreenUserJoinService extends BaseService<ScreenUserJoinEntity>
*
* @param formDTO
* @param list
* @param delFlag 删除标志 agency,grid
* @return java.lang.Boolean
* @author LiuJanJun
* @date 2020/9/27 4:40 下午
*/
Boolean deleteAndInsertBatch(ExtractScreenFormDTO formDTO, List<ScreenUserJoinEntity> list);
Boolean deleteAndInsertBatch(ExtractScreenFormDTO formDTO, List<ScreenUserJoinEntity> list,String delFlag);
/**
* @Description 根据月份查询screenUserJoin
* @Param customerId
* @Param monthId
* @Param flag agency grid
* @author zxc
* @date 2021/7/9 3:13 下午
*/
List<ScreenUserJoinEntity> selectScreenUserJoin(String customerId,String monthId,String flag);
}

26
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java

@ -140,7 +140,7 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD
//如果结案 结案时间立项时间;
if ("closed_case".equals(projectStatusCode)) {
try {
Date createTime = sdf.parse(item.getProjectCreateTime());
Date createTime = item.getProjectCreateTime();
Date closeCaseTime = sdf.parse(item.getCloseCaseTime());
if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) {
@ -158,21 +158,17 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD
}
} else if ("pending".equals(projectStatusCode)) {
//如果处理中 当前时间-立项时间;
try {
Date createTime = sdf.parse(item.getProjectCreateTime());
Date createTime = item.getProjectCreateTime();
if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) {
//如果当前时间-立项时间小于等于4天 未超期 level3
item.setProjectLevel(3);
} else if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) {
//如果当前时间-立项时间大于4天小于5天 即将超期 level2
item.setProjectLevel(2);
} else {
//大于5天 已超期 level1
item.setProjectLevel(1);
}
} catch (ParseException e) {
e.printStackTrace();
if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) {
//如果当前时间-立项时间小于等于4天 未超期 level3
item.setProjectLevel(3);
} else if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) {
//如果当前时间-立项时间大于4天小于5天 即将超期 level2
item.setProjectLevel(2);
} else {
//大于5天 已超期 level1
item.setProjectLevel(1);
}
}
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenUserJoinServiceImpl.java

@ -48,20 +48,20 @@ import java.util.List;
*/
@Slf4j
@Service
@DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true)
public class ScreenUserJoinServiceImpl extends BaseServiceImpl<ScreenUserJoinDao, ScreenUserJoinEntity> implements ScreenUserJoinService {
@Override
@DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true)
@Transactional(rollbackFor = Exception.class)
public Boolean deleteAndInsertBatch(ExtractScreenFormDTO formDTO, List<ScreenUserJoinEntity> list) {
public Boolean deleteAndInsertBatch(ExtractScreenFormDTO formDTO, List<ScreenUserJoinEntity> list, String delFlag) {
if (formDTO == null || StringUtils.isBlank(formDTO.getCustomerId()) || StringUtils.isBlank(formDTO.getMonthId()) || CollectionUtils.isEmpty(list)) {
log.error("deleteAndInsertBatch param is error");
return false;
}
int deleteNum;
do {
deleteNum = baseDao.deleteUserJoin(formDTO.getCustomerId(), formDTO.getMonthId());
deleteNum = baseDao.deleteUserJoinByCategory(formDTO.getCustomerId(), formDTO.getMonthId(),delFlag);
} while (deleteNum != NumConstant.ZERO);
@ -124,6 +124,19 @@ public class ScreenUserJoinServiceImpl extends BaseServiceImpl<ScreenUserJoinDao
return true;
}
/**
* @Description 根据月份查询screenUserJoin
* @Param customerId
* @Param monthId
* @Param flag agency grid
* @author zxc
* @date 2021/7/9 3:13 下午
*/
@Override
public List<ScreenUserJoinEntity> selectScreenUserJoin(String customerId, String monthId, String flag) {
return baseDao.selectScreenUserJoin(customerId, monthId, flag);
}
/**
* 计算 本月数值 相较于 上月数值的增长率

7
epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.22__pulic_party.sql

@ -0,0 +1,7 @@
ALTER TABLE `epmet_evaluation_index`.`screen_user_join`
ADD COLUMN `AVG_ISSUE_FZ` int(11) NULL DEFAULT 0 COMMENT '人均议题分子' AFTER `AVG_ISSUE`,
ADD COLUMN `AVG_ISSUE_FM` int(11) NULL DEFAULT 0 COMMENT '人均议题分母' AFTER `AVG_ISSUE_FZ`,
ADD COLUMN `AVG_JOIN_FZ` int(11) NULL DEFAULT 0 COMMENT '平均参与度分子' AFTER `AVG_JOIN`,
ADD COLUMN `AVG_JOIN_FM` int(11) NULL DEFAULT 0 COMMENT '平均参与度分母' AFTER `AVG_JOIN_FZ`,
DROP PRIMARY KEY,
ADD PRIMARY KEY (`ID`) USING BTREE;

25
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenUserJoinDao.xml

@ -26,6 +26,13 @@
limit 1000;
</delete>
<!-- 根据类别删除 -->
<delete id="deleteUserJoinByCategory">
delete from screen_user_join
where CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} AND ORG_TYPE = #{delFlag}
limit 1000
</delete>
<insert id="batchInsertUserJoin" parameterType="map">
insert into screen_user_join
(
@ -41,9 +48,13 @@
JOIN_TOTAL_UP_RATE,
JOIN_TOTAL_UP_FLAG,
AVG_ISSUE,
AVG_ISSUE_FZ,
AVG_ISSUE_FM,
AVG_ISSUE_UP_RATE,
AVG_ISSUE_UP_FLAG,
AVG_JOIN,
AVG_JOIN_FZ,
AVG_JOIN_FM,
AGVG_JOIN_UP_RATE,
AGVG_JOIN_UP_FLAG,
DEL_FLAG,
@ -69,10 +80,14 @@
#{item.joinTotalUpFlag},
#{item.avgIssue},
#{item.avgIssueFz},
#{item.avgIssueFm},
#{item.avgIssueUpRate},
#{item.avgIssueUpFlag},
#{item.avgJoin},
#{item.avgIssueFz},
#{item.avgIssueFm},
#{item.agvgJoinUpRate},
#{item.agvgJoinUpFlag},
0,
@ -85,4 +100,14 @@
</foreach>
</insert>
<!-- 根据月份查询screenUserJoin -->
<select id="selectScreenUserJoin" resultType="com.epmet.entity.evaluationindex.screen.ScreenUserJoinEntity">
SELECT * FROM screen_user_join
WHERE DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND ORG_TYPE = #{flag}
AND MONTH_ID = #{monthId}
</select>
</mapper>

2
epmet-module/gov-access/gov-access-server/src/main/resources/mapper/RoleOperationDefaultDao.xml

@ -48,6 +48,6 @@
LEFT JOIN role_operation_default d ON (o.OPERATION_KEY = d.OPERATION_KEY AND d.DEL_FLAG = '0'
AND d.ROLE_KEY = #{roleKey})
WHERE o.DEL_FLAG = '0'
ORDER BY o.OPERATION_KEY ASC
ORDER BY o.OPERATION_NAME ASC
</select>
</mapper>

2
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/RoleInfoResultDTO.java

@ -31,4 +31,6 @@ public class RoleInfoResultDTO implements Serializable{
private Boolean fullTimeOnly = false;
private String roleKey;
private String description;
}

3
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffInfoResultDTO.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
@ -37,4 +38,6 @@ public class StaffInfoResultDTO implements Serializable {
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
private String roleName;
List<String> roles;
}

2
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffRoleResultDTO.java

@ -30,4 +30,6 @@ public class StaffRoleResultDTO implements Serializable {
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
private Boolean selected;
private String description;
}

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/GovStaffRoleDTO.java

@ -63,6 +63,11 @@ public class GovStaffRoleDTO implements Serializable {
* */
private Boolean fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
* */

30
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UpGovRoleFormDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@Data
public class UpGovRoleFormDTO {
/**
* 角色表id
*/
@NotEmpty(message = "角色Id不能为空", groups = {Update.class})
private String roleId;
/**
* 角色名称
*/
private String roleName;
/**
* 职责描述
*/
private String description;
/**
* token中userId
*/
private String userId;
public interface Update extends CustomerClientShowGroup {}
}

23
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GovStaffRoleResultDTO.java

@ -17,6 +17,7 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -64,4 +65,26 @@ public class GovStaffRoleResultDTO implements Serializable {
private String mobile;
private String gender;
/**
* 职责描述
*/
private String description;
/**
* 角色key[默认值]
*/
private String defRoleKey;
/**
* 角色名称[默认值]
*/
private String defRoleName;
/**
* 职责描述[默认值]
*/
private String defDescription;
/**
* 排序
*/
@JsonIgnore
private Integer sort;
}

10
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GovStaffRoleTemplateDTO.java

@ -58,6 +58,16 @@ public class GovStaffRoleTemplateDTO implements Serializable {
* */
private Boolean fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
*/
private String sort;
/**
*
*/

42
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java

@ -6,6 +6,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.GovStaffRoleFormDTO;
import com.epmet.dto.form.UpGovRoleFormDTO;
import com.epmet.dto.result.GovStaffRoleResultDTO;
import com.epmet.dto.result.GovStaffRoleTemplateDTO;
import com.epmet.dto.result.ResiGovRoleListResultDTO;
@ -76,15 +77,14 @@ public class GovStaffRoleController {
/**
* 更新客户的指定角色
* @param form
* @param formDTO
* @return
*/
@PostMapping("update-role")
public Result updateRole(@RequestBody GovStaffRoleFormDTO form) {
ValidatorUtils.validateEntity(form, GovStaffRoleFormDTO.UpdateRoleGroup.class);
if (govStaffRoleService.updateRole(form.getRoleId(), form.getRoleName()) == 0) {
throw new RenException("修改角色信息失败");
}
public Result updateRole(@LoginUser TokenDto tokenDTO, @RequestBody UpGovRoleFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, UpGovRoleFormDTO.Update.class);
formDTO.setUserId(tokenDTO.getUserId());
govStaffRoleService.updateCustomerRole(formDTO);
return new Result();
}
@ -94,10 +94,9 @@ public class GovStaffRoleController {
* @return
*/
@PostMapping("save-sortorder")
public Result saveSortOrder(@RequestBody GovStaffRoleFormDTO form) {
public Result saveSortOrder(@LoginUser TokenDto tokenDTO, @RequestBody GovStaffRoleFormDTO form) {
ValidatorUtils.validateEntity(form, GovStaffRoleFormDTO.SaveRoleOrderGroup.class);
List<String> roleIdList = form.getRoleIdList();
govStaffRoleService.saveSortOrder(roleIdList);
govStaffRoleService.saveSortOrder(tokenDTO.getUserId(), form.getRoleIdList());
return new Result();
}
@ -124,4 +123,29 @@ public class GovStaffRoleController {
Result<List<RoleInfoResultDTO>> queryCustomerGovRoleList(@PathVariable("customerId") String customerId){
return new Result<List<RoleInfoResultDTO>>().ok(govStaffRoleService.queryCustomerGovRoleList(customerId));
}
/**
* @param formDTO
* @Description 默认权限保存排序
* @Author sun
**/
@PostMapping("savedefaultsort")
public Result saveDefaultSort(@LoginUser TokenDto tokenDTO, @RequestBody GovStaffRoleFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GovStaffRoleFormDTO.SaveRoleOrderGroup.class);
govStaffRoleService.saveDefaultSort(tokenDTO.getUserId(), formDTO.getRoleIdList());
return new Result();
}
/**
* @param formDTO
* @Description 修改角色名称或职责描述
* @Author sun
**/
@PostMapping("updatedefaultrole")
public Result updateDefaultRole(@LoginUser TokenDto tokenDTO, @RequestBody UpGovRoleFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, UpGovRoleFormDTO.Update.class);
formDTO.setUserId(tokenDTO.getUserId());
govStaffRoleService.updateDefaultRole(formDTO);
return new Result();
}
}

18
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java

@ -19,6 +19,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.form.UpGovRoleFormDTO;
import com.epmet.dto.result.GovStaffRoleResultDTO;
import com.epmet.dto.result.RoleInfoResultDTO;
import com.epmet.dto.result.RoleKeyValueResultDTO;
@ -46,6 +47,14 @@ public interface GovStaffRoleDao extends BaseDao<GovStaffRoleEntity> {
*/
List<GovStaffRoleEntity> listRolesByStaffId(@Param("staffId") String staffId, @Param("orgId") String orgId);
/**
* 根据staffId查询具有的角色列表
* @param staffId
* @param orgId
* @return
*/
List<GovStaffRoleEntity> getStaffRoles(@Param("staffIds") List<String> staffId, @Param("orgId") String orgId);
/**
* 获取客户机关角色列表
* @param params
@ -75,7 +84,7 @@ public interface GovStaffRoleDao extends BaseDao<GovStaffRoleEntity> {
int updateColumnsById(@Param("roleId") String roleId, @Param("roleName") String roleName);
int updateSortById(@Param("roleId") String roleId, @Param("sort") int sort);
int updateSortById(@Param("roleId") String roleId, @Param("sort") int sort, @Param("userId") String userId);
List<GovStaffRoleResultDTO> listRolesByRoleKey(@Param("roleKey") String roleKey);
@ -88,4 +97,11 @@ public interface GovStaffRoleDao extends BaseDao<GovStaffRoleEntity> {
* @date 2021/6/15 2:35 下午
*/
List<RoleKeyValueResultDTO> selectRoleKeyName(@Param("roleIds")List<String> roleIds);
/**
* @param formDTO
* @Description 修改客户角色名称或职责描述
* @Author sun
**/
int upNameOrDescription(UpGovRoleFormDTO formDTO);
}

22
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleTemplateDao.java

@ -18,10 +18,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.UpGovRoleFormDTO;
import com.epmet.dto.result.GovStaffRoleResultDTO;
import com.epmet.dto.result.GovStaffRoleTemplateDTO;
import com.epmet.dto.result.ResiGovRoleResultDTO;
import com.epmet.entity.GovStaffRoleTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -45,4 +48,23 @@ public interface GovStaffRoleTemplateDao extends BaseDao<GovStaffRoleTemplateEnt
* @Description 获取工作端角色列表
*/
List<ResiGovRoleResultDTO> selectGovRoleList();
/**
* @author sun
* @Description 获取工作端默认角色列表
*/
List<GovStaffRoleResultDTO> defaultRoleList();
/**
* @author sun
* @Description 修改默认权限排序
*/
int updateSortById(@Param("roleId") String roleId, @Param("sort") int sort, @Param("userId") String userId);
/**
* @param formDTO
* @Description 修改角色名称或职责描述
* @Author sun
**/
int upNameOrDescription(UpGovRoleFormDTO formDTO);
}

5
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/GovStaffRoleEntity.java

@ -63,6 +63,11 @@ public class GovStaffRoleEntity extends BaseEpmetEntity {
* */
private Boolean fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
* */

10
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/GovStaffRoleTemplateEntity.java

@ -58,4 +58,14 @@ public class GovStaffRoleTemplateEntity extends BaseEpmetEntity {
* */
private Boolean fullTimeOnly;
/**
* 角色对应的职责说明
*/
private String description;
/**
* 排序
*/
private String sort;
}

33
epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java

@ -20,6 +20,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.form.UpGovRoleFormDTO;
import com.epmet.dto.result.GovStaffRoleResultDTO;
import com.epmet.dto.result.GovStaffRoleTemplateDTO;
import com.epmet.dto.result.ResiGovRoleListResultDTO;
@ -104,6 +105,16 @@ public interface GovStaffRoleService extends BaseService<GovStaffRoleEntity> {
*/
List<GovStaffRoleEntity> listRolesByStaffId(String staffId, String orgId);
/**
* 查询用户角色
* @author zhaoqifeng
* @date 2021/7/1 15:30
* @param staffIds
* @param orgId
* @return java.util.Map<java.lang.String,java.util.List<java.lang.String>>
*/
Map<String, List<String>> getStaffRoles(List<String> staffIds, String orgId);
/**
* 获取当前机关下的角色列表
* @param dto
@ -138,7 +149,7 @@ public interface GovStaffRoleService extends BaseService<GovStaffRoleEntity> {
int updateRole(String roleId, String roleName);
void saveSortOrder(List<String> roleIdList);
void saveSortOrder(String userId, List<String> roleIdList);
List<GovStaffRoleResultDTO> listRolesByRoleKey(String roleKey);
@ -150,4 +161,24 @@ public interface GovStaffRoleService extends BaseService<GovStaffRoleEntity> {
* @Date 2021/3/29 15:37
**/
List<RoleInfoResultDTO> queryCustomerGovRoleList(String customerId);
/**
* @Description 默认权限保存排序
* @Author sun
**/
void saveDefaultSort(String userId, List<String> roleIdList);
/**
* @param formDTO
* @Description 修改角色名称或职责描述
* @Author sun
**/
void updateDefaultRole(UpGovRoleFormDTO formDTO);
/**
* @param formDTO
* @Description 修改客户角色名称或职责描述
* @Author sun
**/
void updateCustomerRole(UpGovRoleFormDTO formDTO);
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java

@ -226,6 +226,12 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
if (null == list) {
list = new ArrayList<>();
}
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) {
Map<String, List<String>> map = govStaffRoleService.getStaffRoles(fromDTO.getStaffList(), fromDTO.getAgencyId());
list.forEach(item -> {
item.setRoles(map.get(item.getStaffId()));
});
}
return new Result<List<StaffInfoResultDTO>>().ok(list);
}
@ -245,6 +251,7 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
staffRoleResultDTO.setRoleId(p.getId());
staffRoleResultDTO.setRoleName(p.getRoleName());
staffRoleResultDTO.setFullTimeOnly(p.getFullTimeOnly());
staffRoleResultDTO.setDescription(p.getDescription());
return staffRoleResultDTO;
}).collect(Collectors.toList());
return new Result<List<RoleInfoResultDTO>>().ok(staffRoleList);
@ -277,6 +284,7 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
staffRoleResultDTO.setRoleId(p.getId());
staffRoleResultDTO.setRoleName(p.getRoleName());
staffRoleResultDTO.setFullTimeOnly(p.getFullTimeOnly());
staffRoleResultDTO.setDescription(p.getDescription());
staffRoleResultDTO.setSelected(false);
return staffRoleResultDTO;
}).collect(Collectors.toList());

99
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java

@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -30,6 +31,7 @@ import com.epmet.dao.GovStaffRoleTemplateDao;
import com.epmet.dao.RoleDao;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.form.UpGovRoleFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.GovStaffRoleEntity;
import com.epmet.feign.GovAccessFeignClient;
@ -42,10 +44,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 政府端角色表
@ -135,6 +137,22 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl<GovStaffRoleDao, Go
return baseDao.listRolesByStaffId(staffId, orgId);
}
/**
* 查询用户角色
*
* @param staffIds
* @param orgId
* @return java.util.Map<java.lang.String, java.util.List < java.lang.String>>
* @author zhaoqifeng
* @date 2021/7/1 15:30
*/
@Override
public Map<String, List<String>> getStaffRoles(List<String> staffIds, String orgId) {
List<GovStaffRoleEntity> staffRoleList = baseDao.getStaffRoles(staffIds, orgId);
return staffRoleList.stream().collect(Collectors.groupingBy(GovStaffRoleEntity::getCustomerId,
Collectors.mapping(GovStaffRoleEntity :: getId, Collectors.toList())));
}
@Override
public List<GovStaffRoleDTO> getGovStaffRoleList(GovStaffRoleDTO dto) {
return baseDao.selectGovStaffRoleList(dto);
@ -182,7 +200,34 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl<GovStaffRoleDao, Go
@Override
public List<GovStaffRoleResultDTO> listRolesByCustomer(String customerId) {
return govStaffRoleDao.listRolesByCustomer(customerId);
List<GovStaffRoleResultDTO> resultList = new ArrayList<>();
//1.查询系统默认角色列表数据
resultList = govStaffRoleTemplateDao.defaultRoleList();
//2.查询客户角色权限列表数据
List<GovStaffRoleResultDTO> cuList = govStaffRoleDao.listRolesByCustomer(customerId);
//3.封装数据并返回
resultList.forEach(re -> {
cuList.forEach(cu -> {
if (re.getDefRoleKey().equals(cu.getRoleKey())) {
re.setCustomerId(cu.getCustomerId());
re.setRoleId(cu.getRoleId());
re.setRoleKey(cu.getRoleKey());
re.setRoleName(cu.getRoleName());
re.setDescription(cu.getDescription());
re.setSort(cu.getSort());
}
});
});
//4.按客户权限顺序排序
if(cuList.size()>NumConstant.ZERO){
Collections.sort(resultList, new Comparator<GovStaffRoleResultDTO>() {
@Override
public int compare(GovStaffRoleResultDTO o1, GovStaffRoleResultDTO o2) {
return o1.getSort().compareTo(o2.getSort());
}
});
}
return resultList;
}
@Override
@ -221,12 +266,11 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl<GovStaffRoleDao, Go
return govStaffRoleDao.updateColumnsById(roleId, roleName);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void saveSortOrder(List<String> roleIdList) {
@Transactional(rollbackFor = Exception.class)
public void saveSortOrder(String userId, List<String> roleIdList) {
for (int i = 0 ; i < roleIdList.size() ; i++) {
int r = govStaffRoleDao.updateSortById(roleIdList.get(i), i);
System.out.println(r);
int r = govStaffRoleDao.updateSortById(roleIdList.get(i), i, userId);
}
}
@ -264,4 +308,41 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl<GovStaffRoleDao, Go
});
return resultList;
}
/**
* @Description 默认权限保存排序
* @Author sun
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void saveDefaultSort(String userId, List<String> roleIdList) {
for (int i = 0; i < roleIdList.size(); i++) {
govStaffRoleTemplateDao.updateSortById(roleIdList.get(i), i, userId);
}
}
/**
* @param formDTO
* @Description 修改角色名称或职责描述
* @Author sun
**/
@Override
public void updateDefaultRole(UpGovRoleFormDTO formDTO) {
if (govStaffRoleTemplateDao.upNameOrDescription(formDTO) < NumConstant.ONE) {
throw new RenException("修改角色信息失败");
}
}
/**
* @param formDTO
* @Description 修改客户角色名称或职责描述
* @Author sun
**/
@Override
public void updateCustomerRole(UpGovRoleFormDTO formDTO) {
if (govStaffRoleDao.upNameOrDescription(formDTO) < NumConstant.ONE) {
throw new RenException("修改角色信息失败");
}
}
}

47
epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml

@ -25,9 +25,12 @@
<!--更新排序序号-->
<update id="updateSortById">
update gov_staff_role
set SORT = #{sort}
where ID = #{roleId}
UPDATE gov_staff_role
SET sort = #{sort},
updated_by = #{userId},
updated_time = NOW()
WHERE
id = #{roleId}
</update>
<!--根据staffId查询具有的角色列表-->
@ -69,7 +72,9 @@
r.CUSTOMER_ID AS customerId,
r.ROLE_KEY AS roleKey,
r.ROLE_NAME AS roleName,
r.ORG_TYPE AS orgType
r.ORG_TYPE AS orgType,
r.DESCRIPTION AS description,
r.SORT AS sort
FROM gov_staff_role r
WHERE r.CUSTOMER_ID = #{customerId}
ORDER BY r.SORT asc
@ -133,4 +138,38 @@
</foreach>
)
</select>
<select id="getStaffRoles" resultType="com.epmet.entity.GovStaffRoleEntity">
SELECT
sr.STAFF_ID AS customerId,
r.ID,
r.ROLE_KEY,
r.ROLE_NAME
FROM
staff_role sr
INNER JOIN gov_staff_role r ON ( sr.ROLE_ID = r.ID ) AND r.DEL_FLAG = '0'
WHERE
sr.DEL_FLAG = '0'
AND sr.ORG_ID = #{orgId}
<foreach collection="staffIds" item="staffId" open="AND ( " separator=" OR " close=" ) ">
sr.STAFF_ID = #{staffId}
</foreach>
ORDER BY r.SORT asc
</select>
<update id="upNameOrDescription">
UPDATE gov_staff_role
<set>
<if test='null != roleName'>
role_name = #{roleName},
</if>
<if test='null != description'>
description = #{description},
</if>
updated_by = #{userId},
updated_time = NOW()
</set>
WHERE
id = #{roleId}
</update>
</mapper>

48
epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleTemplateDao.xml

@ -18,9 +18,14 @@
<!--列出有效的角色字典-->
<select id="listValidateRoles" resultType="com.epmet.dto.result.GovStaffRoleTemplateDTO">
SELECT *
FROM gov_staff_role_template
WHERE DEL_FLAG = 0
SELECT
*
FROM
gov_staff_role_template
WHERE
del_flag = '0'
ORDER BY
sort ASC
</select>
<select id="selectGovRoleList" resultType="com.epmet.dto.result.ResiGovRoleResultDTO">
@ -32,5 +37,42 @@
ORDER BY full_time_only DESC
</select>
<select id="defaultRoleList" resultType="com.epmet.dto.result.GovStaffRoleResultDTO">
SELECT
role_key AS "defRoleKey",
role_name AS "defRoleName",
description AS "defDescription"
FROM
gov_staff_role_template
WHERE
del_flag = '0'
ORDER BY
sort ASC
</select>
<update id="updateSortById">
UPDATE gov_staff_role_template
SET sort = #{sort},
updated_by = #{userId},
updated_time = NOW()
WHERE
id = #{roleId}
</update>
<update id="upNameOrDescription">
UPDATE gov_staff_role_template
<set>
<if test='null != roleName'>
role_name = #{roleName},
</if>
<if test='null != description'>
description = #{description},
</if>
updated_by = #{userId},
updated_time = NOW()
</set>
WHERE
id = #{roleId}
</update>
</mapper>
Loading…
Cancel
Save