Browse Source

Merge remote-tracking branch 'origin/develop' into develop

dev_shibei_match
jianjun 4 years ago
parent
commit
b6104712e8
  1. 43
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/GridMemberPatrolListFormDTO.java
  2. 31
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/GridMemberPatrolListResultDTO.java
  3. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java
  4. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
  5. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java
  6. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  7. 13
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  8. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  9. 44
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  10. 30
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
  11. 20
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml
  12. 4
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/user/result/GridManagerListGeneralResultDTO.java
  13. 10
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/StaffPatrolDetailController.java
  14. 6
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/StaffPatrolDetailService.java
  15. 9
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/StaffPatrolDetailServiceImpl.java

43
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/GridMemberPatrolListFormDTO.java

@ -0,0 +1,43 @@
package com.epmet.dataaggre.dto.epmetuser.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @Description 对外接口--网格员排名-巡查记录-接口入参
* @Auth sun
*/
@Data
public class GridMemberPatrolListFormDTO implements Serializable {
private static final long serialVersionUID = -3381286960911634231L;
/**
* 组织id
*/
@NotBlank(message = "组织Id不能为空", groups = GridMemberPatrolListFormDTO.Member.class)
private String agencyId;
/**
* 维度Id(:202108;:2021)
*/
@NotBlank(message = "维度Id不能为空", groups = GridMemberPatrolListFormDTO.Member.class)
private String dimId;
/**
* 维度类型(:month:year)
*/
@NotBlank(message = "维度类型不能为空", groups = GridMemberPatrolListFormDTO.Member.class)
private String dimType;
/**
* 排序字段(上报事件:project巡查时长:patrolTime处理件数:dealEvent)
*/
private String sort = "project";
//按条件查询数据的最大日维度Id
private String dateId;
public interface Member extends CustomerClientShowGroup {}
}

31
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/GridMemberPatrolListResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dataaggre.dto.epmetuser.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 对外接口--网格员排名-巡查记录-接口返参
* @Auth sun
*/
@Data
public class GridMemberPatrolListResultDTO implements Serializable {
private static final long serialVersionUID = 7129564173128153335L;
//工作人员用户id
private String staffId = "";
//真名
private String staffName = "";
//上报事件(项目)数
private Integer reportProjectCount = 0;
//巡查总时长【单位:分钟】
private Integer patrolTotalTime = 0;
//处理件数(议题转项目数+议题关闭数+项目响应数+项目吹哨数+项目结案数)
private Integer eventCount = 0;
@JsonIgnore
private String dateId;
@JsonIgnore
private Integer timeNum;
}

14
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java

@ -266,4 +266,18 @@ public class EpmetUserController {
}
/**
* @Param formDTO
* @Description 对外接口--网格员排名-巡查记录
* @author sun
*/
@PostMapping("gridmemberpatrollist")
public Result<List<GridMemberPatrolListResultDTO>> gridMemberPatrolList(@RequestBody GridMemberPatrolListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GridMemberPatrolListFormDTO.Member.class);
if(!"month".equals(formDTO.getDimType())&&!"year".equals(formDTO.getDimType())){
throw new RenException("参数错误,维度类型参数值错误");
}
return new Result<List<GridMemberPatrolListResultDTO>>().ok(epmetUserService.gridMemberPatrolList(formDTO));
}
}

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java

@ -21,6 +21,8 @@ import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
@ -300,4 +302,10 @@ public interface DataStatsDao {
* @return
*/
TotalAndIncrResultDTO getAgencySumGroup(@Param("agencyList") List<String> agencyList, @Param("dateId") String dateId);
/**
* @Description 查询当前组织及下级所有网格员维度对应最大dated数据
* @author sun
*/
List<GridMemberPatrolListResultDTO> selectGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO);
}

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java

@ -19,6 +19,7 @@ package com.epmet.dataaggre.dao.epmetuser;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO;
import com.epmet.dataaggre.entity.epmetuser.StaffPatrolRecordEntity;
@ -53,4 +54,10 @@ public interface StaffPatrolRecordDao extends BaseDao<StaffPatrolRecordEntity> {
* @author sun
*/
StaffListResultDTO selectPersonalPatrolList(@Param("staffId") String staffId);
/**
* @Description 按维度汇总当前组织及下级网格员巡查数据
* @author sun
*/
List<StaffListResultDTO> gridMemberPatrol(GridMemberPatrolListFormDTO formDTO);
}

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java

@ -3,6 +3,8 @@ package com.epmet.dataaggre.service.datastats;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
@ -221,4 +223,10 @@ public interface DataStatsService {
* @date 2021/8/12 2:23 下午
*/
UserAndGroupTotalResultDTO getUserAndGroupTotal(BaseDataFormDTO formDTO);
/**
* @Description 查询当前组织及下级所有网格员维度对应最大dated数据
* @author sun
*/
List<GridMemberPatrolListResultDTO> getGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO);
}

13
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -12,7 +12,9 @@ import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult;
import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO;
@ -1830,4 +1832,13 @@ public class DataStatsServiceImpl implements DataStatsService {
return result;
}
/**
* @Description 查询当前组织及下级所有网格员维度对应最大dated数据
* @author sun
*/
@Override
public List<GridMemberPatrolListResultDTO> getGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO) {
return dataStatsDao.selectGirdMemberPatrol(formDTO);
}
}

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java

@ -2,6 +2,7 @@ package com.epmet.dataaggre.service.epmetuser;
import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO;
import com.epmet.dataaggre.dto.epmetuser.form.*;
import com.epmet.dataaggre.dto.epmetuser.form.*;
import com.epmet.dataaggre.dto.epmetuser.result.*;
import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO;
import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO;
@ -140,4 +141,11 @@ public interface EpmetUserService {
* @author sun
*/
StaffDetailV2FormDTO selectByStaffId(String staffId);
/**
* @Param formDTO
* @Description 对外接口--网格员排名-巡查记录
* @author sun
*/
List<GridMemberPatrolListResultDTO> gridMemberPatrolList(GridMemberPatrolListFormDTO formDTO);
}

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

@ -29,6 +29,7 @@ import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO;
import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity;
import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity;
import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService;
@ -76,6 +77,8 @@ public class EpmetUserServiceImpl implements EpmetUserService {
private GovProjectService govProjectService;
@Resource
private GovStaffRoleDao govStaffRoleDao;
@Autowired
private DataStatsService dataStatsService;
/**
* @Description 根据UserIds查询
@ -640,5 +643,46 @@ public class EpmetUserServiceImpl implements EpmetUserService {
return result;
}
/**
* @Param formDTO
* @Description 对外接口--网格员排名-巡查记录
* @author sun
*/
@Override
public List<GridMemberPatrolListResultDTO> gridMemberPatrolList(GridMemberPatrolListFormDTO formDTO) {
//1.查询当前组织及下级所有网格员维度对应最大dated数据【例查询2021年8月数据,则是查询8月对应的最大daeId那天的网格员数据】
List<GridMemberPatrolListResultDTO> resultList = dataStatsService.getGirdMemberPatrol(formDTO);
if (CollectionUtils.isEmpty(resultList)) {
return new ArrayList<>();
}
//2.按维度汇总当前组织及下级网格员巡查数据
//【如果查询当前月或本年度数据,则需要排除最大dateId的数据,因为上边查的统计数据只有t-1的,巡查数据是t的,避免多计算了当天的巡查项目数和时长数】
formDTO.setDateId(resultList.get(0).getDateId());
List<StaffListResultDTO> patrolList = staffPatrolRecordDao.gridMemberPatrol(formDTO);
//3.以统计数据为准封装结果数据
resultList.forEach(re -> patrolList.stream().filter(l -> re.getStaffId().equals(l.getStaffId())).forEach(s -> {
re.setReportProjectCount(s.getReportProjectCount());
re.setPatrolTotalTime((s.getTimeNum() > NumConstant.ZERO ? s.getTimeNum() / 60 : 0));
}));
//4.按排序字段排序并返回
Collections.sort(resultList, new Comparator<GridMemberPatrolListResultDTO>() {
@Override
public int compare(GridMemberPatrolListResultDTO o1, GridMemberPatrolListResultDTO o2) {
if ("patrolTime".equals(formDTO.getSort())) {
return o2.getPatrolTotalTime().compareTo(o1.getPatrolTotalTime());
} else if ("dealEvent".equals(formDTO.getSort())) {
return o2.getEventCount().compareTo(o1.getEventCount());
} else {
return o2.getReportProjectCount().compareTo(o1.getReportProjectCount());
}
}
});
return resultList;
}
}

30
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -767,4 +767,34 @@
</foreach>
</select>
<select id="selectGirdMemberPatrol" resultType="com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO">
SELECT
staff_id staffId,
staff_name staffName,
date_id dateId,
IFNULL(
SUM(
issue_to_project_count + closed_issue_count + project_response_count + project_transfer_count + project_closed_count
)
, 0)eventCount
FROM
fact_grid_member_statistics_daily
WHERE
del_flag = '0'
AND pids LIKE concat('%', #{agencyId}, '%')
AND date_id = (
SELECT MAX(date_id)
FROM fact_grid_member_statistics_daily
WHERE
del_flag = '0'
<if test="dimType!= null and dimType == 'month' ">
AND month_id = #{dimId}
</if>
<if test="dimType!= null and dimType == 'year' ">
AND year_id = #{dimId}
</if>
)
GROUP BY staff_id
</select>
</mapper>

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

@ -120,4 +120,24 @@
AND ssp.staff_id = #{staffId}
</select>
<select id="gridMemberPatrol" resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO">
SELECT
staff_id staffId,
IFNULL(SUM(patrol_total), 0) reportProjectCount,
IFNULL(SUM(total_time), 0) timeNum
FROM
stats_staff_patrol_record_daily
WHERE
del_flag = '0'
AND grid_pids LIKE concat('%', #{agencyId}, '%')
<if test="dimType!= null and dimType == 'month' ">
AND month_id = #{dimId}
</if>
<if test="dimType!= null and dimType == 'year' ">
AND year_id = #{dimId}
</if>
AND date_id <![CDATA[<=]]> #{dateId}
GROUP BY staff_id
</select>
</mapper>

4
epmet-module/data-report/data-report-client/src/main/java/com/epmet/user/result/GridManagerListYuShanResultDTO.java → epmet-module/data-report/data-report-client/src/main/java/com/epmet/user/result/GridManagerListGeneralResultDTO.java

@ -12,7 +12,7 @@ import java.io.Serializable;
* @DESC
*/
@Data
public class GridManagerListYuShanResultDTO implements Serializable {
public class GridManagerListGeneralResultDTO implements Serializable {
private static final long serialVersionUID = -2770911125810373090L;
@ -78,7 +78,7 @@ public class GridManagerListYuShanResultDTO implements Serializable {
@JsonIgnore
private Boolean llStatus;
public GridManagerListYuShanResultDTO() {
public GridManagerListGeneralResultDTO() {
this.staffId = "";
this.longitude = "";
this.latitude = "";

10
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/StaffPatrolDetailController.java

@ -11,7 +11,7 @@ import com.epmet.user.result.GridManagerListResultDTO;
import com.epmet.dto.result.PatrolTrackResultDTO;
import com.epmet.dto.result.RecordListResultDTO;
import com.epmet.dto.result.PatrolCountResultDTO;
import com.epmet.user.result.GridManagerListYuShanResultDTO;
import com.epmet.user.result.GridManagerListGeneralResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -79,15 +79,15 @@ public class StaffPatrolDetailController {
}
/**
* @Description 网格员分布-榆山
* @Description 网格员分布
* @Param formDTO
* @author zxc
* @date 2021/8/25 3:00 下午
*/
@PostMapping("gridmanagerlist-yushan")
public Result<List<GridManagerListYuShanResultDTO>> gridManagerListYuShan(@RequestBody GridManagerListFormDTO formDTO){
@PostMapping("gridmanagerlistgeneral")
public Result<List<GridManagerListGeneralResultDTO>> gridManagerListGeneral(@RequestBody GridManagerListFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, GridManagerListFormDTO.GridManagerListForm.class);
return new Result<List<GridManagerListYuShanResultDTO>>().ok(staffPatrolService.gridManagerListYuShan(formDTO));
return new Result<List<GridManagerListGeneralResultDTO>>().ok(staffPatrolService.gridManagerListGeneral(formDTO));
}
}

6
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/StaffPatrolDetailService.java

@ -8,7 +8,7 @@ import com.epmet.user.result.GridManagerListResultDTO;
import com.epmet.dto.result.PatrolTrackResultDTO;
import com.epmet.dto.result.RecordListResultDTO;
import com.epmet.dto.result.PatrolCountResultDTO;
import com.epmet.user.result.GridManagerListYuShanResultDTO;
import com.epmet.user.result.GridManagerListGeneralResultDTO;
import java.util.List;
@ -29,12 +29,12 @@ public interface StaffPatrolDetailService{
List<GridManagerListResultDTO> gridManagerList(GridManagerListFormDTO formDTO);
/**
* @Description 网格员分布-榆山
* @Description 网格员分布
* @Param formDTO
* @author zxc
* @date 2021/8/25 3:00 下午
*/
List<GridManagerListYuShanResultDTO> gridManagerListYuShan(GridManagerListFormDTO formDTO);
List<GridManagerListGeneralResultDTO> gridManagerListGeneral(GridManagerListFormDTO formDTO);
/**
* @Description 002查看巡查记录

9
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/StaffPatrolDetailServiceImpl.java

@ -3,7 +3,6 @@ package com.epmet.datareport.service.user.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.datareport.constant.PatrolConstant;
import com.epmet.datareport.dao.user.StaffPatrolDetailDao;
@ -19,7 +18,7 @@ import com.epmet.dto.form.RecordListFormDTO;
import com.epmet.dto.form.PatrolCountFormDTO;
import com.epmet.user.result.GridManagerListResultDTO;
import com.epmet.dto.result.PatrolCountResultDTO;
import com.epmet.user.result.GridManagerListYuShanResultDTO;
import com.epmet.user.result.GridManagerListGeneralResultDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -138,15 +137,15 @@ public class StaffPatrolDetailServiceImpl implements StaffPatrolDetailService {
}
/**
* @Description 网格员分布-榆山
* @Description 网格员分布
* @Param formDTO
* @author zxc
* @date 2021/8/25 3:00 下午
*/
@Override
public List<GridManagerListYuShanResultDTO> gridManagerListYuShan(GridManagerListFormDTO formDTO) {
public List<GridManagerListGeneralResultDTO> gridManagerListGeneral(GridManagerListFormDTO formDTO) {
List<GridManagerListResultDTO> resultTwo = this.gridManagerList(formDTO);
List<GridManagerListYuShanResultDTO> result = ConvertUtils.sourceToTarget(resultTwo, GridManagerListYuShanResultDTO.class);
List<GridManagerListGeneralResultDTO> result = ConvertUtils.sourceToTarget(resultTwo, GridManagerListGeneralResultDTO.class);
Result<List<PatrolYuShanResultDTO>> listResult = epmetUserOpenFeignClient.patrolInfo(formDTO.getAgencyId());
if (!listResult.success()){
throw new RenException("查询巡查次数和时长失败");

Loading…
Cancel
Save