Browse Source

Merge branch 'dev_grid_patrol' into develop

dev
sunyuchao 4 years ago
parent
commit
46e19ca574
  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. 90
      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
  10. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java
  11. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java
  12. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java
  13. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java
  14. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

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);
}

90
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;
}
@ -137,8 +182,10 @@ public class EpmetUserServiceImpl implements EpmetUserService {
String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分";
dto.setTotalTimeDesc(totalTimeDesc);
List<StaffPatrolDetailDTO> detailList = details.get(record.getId());
List<PatrolRecordDetailDTO> recordDetails =
detailList.stream().sorted(Comparator.comparing(StaffPatrolDetailDTO::getSerialNum).reversed()).collect(Collectors.toList()).stream().map( detail -> {
detailList =
detailList.stream().sorted(Comparator.comparing(StaffPatrolDetailDTO::getSerialNum).reversed()).collect(Collectors.toList()).stream()
.filter(item -> null == record.getPatrolEndTime() || record.getPatrolEndTime().compareTo(item.getUploadTime()) > -1).collect(Collectors.toList());
List<PatrolRecordDetailDTO> recordDetails = detailList.stream().map( detail -> {
PatrolRecordDetailDTO detailDTO = new PatrolRecordDetailDTO();
detailDTO.setLatitude(detail.getLatitude());
detailDTO.setLongitude(detail.getLongitude());
@ -175,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>

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

@ -83,7 +83,10 @@ public class ScreenProjectDataDTO implements Serializable {
* 事件时间
*/
private Date projectCreateTime;
/**
* 上报人ID
*/
private String linkUserId;
/**
* 上报人
*/

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java

@ -79,6 +79,11 @@ public class ScreenProjectDataEntity extends BaseEpmetEntity {
*/
private String projectCreateTime;
/**
* 上报人ID
*/
private String linkUserId;
/**
* 上报人
*/

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

@ -87,6 +87,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic
//直接立项的话 项目内容是项目背景 经纬度添加
if (ProjectConstant.PROJECT_ORIGIN_AGENCY.equals(projectInfo.getOrigin())){
meta.setProjectContent(projectInfo.getBackGround());
meta.setLinkUserId(projectInfo.getCreatedBy());
meta.setLinkName(projectInfo.getCreatedBy());
if (StringUtils.isNotBlank(projectInfo.getLocateDimension())){
meta.setLatitude(new BigDecimal(projectInfo.getLocateDimension()));

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

@ -272,7 +272,10 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD
affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId, dateId);
}
List<List<ScreenProjectDataDTO>> partition = ListUtils.partition(meta, NumConstant.ONE_HUNDRED);
partition.forEach(part -> baseDao.insertBatch(part));
partition.forEach(part -> {
List<ScreenProjectDataEntity> list = ConvertUtils.sourceToTarget(part, ScreenProjectDataEntity.class);
insertBatch(list);
});
}

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

@ -6,6 +6,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
@ -34,6 +35,7 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@ -187,9 +189,11 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
throw new RenException("巡查记录不存在");
}
if (PatrolConstant.END.equals(record.getStatus())) {
throw new RenException("巡查已结束,请勿重复提交");
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), "巡查已结束,请勿重复提交");
}
if (record.getPatrolStartTime().compareTo(Objects.requireNonNull(DateUtils.parse(formDTO.getPatrolEndTime(), DateUtils.DATE_TIME_PATTERN))) > 0) {
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), "巡查结束时间不能小于巡查开始时间");
}
record.setActrualEndTime(new Date());
record.setUpdatedTime(null);
record.setPatrolEndTime(DateUtils.parse(formDTO.getPatrolEndTime(), DateUtils.DATE_TIME_PATTERN));

Loading…
Cancel
Save