Browse Source

更多-巡查列表接口逻辑调整

dev_shibei_match
sunyuchao 4 years ago
parent
commit
e51f508864
  1. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java
  2. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java
  3. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  4. 84
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  5. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  6. 34
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  7. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml
  8. 18
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml
  9. 16
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml

12
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<StaffRoleEntity> {
/**
* @Description 查询是网格员的人
* @Param forms
* @author sun
*/
List<GridStaffResultDTO> staffGridRole(@Param("forms") List<GridStaffResultDTO> forms, @Param("staffName") String staffName);
}

10
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<CustomerStaffGridEntity> {
/**
* @Description 查询网格下有网格员角色的人
* @author sun
*/
List<GridStaffResultDTO> selectGridStaffByGridIds(@Param("gridIds") List<String> gridIds);
}

8
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<GridStaffResultDTO> staffGridRole(List<GridStaffResultDTO> forms, String staffName);
}

84
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<StaffListResultDTO> staffList(StaffListFormDTO formDTO) {
List<StaffListResultDTO> resultList = new ArrayList<>();
//1.设置分页参数
int num = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(num);
//2.查询当前人员所属组织下网格列表数据,供后续使用
List<StaffListResultDTO> result = new ArrayList<>();
//1.查询当前人员所属组织下网格列表数据,供后续封装数据使用
List<CustomerGridDTO> 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<GridStaffResultDTO> 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<StaffListResultDTO> 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<StaffListResultDTO>() {
@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<GridStaffResultDTO> staffGridRole(List<GridStaffResultDTO> forms, String staffName) {
if (org.springframework.util.CollectionUtils.isEmpty(forms)){
return new ArrayList<>();
}
List<GridStaffResultDTO> result = staffRoleDao.staffGridRole(forms, staffName);
if (org.springframework.util.CollectionUtils.isEmpty(result)){
return new ArrayList<>();
}
return result;
}
}

11
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<CustomerGridDTO> gridListByStaffId(String staffId);
/**
* @Description 查询网格下有网格员角色的人
* @author sun
*/
List<GridStaffResultDTO> selectGridStaffByGridIds(List<String> gridIds, String staffName);
}

34
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<GridStaffResultDTO> selectGridStaffByGridIds(List<String> gridIds, String staffName) {
if (org.springframework.util.CollectionUtils.isEmpty(gridIds)){
return new ArrayList<>();
}
// 查询网格下所有的人
List<GridStaffResultDTO> gridStaff = customerStaffGridDao.selectGridStaffByGridIds(gridIds);
if (org.springframework.util.CollectionUtils.isEmpty(gridStaff)){
return new ArrayList<>();
}
// 拿着网格下所有人去筛选网格员
List<GridStaffResultDTO> result = epmetUserService.staffGridRole(gridStaff, staffName);
if (org.springframework.util.CollectionUtils.isEmpty(result)){
return new ArrayList<>();
}
return result;
}
}

2
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml

@ -39,6 +39,7 @@
</foreach>
GROUP BY
spr.grid, spr.staff_id
<!--
<if test='sortCode != "" and sortCode != null and sortCode == "patrolTotal" '>
ORDER BY COUNT(spr.staff_id) DESC
</if>
@ -47,6 +48,7 @@
</if>
LIMIT
#{pageNo}, #{pageSize}
-->
</select>
</mapper>

18
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml

@ -3,5 +3,23 @@
<mapper namespace="com.epmet.dataaggre.dao.epmetuser.StaffRoleDao">
<select id="staffGridRole" resultType="com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO">
<foreach collection="forms" item="s" separator=" UNION ALL ">
SELECT
#{s.gridId} AS gridId,
sr.staff_id AS staffId,
cs.real_name AS staffName,
cs.gender AS gender
FROM staff_role sr
LEFT JOIN gov_staff_role gsr ON gsr.id = sr.role_id AND gsr.del_flag = 0
LEFT JOIN customer_staff cs ON sr.staff_id = cs.user_id
WHERE sr.del_flag = 0
AND gsr.role_key = 'grid_member'
AND sr.staff_id = #{s.staffId}
<if test='null != staffName and "" != staffName'>
AND cs.real_name = #{staffName}
</if>
</foreach>
</select>
</mapper>

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

@ -2,4 +2,20 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dataaggre.dao.govorg.CustomerStaffGridDao">
<select id="selectGridStaffByGridIds" resultType="com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO">
SELECT
user_id AS staffId,
grid_id
FROM
customer_staff_grid
WHERE
del_flag = '0'
AND (
<foreach collection="gridIds" item="gridId" separator=" OR ">
grid_id = #{gridId}
</foreach>
)
</select>
</mapper>
Loading…
Cancel
Save