diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java index 8302d08e49..1381870afa 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java @@ -14,18 +14,12 @@ public class BaseStatsDataResultDTO implements Serializable { private Integer topicTotal; private Integer topicIncr; - // private Integer topicToIssueTotal; private Integer issueTotal; private Integer issueIncr; - // private Integer issueToProjectTotal; private Integer projectTotal; private Integer projectIncr; private Integer closedProjectTotal; private Integer closedProjectIncr; -// private Integer patrolTotal; -// private Integer patrolTotalTime; -// private Integer orgId; -// private Integer orgName; diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/UserAndGroupTotalResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/UserAndGroupTotalResultDTO.java new file mode 100644 index 0000000000..7572ecd1ae --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/UserAndGroupTotalResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 对外接口--查询当前组织的用户和小组总数数 + * @Auth sun + */ +@Data +public class UserAndGroupTotalResultDTO implements Serializable { + private static final long serialVersionUID = 3564816296202777303L; + //话题总数 + private Integer userTotal = 0; + //小组总数 + private Integer groupTotal = 0; + private Integer sort = 1; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java index 4de304f917..6be616d569 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java @@ -36,6 +36,10 @@ public class StaffListFormDTO implements Serializable { * 工作人员姓名;可空 */ private String staffName; + /** + * 工作人员Id + */ + private String staffId; /** * 页码 * */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java index 8a0c8ae877..680d16023f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java @@ -7,10 +7,7 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.datastats.form.BaseDataFormDTO; -import com.epmet.dataaggre.dto.datastats.result.BaseStatsDataResultDTO; -import com.epmet.dataaggre.dto.datastats.result.SubTopicAndGroupResultDTO; -import com.epmet.dataaggre.dto.datastats.result.SubUserTotalResultDTO; -import com.epmet.dataaggre.dto.datastats.result.WorkFactResultDTO; +import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.service.datastats.DataStatsService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -93,11 +90,21 @@ public class PubController { return new Result>().ok(data); } + /** + * @Param formDTO + * @Description 对外接口--查询当前组织的用户和小组总数数 + * @author sun + */ + @PostMapping("getUserAndGroupTotal") + public Result getUserAndGroupTotal(@RequestBody BaseDataFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, BaseDataFormDTO.AgencyIdAndLevel.class); + return new Result().ok(dataStatsService.getUserAndGroupTotal(formDTO)); + } + /** * 导出数据,使用map接收 * * @param formDTO - * @param response * @throws IOException * @return */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index 46f7e64cb6..e9772bf321 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -276,9 +276,28 @@ public interface DataStatsDao { /** * 获取话题相关总数 + * * @param agencyList * @param dateId * @return */ List getSubSumAgencyTopic(@Param("agencyList") List agencyList, @Param("dateId") String dateId); + + /** + * desc:获取用户总数 + * + * @param agencyList + * @param dateId + * @return + */ + TotalAndIncrResultDTO getAgencySumUser(@Param("agencyList") List agencyList, @Param("dateId") String dateId); + + /** + * desc:获取小组总数 + * + * @param agencyList + * @param dateId + * @return + */ + TotalAndIncrResultDTO getAgencySumGroup(@Param("agencyList") List agencyList, @Param("dateId") String dateId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java index b3ca304972..3e96cbcc26 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java @@ -23,6 +23,8 @@ import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 政府工作人员表 * @@ -37,4 +39,9 @@ public interface CustomerStaffDao extends BaseDao { * @author sun */ CustomerStaffDTO selectByMobile(@Param("customerId") String customerId, @Param("mobile") String mobile); + /** + * @Description 按staffId查询基础信息 + * @author sun + */ + List selectByStaffIds(@Param("staffIds") List staffIds, @Param("realName") String realName); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 9db20ef41c..8d0cb5fa76 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -211,4 +211,14 @@ public interface DataStatsService { * @param formDTO */ List subTopicAndGroup(BaseDataFormDTO formDTO); + + /** + * desc: 对外接口--查询当前组织的用户和小组总数数 + * + * @param formDTO + * @return java.util.List + * @author LiuJanJun + * @date 2021/8/12 2:23 下午 + */ + UserAndGroupTotalResultDTO getUserAndGroupTotal(BaseDataFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 0fede9e608..d89badcfaa 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1799,4 +1799,27 @@ public class DataStatsServiceImpl implements DataStatsService { return resultList; } + @Override + public UserAndGroupTotalResultDTO getUserAndGroupTotal(BaseDataFormDTO formDTO) { + //入参有日期的则按具体时间执行,没有的则按当前时间前一天执行 + if (StringUtils.isBlank(formDTO.getDateId())) { + Date yesterday = DateUtils.addDateDays(new Date(), -1); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + formDTO.setDateId(format.format(yesterday)); + } + UserAndGroupTotalResultDTO result = new UserAndGroupTotalResultDTO(); + + //0.根据组织Id查询是否存在子客户,存在的按areaCode查询当前客户之外的客户组织列表 + List agencyList = indexService.getAgencyIdsByAgencyId(formDTO.getAgencyId()); + agencyList.add(formDTO.getAgencyId()); + + //3-2.查询组织下用户 + TotalAndIncrResultDTO userTotal = dataStatsDao.getAgencySumUser(agencyList, formDTO.getDateId()); + result.setUserTotal(userTotal == null? NumConstant.ZERO:userTotal.getTotal()); + //3-3.查询直属下级组织小组日统计数据 + TotalAndIncrResultDTO groupTotal = dataStatsDao.getAgencySumGroup(agencyList, formDTO.getDateId()); + result.setGroupTotal(groupTotal == null? NumConstant.ZERO:groupTotal.getTotal()); + return result; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 281f24cc6d..cf7aef270e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -25,11 +25,11 @@ import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService; import com.epmet.dataaggre.service.govorg.GovOrgService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.math.BigDecimal; import java.text.NumberFormat; import java.util.*; import java.util.stream.Collectors; @@ -274,10 +274,31 @@ public class EpmetUserServiceImpl implements EpmetUserService { formDTO.setPageNo(pageIndex); //起始查询日期 formDTO.setPatrolStartTime(DateUtils.getBeforeMonthDate(formDTO.getTime(), "yyyyMMdd")); + List staffList = new ArrayList<>(); + //2-1.按名字检索时先查询人员基础信息 + if (StringUtils.isEmpty(formDTO.getStaffName())) { + staffList = customerStaffDao.selectByStaffIds(null, formDTO.getStaffName()); + if (!CollectionUtils.isEmpty(staffList)) { + formDTO.setStaffId(staffList.get(0).getUserId()); + } + } + //2-2.查询业务数据 resultList = staffPatrolRecordDao.selectStaffPatrolList(formDTO); + //2-3.查询人员基本信息【之前sql关联人员表查性别、姓名效率低 所以分开查) + if (!CollectionUtils.isEmpty(staffList)) { + List staffIdList = resultList.stream().map(StaffListResultDTO::getStaffId).collect(Collectors.toList()); + staffList = customerStaffDao.selectByStaffIds(staffIdList, null); + } //3.封装数据并返回 - resultList.forEach(re -> list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName()))); + List finalStaffList = staffList; + resultList.forEach(re -> { + list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName())); + finalStaffList.stream().filter(l -> re.getStaffId().equals(l.getUserId())).forEach(s -> { + re.setGender(s.getGender().toString()); + re.setStaffName(s.getRealName()); + }); + }); //NumberFormat numberFormat = NumberFormat.getInstance(); //numberFormat.setMaximumFractionDigits(NumConstant.ZERO); resultList.forEach(re -> { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index eb3f9c7d33..ca06b808fe 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -742,5 +742,31 @@ agency_id = #{agencyId} + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml index 3b1b0c9db3..0e06223aa7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml @@ -15,4 +15,20 @@ LIMIT 1 + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml index 57fb814737..9f0fd1fe74 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml @@ -59,8 +59,8 @@ SELECT ssp.grid_id AS gridId, ssp.staff_id AS staffId, - cs.real_name AS staffName, - cs.gender AS gender, + IFNULL(MAX(ssp.latest_patrol_time), '') AS patrolStartTime, IFNULL(SUM(ssp.patrol_total), 0) AS patrolTotal, MAX(DATE_ID) dateId, @@ -68,12 +68,15 @@ IFNULL(SUM(ssp.total_time), 0) AS timeNum FROM stats_staff_patrol_record_daily ssp - LEFT JOIN customer_staff cs ON ssp.staff_id = cs.user_id + WHERE ssp.del_flag = '0' AND ssp.date_id >= #{patrolStartTime} - + + + AND ssp.staff_id = #{staffId} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AdvancedBranchRankFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AdvancedBranchRankFormDTO.java index 27f638f3d2..cd3cf536af 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AdvancedBranchRankFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AdvancedBranchRankFormDTO.java @@ -29,8 +29,9 @@ public class AdvancedBranchRankFormDTO implements Serializable { private String monthId; /** - * 组织类型 agency grid + * areaCode */ - private String orgType; + private String areaCode; + public interface AddUserInternalGroup {} } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml index 51729c6479..43d30e9193 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml @@ -260,9 +260,17 @@ WHERE dm.del_flag = '0' AND rd.del_flag = '0' + + + AND org.AREA_CODE LIKE concat(#{areaCode}, '%') + + + AND dm.all_parent_ids LIKE concat('%', #{agencyId}, '%') + + AND dm.org_type = 'grid' AND dm.month_id = #{monthId} - AND dm.all_parent_ids LIKE concat('%', #{agencyId}, '%') + ORDER BY dm.index_total DESC LIMIT #{topNum} diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml index 102b78296e..c336aa362d 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml @@ -15,7 +15,7 @@ AND all_parent_ids LIKE CONCAT('%',#{agencyId},'%') ORDER BY point_total DESC, - user_name + convert(user_name using gbk) ASC @@ -129,7 +129,7 @@ and scg.AREA_CODE like CONCAT(#{areaCode},'%') ORDER BY m.POINT_TOTAL DESC, - m.user_name + convert(m.user_name using gbk) ASC diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java index 673ff0a3fc..5bbe9e25b0 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java @@ -56,7 +56,7 @@ public class IssueManageController { * @Description 议题管理-部门人员选择 **/ @PostMapping("departmentstafflist") - @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_SHIFT_PROJECT) + // @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_SHIFT_PROJECT) public Result departmentStaffList(@LoginUser TokenDto tokenDTO, @RequestBody DepartmentStaffListFormDTO formDTO) { formDTO.setStaffId(tokenDTO.getUserId()); ValidatorUtils.validateEntity(formDTO);