Browse Source

Merge remote-tracking branch 'remotes/origin/dev_bug_select_staff' into 市北master

master
jianjun 3 years ago
parent
commit
47255dfe88
  1. 1
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java
  2. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
  3. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java
  4. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java
  5. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
  6. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  7. 167
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  8. 16
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java
  9. 36
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
  10. 35
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml
  11. 13
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml
  12. 53
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
  13. 2
      epmet-module/data-statistical/data-statistical-server/pom.xml
  14. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
  15. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml
  16. 2
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java
  17. 1
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml
  18. 28
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/logback-spring.xml
  19. 1
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java
  20. 2
      epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml
  21. 28
      epmet-module/epmet-message/epmet-message-server/src/main/resources/logback-spring.xml
  22. 1
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java
  23. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java
  24. 2
      epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml
  25. 1
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java
  26. 1
      epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml
  27. 1
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java
  28. 1
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java
  29. 1
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java
  30. 1
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java
  31. 1
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java
  32. 28
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml
  33. 1
      epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java
  34. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
  35. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  36. 28
      epmet-user/epmet-user-server/src/main/resources/logback-spring.xml

1
epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java

@ -27,6 +27,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
public class AdminApplication { public class AdminApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(AdminApplication.class, args); SpringApplication.run(AdminApplication.class, args);
} }

6
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java

@ -498,13 +498,15 @@ public class GovOrgController {
sum.setMemberCount(sum.getMemberCount() + list.stream().mapToInt(OrgProjectDetailExcel::getMemberCount).sum()); sum.setMemberCount(sum.getMemberCount() + list.stream().mapToInt(OrgProjectDetailExcel::getMemberCount).sum());
sum.setProjectCount(sum.getProjectCount() + list.stream().mapToInt(OrgProjectDetailExcel::getProjectCount).sum()); sum.setProjectCount(sum.getProjectCount() + list.stream().mapToInt(OrgProjectDetailExcel::getProjectCount).sum());
sum.setClosedCount(sum.getClosedCount() + list.stream().mapToInt(OrgProjectDetailExcel::getClosedCount).sum()); sum.setClosedCount(sum.getClosedCount() + list.stream().mapToInt(OrgProjectDetailExcel::getClosedCount).sum());
sum.setProjectAve(sum.getProjectAve() + list.stream().mapToInt(OrgProjectDetailExcel::getProjectAve).sum());
sum.setClosedAve(sum.getClosedAve() + list.stream().mapToInt(OrgProjectDetailExcel::getClosedAve).sum());
excelWriter.write(list, writeSheet); excelWriter.write(list, writeSheet);
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
} while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize()); } while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize());
sum.setIndex(i.getAndIncrement()); sum.setIndex(i.getAndIncrement());
sum.setOrgName("合计"); sum.setOrgName("合计");
if (NumConstant.ZERO != sum.getMemberCount()) {
sum.setProjectAve(sum.getProjectCount()/sum.getMemberCount());
sum.setClosedAve(sum.getClosedCount()/sum.getMemberCount());
}
List<OrgProjectDetailExcel> list = new ArrayList<>(); List<OrgProjectDetailExcel> list = new ArrayList<>();
list.add(sum); list.add(sum);
excelWriter.write(list, writeSheet); excelWriter.write(list, writeSheet);

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java

@ -22,6 +22,7 @@ import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO;
import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO;
import com.epmet.dataaggre.dto.govorg.OrgDTO; import com.epmet.dataaggre.dto.govorg.OrgDTO;
import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO;
import com.epmet.dataaggre.entity.govorg.CustomerStaffAgencyEntity; import com.epmet.dataaggre.entity.govorg.CustomerStaffAgencyEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -71,4 +72,6 @@ public interface CustomerStaffAgencyDao extends BaseDao<CustomerStaffAgencyEntit
*/ */
List<OrgDTO> selectSubAgency(@Param("agencyId") String agencyId, @Param("userId") String userId); List<OrgDTO> selectSubAgency(@Param("agencyId") String agencyId, @Param("userId") String userId);
List<StaffOrgRelationResultDTO> getStaffList(@Param("orgId") String orgId, @Param("orgType") String orgType);
} }

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java

@ -56,4 +56,6 @@ public interface CustomerStaffGridDao extends BaseDao<CustomerStaffGridEntity> {
* @Date 2021/8/20 14:37 * @Date 2021/8/20 14:37
*/ */
List<OrgDTO> selectGridList(@Param("agencyId") String agencyId, @Param("userId") String userId); List<OrgDTO> selectGridList(@Param("agencyId") String agencyId, @Param("userId") String userId);
List<GridStaffResultDTO> getGridStaffByAgency(@Param("agencyId") String agencyId);
} }

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java

@ -130,4 +130,6 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
List<OrgCountDTO> getGridClosedProjectCount(OrgStatisticsFormDTO formDTO); List<OrgCountDTO> getGridClosedProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getMemberProjectCount(OrgStatisticsFormDTO formDTO); List<OrgCountDTO> getMemberProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO); List<OrgCountDTO> getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getAgencyProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getAgencyClosedProjectCount(OrgStatisticsFormDTO formDTO);
} }

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java

@ -605,6 +605,9 @@ public class EpmetUserServiceImpl implements EpmetUserService {
queryWrapper.eq(CustomerStaffEntity::getUserId,staffId) queryWrapper.eq(CustomerStaffEntity::getUserId,staffId)
.eq(CustomerStaffEntity::getDelFlag,NumConstant.ZERO_STR); .eq(CustomerStaffEntity::getDelFlag,NumConstant.ZERO_STR);
CustomerStaffEntity staffEntity = customerStaffDao.selectOne(queryWrapper); CustomerStaffEntity staffEntity = customerStaffDao.selectOne(queryWrapper);
if (null == staffEntity) {
return null;
}
CustomerStaffResultDTO result = ConvertUtils.sourceToTarget(staffEntity, CustomerStaffResultDTO.class); CustomerStaffResultDTO result = ConvertUtils.sourceToTarget(staffEntity, CustomerStaffResultDTO.class);
//查询工作人员所属组织信息 //查询工作人员所属组织信息

167
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -3,6 +3,7 @@ package com.epmet.dataaggre.service.govorg.impl;
import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.dingtalk.api.request.OapiRobotSendRequest; import com.dingtalk.api.request.OapiRobotSendRequest;
@ -24,17 +25,17 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache;
import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.constant.OrgConstant;
import com.epmet.dataaggre.dao.govorg.*; import com.epmet.dataaggre.dao.govorg.*;
import com.epmet.dataaggre.dto.datastats.result.SubAgencyProjectResultDTO;
import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.CustomerStaffResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO;
@ -66,6 +67,7 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile;
@ -75,6 +77,7 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.text.Collator;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@ -1153,17 +1156,12 @@ public class GovOrgServiceImpl implements GovOrgService {
public PageData<OrgProjectDetailResultDTO> orgProjectDetailList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) { public PageData<OrgProjectDetailResultDTO> orgProjectDetailList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) {
List<OrgProjectDetailResultDTO> resultList = new ArrayList<>(); List<OrgProjectDetailResultDTO> resultList = new ArrayList<>();
if (StringUtils.isBlank(formDTO.getAgencyId())) { if (StringUtils.isBlank(formDTO.getAgencyId())) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); CustomerStaffInfoCacheResult staffInfo = getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (null == staffInfo) { if (null == staffInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败");
} }
formDTO.setAgencyId(staffInfo.getAgencyId()); formDTO.setAgencyId(staffInfo.getAgencyId());
} }
if (StringUtils.isEmpty(formDTO.getStartDate()) && StringUtils.isEmpty(formDTO.getEndDate())) {
//当前日期前一天
String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD);
formDTO.setEndDate(dateId);
}
CustomerAgencyEntity agencyEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); CustomerAgencyEntity agencyEntity = customerAgencyDao.selectById(formDTO.getAgencyId());
if (null == agencyEntity) { if (null == agencyEntity) {
return new PageData<>(Collections.emptyList(), NumConstant.ZERO); return new PageData<>(Collections.emptyList(), NumConstant.ZERO);
@ -1184,7 +1182,7 @@ public class GovOrgServiceImpl implements GovOrgService {
//统计网格关闭项目数 //统计网格关闭项目数
Map<String, Integer> closedMap = govProjectService.getGridClosedProjectMap(formDTO); Map<String, Integer> closedMap = govProjectService.getGridClosedProjectMap(formDTO);
//网格员统计 //网格员统计
Map<String, Integer> memberMap = dataStatsService.getMemberMap(formDTO.getAgencyId()); Map<String, Long> memberMap = getMemberMap(tokenDto.getCustomerId(), formDTO.getAgencyId());
resultList = gridList.stream().map(grid -> { resultList = gridList.stream().map(grid -> {
OrgProjectDetailResultDTO dto = new OrgProjectDetailResultDTO(); OrgProjectDetailResultDTO dto = new OrgProjectDetailResultDTO();
dto.setOrgId(grid.getId()); dto.setOrgId(grid.getId());
@ -1197,9 +1195,11 @@ public class GovOrgServiceImpl implements GovOrgService {
dto.setClosedCount(closedMap.get(grid.getId())); dto.setClosedCount(closedMap.get(grid.getId()));
} }
if (memberMap.containsKey(grid.getId())) { if (memberMap.containsKey(grid.getId())) {
dto.setMemberCount(memberMap.get(grid.getId())); dto.setMemberCount(Math.toIntExact(memberMap.get(grid.getId())));
dto.setProjectAve(dto.getProjectCount()/memberMap.get(grid.getId())); if (NumConstant.ZERO != dto.getMemberCount()) {
dto.setClosedAve(dto.getClosedCount()/memberMap.get(grid.getId())); dto.setProjectAve(dto.getProjectCount() / dto.getMemberCount());
dto.setClosedAve(dto.getClosedCount() / dto.getMemberCount());
}
} }
return dto; return dto;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
@ -1221,7 +1221,10 @@ public class GovOrgServiceImpl implements GovOrgService {
//拼装数据 //拼装数据
if (CollectionUtils.isNotEmpty(agencyList)) { if (CollectionUtils.isNotEmpty(agencyList)) {
//项目相关统计 //项目相关统计
Map<String, SubAgencyProjectResultDTO> projectMap = dataStatsService.getAgencyProjectTotal(formDTO); //统计项目数
Map<String, Integer> projectMap = govProjectService.getAgencyProjectMap(formDTO);
//统计关闭项目数
Map<String, Integer> closedMap = govProjectService.getAgencyClosedProjectMap(formDTO);
//网格员统计 //网格员统计
Map<String, Integer> memberMap = epmetUserService.getMemberCount(tokenDto.getCustomerId()); Map<String, Integer> memberMap = epmetUserService.getMemberCount(tokenDto.getCustomerId());
@ -1230,12 +1233,12 @@ public class GovOrgServiceImpl implements GovOrgService {
dto.setOrgId(agency.getId()); dto.setOrgId(agency.getId());
dto.setOrgType(OrgConstant.AGENCY); dto.setOrgType(OrgConstant.AGENCY);
dto.setOrgName(agency.getOrganizationName()); dto.setOrgName(agency.getOrganizationName());
if (projectMap.containsKey(agency.getId())) {
dto.setProjectCount(projectMap.get(agency.getId()).getProjectTotal());
dto.setClosedCount(projectMap.get(agency.getId()).getClosedProjectTotal());
}
//获取当前组织的所有下级组织ID(包含本级) //获取当前组织的所有下级组织ID(包含本级)
List<String> agencyIds = customerAgencyDao.getSubAgencyList(agency.getId()); List<String> agencyIds = customerAgencyDao.getSubAgencyList(agency.getId());
int projectCount = agencyIds.stream().filter(projectMap::containsKey).mapToInt(projectMap::get).sum();
int closedCount = agencyIds.stream().filter(closedMap::containsKey).mapToInt(closedMap::get).sum();
dto.setProjectCount(projectCount);
dto.setClosedCount(closedCount);
//将下级组织网格员数加起来 //将下级组织网格员数加起来
int memberCount = agencyIds.stream().filter(memberMap::containsKey).mapToInt(memberMap::get).sum(); int memberCount = agencyIds.stream().filter(memberMap::containsKey).mapToInt(memberMap::get).sum();
dto.setMemberCount(memberCount); dto.setMemberCount(memberCount);
@ -1268,30 +1271,25 @@ public class GovOrgServiceImpl implements GovOrgService {
@Override @Override
public PageData<MemberProjectInfoResultDTO> memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) { public PageData<MemberProjectInfoResultDTO> memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setCustomerId(tokenDto.getCustomerId());
PageData<MemberProjectInfoResultDTO> result;
if (StringUtils.isBlank(formDTO.getOrgId())) { if (StringUtils.isBlank(formDTO.getOrgId())) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); CustomerStaffInfoCacheResult staffInfo = getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (null == staffInfo) { if (null == staffInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败");
} }
formDTO.setOrgId(staffInfo.getAgencyId()); formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType(OrgConstant.AGENCY); formDTO.setOrgType(OrgConstant.AGENCY);
} }
if (StringUtils.isEmpty(formDTO.getStartDate()) && StringUtils.isEmpty(formDTO.getEndDate())) { PageData<MemberProjectInfoResultDTO> result = getGridMemberList(formDTO);
//当前日期前一天 //if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) {
String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD); // //获取当前组织的所有下级组织ID(包含本级)
formDTO.setEndDate(dateId); // //List<String> agencyIds = customerAgencyDao.getSubAgencyList(formDTO.getOrgId());
} // //formDTO.setAgencyList(agencyIds);
if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { // //获取组织下的网格员
//获取当前组织的所有下级组织ID(包含本级) // result = epmetUserService.getMemberList(formDTO);
List<String> agencyIds = customerAgencyDao.getSubAgencyList(formDTO.getOrgId()); //} else {
formDTO.setAgencyList(agencyIds); // //获取网格下的网格员
//获取组织下的网格员 // result = dataStatsService.getMemberList(formDTO);
result = epmetUserService.getMemberList(formDTO); //}
} else {
//获取网格下的网格员
result = dataStatsService.getMemberList(formDTO);
}
if (CollectionUtils.isNotEmpty(result.getList())) { if (CollectionUtils.isNotEmpty(result.getList())) {
//统计项目数 //统计项目数
Map<String, Integer> projectMap = govProjectService.getMemberProjectMap(formDTO); Map<String, Integer> projectMap = govProjectService.getMemberProjectMap(formDTO);
@ -1319,4 +1317,105 @@ public class GovOrgServiceImpl implements GovOrgService {
} }
return result; return result;
} }
private PageData<MemberProjectInfoResultDTO> getGridMemberList(OrgStatisticsFormDTO formDTO) {
List<MemberProjectInfoResultDTO> list = new ArrayList<>();
List<StaffOrgRelationResultDTO> staffList = customerStaffAgencyDao.getStaffList(formDTO.getOrgId(), formDTO.getOrgType());
if (OrgConstant.AGENCY.equals(formDTO.getOrgType())) {
for (StaffOrgRelationResultDTO staff : staffList) {
CustomerStaffInfoCacheResult staffInfo = getStaffInfo(formDTO.getCustomerId(), staff.getStaffId());
if (null != staffInfo) {
if(staffInfo.getRoleMap().containsKey("grid_member")) {
MemberProjectInfoResultDTO dto = new MemberProjectInfoResultDTO();
dto.setStaffId(staff.getStaffId());
dto.setStaffName(staffInfo.getRealName());
dto.setOrgId(staff.getOrgId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staff.getOrgId());
if (null != agencyInfo) {
dto.setOrgName(agencyInfo.getOrganizationName());
}
list.add(dto);
}
}
}
} else {
for (StaffOrgRelationResultDTO staff : staffList) {
CustomerStaffInfoCacheResult staffInfo = getStaffInfo(formDTO.getCustomerId(), staff.getStaffId());
if (null != staffInfo) {
if(staffInfo.getRoleMap().containsKey("grid_member")) {
MemberProjectInfoResultDTO dto = new MemberProjectInfoResultDTO();
dto.setStaffId(staff.getStaffId());
dto.setStaffName(staffInfo.getRealName());
dto.setOrgId(staff.getOrgId());
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(staff.getOrgId());
if (null != gridInfo) {
dto.setOrgName(gridInfo.getGridName());
}
list.add(dto);
}
}
}
}
int num = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
PageInfo<MemberProjectInfoResultDTO> pageInfo = new PageInfo<>(list);
list = list.stream().sorted((o1, o2) ->
Collator.getInstance(Locale.SIMPLIFIED_CHINESE)
.compare(o1.getStaffName(),o2.getStaffName())).collect(Collectors.toList());
list = list.stream().skip(num).limit(formDTO.getPageSize()).collect(Collectors.toList());
return new PageData<>(list, pageInfo.getTotal());
}
private Map<String, Long> getMemberMap(String customerId, String agencyId) {
List<GridStaffResultDTO> list = customerStaffGridDao.getGridStaffByAgency(agencyId);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
list = list.stream().filter(item -> {
CustomerStaffInfoCacheResult staffInfo = getStaffInfo(customerId, item.getStaffId());
if (null != staffInfo) {
if (staffInfo.getRoleMap().containsKey("grid_member")) {
return true;
}
}
return false;
}).collect(Collectors.toList());
return list.stream().collect(Collectors.groupingBy(GridStaffResultDTO::getGridId, Collectors.counting()));
}
private CustomerStaffInfoCacheResult getStaffInfo(String customerId, String staffId) {
if (StringUtils.isBlank(customerId) || StringUtils.isBlank(staffId)){
log.warn("getStaffInfo param is blank,customerId:{},staffId:{}",customerId,staffId);
return null;
}
String key = RedisKeys.getCustomerStaffInfoKey(customerId, staffId);
Map<String, Object> roleMap = redisUtils.hGetAll(key);
if (!org.springframework.util.CollectionUtils.isEmpty(roleMap)) {
return ConvertUtils.mapToEntity(roleMap, CustomerStaffInfoCacheResult.class);
}
CustomerStaffInfoCache resultData = reloadStaffCache(staffId, key);
if (resultData == null) {
return null;
}
return ConvertUtils.sourceToTarget(resultData, CustomerStaffInfoCacheResult.class);
}
@Nullable
private CustomerStaffInfoCache reloadStaffCache(String staffId, String key) {
CustomerStaffResultDTO staffResult = epmetUserService.getStaffInfo(staffId);
if (staffResult == null) {
log.warn("getStaffInfo staff is null,staffId:{}", staffId);
return null;
}
CustomerStaffInfoCache resultData =ConvertUtils.sourceToTarget(staffResult, CustomerStaffInfoCache.class);
Map<String, Object> map = BeanUtil.beanToMap(resultData, false, true);
redisUtils.hMSet(key, map);
return resultData;
}
} }

16
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java

@ -154,4 +154,20 @@ public interface GovProjectService {
* @Date 2022/7/28 9:29 * @Date 2022/7/28 9:29
*/ */
Map<String, Integer> getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO); Map<String, Integer> getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO);
/**
* 组织上报项目数
* @Param formDTO
* @Return {@link Map< String, Integer>}
* @Author zhaoqifeng
* @Date 2022/7/28 9:29
*/
Map<String, Integer> getAgencyProjectMap(OrgStatisticsFormDTO formDTO);
/**
* 组织关闭项目数
* @Param formDTO
* @Return {@link Map< String, Integer>}
* @Author zhaoqifeng
* @Date 2022/7/28 9:29
*/
Map<String, Integer> getAgencyClosedProjectMap(OrgStatisticsFormDTO formDTO);
} }

36
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java

@ -854,6 +854,42 @@ public class GovProjectServiceImpl implements GovProjectService {
return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1));
} }
/**
* 组织上报项目数
*
* @param formDTO
* @Param formDTO
* @Return {@link Map< String, Integer>}
* @Author zhaoqifeng
* @Date 2022/7/28 9:29
*/
@Override
public Map<String, Integer> getAgencyProjectMap(OrgStatisticsFormDTO formDTO) {
List<OrgCountDTO> list = projectDao.getAgencyProjectCount(formDTO);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1));
}
/**
* 组织关闭项目数
*
* @param formDTO
* @Param formDTO
* @Return {@link Map< String, Integer>}
* @Author zhaoqifeng
* @Date 2022/7/28 9:29
*/
@Override
public Map<String, Integer> getAgencyClosedProjectMap(OrgStatisticsFormDTO formDTO) {
List<OrgCountDTO> list = projectDao.getAgencyClosedProjectCount(formDTO);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1));
}
/** /**
* 构造事件查询 * 构造事件查询
* @param customerId * @param customerId

35
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml

@ -124,4 +124,39 @@
ca.ID ca.ID
ORDER BY ca.CREATED_TIME ASC ORDER BY ca.CREATED_TIME ASC
</select> </select>
<select id="getStaffList" resultType="com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO">
<choose>
<when test="orgType != null and orgType == 'dept' ">
SELECT
DEPARTMENT_ID AS "orgId",
user_id AS "staffId"
FROM
customer_staff_department
WHERE
del_flag = '0'
AND department_id = #{orgId}
</when>
<when test="orgType != null and orgType == 'grid' ">
SELECT
GRID_ID AS "orgId",
user_id AS "staffId"
FROM
customer_staff_grid
WHERE
del_flag = '0'
AND grid_id = #{orgId}
</when>
<otherwise>
SELECT
csa.AGENCY_ID AS "orgId",
csa.user_id AS "staffId"
FROM
customer_staff_agency csa
INNER JOIN customer_agency ca ON csa.AGENCY_ID = ca.ID AND ca.del_flag = '0'
WHERE
csa.del_flag = '0'
AND (ca.ID = #{orgId} OR ca.PIDS LIKE CONCAT('%', #{orgId}, '%'))
</otherwise>
</choose>
</select>
</mapper> </mapper>

13
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml

@ -55,4 +55,17 @@
cg.ID cg.ID
ORDER BY cg.CREATED_TIME ASC ORDER BY cg.CREATED_TIME ASC
</select> </select>
<select id="getGridStaffByAgency" resultType="com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO">
SELECT
GRID_ID,
USER_ID AS staffId
FROM
customer_staff_grid a
INNER JOIN customer_grid b ON a.GRID_ID = b.ID
AND b.DEL_FLAG = '0'
WHERE
a.DEL_FLAG = '0'
AND b.PID = #{agencyId}
</select>
</mapper> </mapper>

53
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml

@ -436,10 +436,10 @@
DEL_FLAG = '0' DEL_FLAG = '0'
AND AGENCY_ID = #{agencyId} AND AGENCY_ID = #{agencyId}
<if test="null != startDate and '' != startDate"> <if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ >= ]]> #{startDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if> </if>
<if test="null != endDate and '' != endDate"> <if test="null != endDate and '' != endDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ <= ]]> #{endDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ <= ]]> #{endDate}
</if> </if>
GROUP BY GROUP BY
GRID_ID GRID_ID
@ -457,10 +457,10 @@
AND GRID_ID IS NOT NULL AND GRID_ID IS NOT NULL
AND GRID_ID != '' AND GRID_ID != ''
<if test="null != startDate and '' != startDate"> <if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ >= ]]> #{startDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if> </if>
<if test="null != endDate and '' != endDate"> <if test="null != endDate and '' != endDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ <= ]]> #{endDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ <= ]]> #{endDate}
</if> </if>
GROUP BY GROUP BY
GRID_ID GRID_ID
@ -478,10 +478,10 @@
AND GRID_ID = #{orgId} AND GRID_ID = #{orgId}
</if> </if>
<if test="null != startDate and '' != startDate"> <if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ >= ]]> #{startDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if> </if>
<if test="null != endDate and '' != endDate"> <if test="null != endDate and '' != endDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ <= ]]> #{endDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ <= ]]> #{endDate}
</if> </if>
GROUP BY GROUP BY
CREATED_BY CREATED_BY
@ -500,13 +500,50 @@
AND GRID_ID = #{orgId} AND GRID_ID = #{orgId}
</if> </if>
<if test="null != startDate and '' != startDate"> <if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ >= ]]> #{startDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if> </if>
<if test="null != endDate and '' != endDate"> <if test="null != endDate and '' != endDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d") <![CDATA[ <= ]]> #{endDate} AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ <= ]]> #{endDate}
</if> </if>
GROUP BY GROUP BY
STAFF_ID STAFF_ID
</select> </select>
<select id="getAgencyProjectCount" resultType="com.epmet.dataaggre.dto.govorg.result.OrgCountDTO">
SELECT
AGENCY_ID AS "orgId",
COUNT( ID ) AS "count"
FROM
project
WHERE
DEL_FLAG = '0'
AND (AGENCY_ID = #{agencyId} OR ORG_ID_PATH LIKE CONCAT('%', #{agencyId}, '%'))
<if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if>
<if test="null != endDate and '' != endDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ <= ]]> #{endDate}
</if>
GROUP BY
AGENCY_ID
</select>
<select id="getAgencyClosedProjectCount" resultType="com.epmet.dataaggre.dto.govorg.result.OrgCountDTO">
SELECT
AGENCY_ID AS "orgId",
COUNT( ID ) AS "count"
FROM
project_process
WHERE
DEL_FLAG = '0'
AND (AGENCY_ID = #{agencyId} OR ORG_ID_PATH LIKE CONCAT('%', #{agencyId}, '%'))
AND OPERATION = 'close'
<if test="null != startDate and '' != startDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ >= ]]> #{startDate}
</if>
<if test="null != endDate and '' != endDate">
AND DATE_FORMAT(CREATED_TIME,"%Y%m%d%H%i%s") <![CDATA[ <= ]]> #{endDate}
</if>
GROUP BY
AGENCY_ID
</select>
</mapper> </mapper>

2
epmet-module/data-statistical/data-statistical-server/pom.xml

@ -444,7 +444,7 @@
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret> <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>local</rocketmq.enable> <rocketmq.enable>false</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java

@ -16,6 +16,8 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class DataStatsApplication { public class DataStatsApplication {
public static void main(String[] args) { public static void main(String[] args) {
// 让rocketmq使用slf4j管理日志
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(DataStatsApplication.class ,args); SpringApplication.run(DataStatsApplication.class ,args);
} }
} }

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml

@ -226,3 +226,4 @@ shutdown:
rocketmq: rocketmq:
enable: @rocketmq.enable@ enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@

2
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java

@ -29,6 +29,8 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class EpmetHeartApplication { public class EpmetHeartApplication {
public static void main(String[] args) { public static void main(String[] args) {
// 让rocketmq使用slf4j管理日志
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(EpmetHeartApplication.class, args); SpringApplication.run(EpmetHeartApplication.class, args);
} }

1
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml

@ -151,6 +151,7 @@ rocketmq:
# 是否开启mq # 是否开启mq
enable: @rocketmq.enable@ enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@
# 停机选项 # 停机选项
shutdown: shutdown:
graceful: graceful:

28
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/logback-spring.xml

@ -138,11 +138,35 @@
</filter> </filter>
</appender> </appender>
<!-- rocketmq client 的日志appender -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/rocketmqclient.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!-- 开发、测试环境 --> <!-- 开发、测试环境 -->
<springProfile name="local,dev,test"> <springProfile name="local,dev,test">
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="DEBUG"/> <logger name="com.epmet.dao" level="DEBUG"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/> <appender-ref ref="INFO_FILE"/>
@ -156,6 +180,10 @@
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/> <logger name="com.epmet.dao" level="INFO"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>

1
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java

@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class MessageApplication { public class MessageApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(MessageApplication.class, args); SpringApplication.run(MessageApplication.class, args);
} }

2
epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml

@ -152,6 +152,8 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq: rocketmq:
client:
logUseSlf4j: true
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@
producer: producer:
group: @rocketmq.producer.group@ group: @rocketmq.producer.group@

28
epmet-module/epmet-message/epmet-message-server/src/main/resources/logback-spring.xml

@ -139,12 +139,36 @@
</filter> </filter>
</appender> </appender>
<!-- rocketmq client 的日志appender -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/rocketmqclient.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!-- 开发、测试环境 --> <!-- 开发、测试环境 -->
<springProfile name="dev,test,local"> <springProfile name="dev,test,local">
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/> <logger name="com.epmet.dao" level="INFO"/>
<logger name="com.epmet.dao" level="DEBUG"/> <logger name="com.epmet.dao" level="DEBUG"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/> <appender-ref ref="INFO_FILE"/>
@ -158,6 +182,10 @@
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/> <logger name="com.epmet.dao" level="INFO"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>

1
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java

@ -20,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@EnableAsync @EnableAsync
public class EpmetPointApplication { public class EpmetPointApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(EpmetPointApplication.class, args); SpringApplication.run(EpmetPointApplication.class, args);
} }

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java

@ -149,7 +149,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
} }
JSONObject jsonObject = JSONObject.parseObject(submitResult.getData()); JSONObject jsonObject = JSONObject.parseObject(submitResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE)); result.setErrorCode(jsonObject.getInteger(ERR_CODE));
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE))); result.setErrorMsg(jsonObject.getString(ERR_MSG));
result.setData(jsonObject.getString("auditid")); result.setData(jsonObject.getString("auditid"));
return result; return result;
} }

2
epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml

@ -157,6 +157,8 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq: rocketmq:
client:
logUseSlf4j: true
# epmet-cloud集群内部用的rocketmq # epmet-cloud集群内部用的rocketmq
# epmet-cloud-inner: # epmet-cloud-inner:
# enable: @rocketmq.epmet-cloud-inner.enable@ # enable: @rocketmq.epmet-cloud-inner.enable@

1
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java

@ -17,6 +17,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@ServletComponentScan(basePackages = "com.epmet") @ServletComponentScan(basePackages = "com.epmet")
public class GovIssueApplication { public class GovIssueApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(GovIssueApplication.class, args); SpringApplication.run(GovIssueApplication.class, args);
} }
} }

1
epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml

@ -143,6 +143,7 @@ rocketmq:
enable: @rocketmq.enable@ enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@
thread: thread:
# 线程池配置 # 线程池配置
threadPool: threadPool:

1
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java

@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class GovOrgApplication { public class GovOrgApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(GovOrgApplication.class, args); SpringApplication.run(GovOrgApplication.class, args);
} }

1
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java

@ -22,6 +22,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
//@ComponentScan(value = { "com.epmet" }) //@ComponentScan(value = { "com.epmet" })
public class OpenDataApplication { public class OpenDataApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(OpenDataApplication.class, args); SpringApplication.run(OpenDataApplication.class, args);
} }
} }

1
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java

@ -27,6 +27,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
public class OperCustomizeApplication { public class OperCustomizeApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(OperCustomizeApplication.class, args); SpringApplication.run(OperCustomizeApplication.class, args);
} }

1
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java

@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class ResiGroupApplication { public class ResiGroupApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(ResiGroupApplication.class, args); SpringApplication.run(ResiGroupApplication.class, args);
} }
} }

1
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java

@ -29,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class ResiPartyMemberApplication { public class ResiPartyMemberApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(ResiPartyMemberApplication.class, args); SpringApplication.run(ResiPartyMemberApplication.class, args);
} }

28
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/logback-spring.xml

@ -139,12 +139,36 @@
</filter> </filter>
</appender> </appender>
<!-- rocketmq client 的日志appender -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/rocketmqclient.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!-- 开发、测试环境 --> <!-- 开发、测试环境 -->
<springProfile name="dev,test"> <springProfile name="dev,test">
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.modules.partymember.dao" level="DEBUG"/> <logger name="com.epmet.modules.partymember.dao" level="DEBUG"/>
<logger name="com.epmet.modules.warmhearted.dao" level="DEBUG"/> <logger name="com.epmet.modules.warmhearted.dao" level="DEBUG"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/> <appender-ref ref="INFO_FILE"/>
@ -159,6 +183,10 @@
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.modules.partymember.dao" level="INFO"/> <logger name="com.epmet.modules.partymember.dao" level="INFO"/>
<logger name="com.epmet.modules.warmhearted.dao" level="INFO"/> <logger name="com.epmet.modules.warmhearted.dao" level="INFO"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>

1
epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java

@ -30,6 +30,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class UserApplication { public class UserApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j", "true");
SpringApplication.run(UserApplication.class, args); SpringApplication.run(UserApplication.class, args);
} }

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

@ -45,7 +45,6 @@ import com.epmet.dao.StaffRoleDao;
import com.epmet.dto.*; import com.epmet.dto.*;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.dto.result.NewUserRoleResultDTO;
import com.epmet.entity.CustomerStaffEntity; import com.epmet.entity.CustomerStaffEntity;
import com.epmet.entity.GovStaffRoleEntity; import com.epmet.entity.GovStaffRoleEntity;
import com.epmet.entity.StaffRoleEntity; import com.epmet.entity.StaffRoleEntity;
@ -516,7 +515,7 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
@Override @Override
public CustomerStaffListResultDTO getCustomerStaffList(List<String> staffIdList) { public CustomerStaffListResultDTO getCustomerStaffList(List<String> staffIdList) {
//1:批量查询人员基本信息 //1:批量查询人员基本信息
List<StaffListResultDTO> staffList = baseDao.selectStaffByIds(staffIdList, null); List<StaffListResultDTO> staffList = baseDao.selectStaffByIds(staffIdList, Constant.ENABLE);
//2:批量查询人员拥有的所有角色信息 //2:批量查询人员拥有的所有角色信息
List<CustomerStaffRoleResultDTO> roleList = staffRoleDao.selectStaffRoleList(staffIdList); List<CustomerStaffRoleResultDTO> roleList = staffRoleDao.selectStaffRoleList(staffIdList);
CustomerStaffListResultDTO list = new CustomerStaffListResultDTO(); CustomerStaffListResultDTO list = new CustomerStaffListResultDTO();
@ -846,11 +845,13 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
//2.查询工作人员中拥有网格长网格员角色的人员列表 //2.查询工作人员中拥有网格长网格员角色的人员列表
List<GridMobileListResultDTO.Role> staffRoleList = staffRoleDao.staffRoleList(gridStaffs.getData()); List<GridMobileListResultDTO.Role> staffRoleList = staffRoleDao.staffRoleList(gridStaffs.getData());
if(CollectionUtils.isEmpty(staffRoleList)){
return resultList;
}
//3.查询工作人员基础信息 //3.查询工作人员基础信息
List<String> staffIdList = staffRoleList.stream().map(GridMobileListResultDTO.Role::getStaffId).collect(Collectors.toList()); List<String> staffIdList = staffRoleList.stream().map(GridMobileListResultDTO.Role::getStaffId).collect(Collectors.toList());
staffIdList = staffIdList.stream().distinct().collect(Collectors.toList()); staffIdList = staffIdList.stream().distinct().collect(Collectors.toList());
List<StaffListResultDTO> list = baseDao.selectStaffByIds(staffIdList, Constant.ENABLE); List<StaffListResultDTO> list = CollectionUtils.isEmpty(staffIdList) ? new ArrayList<>() : baseDao.selectStaffByIds(staffIdList, Constant.ENABLE);
//4.封装数据并返回 //4.封装数据并返回
resultList = ConvertUtils.sourceToTarget(list, GridMobileListResultDTO.class); resultList = ConvertUtils.sourceToTarget(list, GridMobileListResultDTO.class);

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

@ -548,6 +548,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
if ((transferData = this.getResiImportTrasferData(existingResiMap, columnAndValues)) != null) { if ((transferData = this.getResiImportTrasferData(existingResiMap, columnAndValues)) != null) {
newlyOrChangedResi.get().getTransferedResis().put(existingResiMap.get("ID"), transferData); newlyOrChangedResi.get().getTransferedResis().put(existingResiMap.get("ID"), transferData);
} }
// 因为主表会产生变更记录的,只有组织变更;其他能产生变更记录的,都在子表里面,所以此处只判断组织变更,其他类别的变更交给子表
// 老年人产生变更记录,只会在新增居民的时候产生,修改居民信息不会产生,因为身份证不可变
} else { } else {
// 新增居民 // 新增居民
String resiId = IdWorker.getIdStr(); String resiId = IdWorker.getIdStr();
@ -566,6 +569,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
columnAndValues.get("HOME_ID"), columnAndValues.get("HOME_ID"),
new HashMap<>()); new HashMap<>());
// 因为老年人会通过年龄计算,子sheet中不一定有这个人的信息,所以此处需要加入到变更记录中去
if ("1".equals(columnAndValues.get("IS_OLD_PEOPLE"))) {
categoryData.getCategories().put("IS_OLD_PEOPLE", "1");
}
redisUtils.hMSet(RedisKeys.icResiImportResiCategoryKey(newlyOrChangedResi.get().getImportTag(), "add", resiId), BeanUtil.beanToMap(categoryData)); redisUtils.hMSet(RedisKeys.icResiImportResiCategoryKey(newlyOrChangedResi.get().getImportTag(), "add", resiId), BeanUtil.beanToMap(categoryData));
categoryData = null; categoryData = null;
} }

28
epmet-user/epmet-user-server/src/main/resources/logback-spring.xml

@ -139,11 +139,35 @@
</filter> </filter>
</appender> </appender>
<!-- rocketmq client 的日志appender -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/rocketmqclient.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%contextName] [%X{Transaction-Serial}] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/rocketmqclient-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!-- 开发、测试环境 --> <!-- 开发、测试环境 -->
<springProfile name="local,dev,test"> <springProfile name="local,dev,test">
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="DEBUG"/> <logger name="com.epmet.dao" level="DEBUG"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/> <appender-ref ref="INFO_FILE"/>
@ -157,6 +181,10 @@
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/> <logger name="com.epmet.dao" level="INFO"/>
<!-- 只打印rocketmq client的日志 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>

Loading…
Cancel
Save