diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java index 02ace6bc28..ac0cf9a846 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java @@ -18,8 +18,12 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 工作人员-角色关系表 @@ -29,5 +33,11 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface StaffRoleDao extends BaseDao { - + + /** + * @Description 查询是网格员的人 + * @Param forms + * @author sun + */ + List staffGridRole(@Param("forms") List forms, @Param("staffName") String staffName); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java index b05163ddd5..233c68d67d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java @@ -18,8 +18,12 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.entity.govorg.CustomerStaffGridEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 网格人员关系表 @@ -29,4 +33,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface CustomerStaffGridDao extends BaseDao { + + /** + * @Description 查询网格下有网格员角色的人 + * @author sun + */ + List selectGridStaffByGridIds(@Param("gridIds") List gridIds); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 2a27686184..359fcbe7a0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -7,6 +7,7 @@ import com.epmet.dataaggre.dto.epmetuser.result.PatrolDateListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolRecordListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO; +import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import java.util.List; @@ -56,4 +57,11 @@ public interface EpmetUserService { * @return com.epmet.dataaggre.dto.epmetuser.result.PatrolDateListResultDTO */ PatrolDateListResultDTO patrolDateList(PatrolDateListFormDTO formDTO); + + /** + * @Description 查询网格员角色 + * @author sun + */ + List staffGridRole(List forms, String staffName); + } 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 70f57f2af3..6e6ef6f957 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 @@ -5,7 +5,9 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmetuser.StaffPatrolRecordDao; +import com.epmet.dataaggre.dao.epmetuser.StaffRoleDao; import com.epmet.dataaggre.dao.epmetuser.UserBaseInfoDao; +import com.epmet.dataaggre.dto.datastats.result.SubAgencyUserResultDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolRecordDTO; import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO; @@ -13,11 +15,13 @@ import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; +import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService; import com.epmet.dataaggre.service.govorg.GovOrgService; import lombok.extern.slf4j.Slf4j; +import oracle.sql.NUMBER; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +50,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private StaffPatrolDetailService staffPatrolDetailService; @Resource private StaffPatrolRecordService staffPatrolRecordService; + @Resource + private StaffRoleDao staffRoleDao; /** * @Description 根据UserIds查询 @@ -77,29 +83,68 @@ public class EpmetUserServiceImpl implements EpmetUserService { @Override public List staffList(StaffListFormDTO formDTO) { List resultList = new ArrayList<>(); - //1.设置分页参数 - int num = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); - formDTO.setPageNo(num); - - //2.查询当前人员所属组织下网格列表数据,供后续使用 + List result = new ArrayList<>(); + //1.查询当前人员所属组织下网格列表数据,供后续封装数据使用 List list = govOrgService.gridListByStaffId(formDTO.getUserId()); if (list.size() < NumConstant.ONE) { return resultList; } - //网格集合为空则查询当前人员所属组织下网格列表 + + //2.网格集合为空则查询当前人员所属组织下网格列表 if (CollectionUtils.isEmpty(formDTO.getGridIds())) { formDTO.setGridIds(list.stream().map(CustomerGridDTO::getId).collect(Collectors.toList())); } - //3.按条件查询巡查业务数据 + //3.按条件查询网格下工作人员基本信息 + List staffList = govOrgService.selectGridStaffByGridIds(formDTO.getGridIds(), formDTO.getStaffName()); + if (staffList.size() < NumConstant.ONE) { + return resultList; + } + for (GridStaffResultDTO st : staffList) { + StaffListResultDTO sf = new StaffListResultDTO(); + sf.setGridId(st.getGridId()); + sf.setStaffId(st.getStaffId()); + sf.setStaffName(st.getStaffName()); + sf.setGender(st.getGender()); + result.add(sf); + } + + //4.按条件查询巡查业务数据 formDTO.setPatrolStartTime(DateUtils.getBeforeMonthDate(formDTO.getTime())); - resultList = staffPatrolRecordDao.selectPatrolList(formDTO); - if (resultList.size() < NumConstant.ONE) { - return new ArrayList<>(); + List staffPatrolList = staffPatrolRecordDao.selectPatrolList(formDTO); + + //5.封装数据并做分页处理 + result.forEach(re -> { + staffPatrolList.forEach(st -> { + if (re.getGridId().equals(st.getGridId()) && re.getStaffId().equals(st.getStaffId())) { + re.setPatrolStartTime(st.getPatrolStartTime()); + re.setPatrolTotal(st.getPatrolTotal()); + re.setStatus(st.getStatus()); + } + }); + }); + int num = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + int size = num + formDTO.getPageSize(); + if (num > result.size()) { + return resultList; } + resultList = result.subList(num, (size > result.size() ? result.size() : size)); - //4.封装数据并返回 + //6.赋值网格名称 resultList.forEach(re -> list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName()))); + + //7.按条件排序并返回 + Collections.sort(resultList, new Comparator() { + @Override + public int compare(StaffListResultDTO o1, StaffListResultDTO o2) { + if ("latestPatrolledTime".equals(formDTO.getSortCode())) { + return o2.getPatrolStartTime().compareTo(o1.getPatrolStartTime()); + } else { + return o2.getPatrolTotal().compareTo(o1.getPatrolTotal()); + } + } + }); + return resultList; } @@ -177,5 +222,22 @@ public class EpmetUserServiceImpl implements EpmetUserService { return dto; } + /** + * @Description 查询网格员角色 + * @Param forms + * @author sun + */ + @Override + public List staffGridRole(List forms, String staffName) { + if (org.springframework.util.CollectionUtils.isEmpty(forms)){ + return new ArrayList<>(); + } + List result = staffRoleDao.staffGridRole(forms, staffName); + if (org.springframework.util.CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + return result; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index c79837ec60..8008242d5f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -2,10 +2,7 @@ package com.epmet.dataaggre.service.govorg; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; -import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; -import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; +import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import java.util.List; @@ -56,4 +53,10 @@ public interface GovOrgService { * @Description 查询工作人员所属组织下网格列表 **/ List gridListByStaffId(String staffId); + + /** + * @Description 查询网格下有网格员角色的人 + * @author sun + */ + List selectGridStaffByGridIds(List gridIds, String staffName); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index e3c9752a00..29ed9208cf 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -5,20 +5,20 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerGridDao; import com.epmet.dataaggre.dao.govorg.CustomerStaffAgencyDao; +import com.epmet.dataaggre.dao.govorg.CustomerStaffGridDao; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; -import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; -import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; +import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; import com.epmet.dataaggre.service.commonservice.AreaCodeService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; import lombok.extern.slf4j.Slf4j; @@ -50,6 +50,10 @@ public class GovOrgServiceImpl implements GovOrgService { private AreaCodeService areaCodeService; @Autowired private CustomerRelation customerRelation; + @Autowired + private CustomerStaffGridDao customerStaffGridDao; + @Autowired + private EpmetUserService epmetUserService; /** * @param staffId @@ -238,4 +242,26 @@ public class GovOrgServiceImpl implements GovOrgService { return resultList; } + /** + * @Description 查询网格下有网格员角色的人 + * @author sun + */ + @Override + public List selectGridStaffByGridIds(List gridIds, String staffName) { + if (org.springframework.util.CollectionUtils.isEmpty(gridIds)){ + return new ArrayList<>(); + } + // 查询网格下所有的人 + List gridStaff = customerStaffGridDao.selectGridStaffByGridIds(gridIds); + if (org.springframework.util.CollectionUtils.isEmpty(gridStaff)){ + return new ArrayList<>(); + } + // 拿着网格下所有人去筛选网格员 + List result = epmetUserService.staffGridRole(gridStaff, staffName); + if (org.springframework.util.CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + return result; + } + } 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 a0f8a495e0..22034f1d13 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 @@ -39,6 +39,7 @@ GROUP BY spr.grid, spr.staff_id + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml index 03bf90a6e1..7805f832f4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml @@ -3,5 +3,23 @@ + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml index 384a28b8e9..26ad7dd1c8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml @@ -2,4 +2,20 @@ + + + \ No newline at end of file