Browse Source

获取网格员最新网格bug;如果该工作人员没有在任何网格 则返回空;或者在网格里当时访问记录里最新的网格无效则随机返回一个

dev_shibei_match
jianjun 4 years ago
parent
commit
62b95d8279
  1. 48
      epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/StaffAgencyServiceImpl.java

48
epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/StaffAgencyServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -31,10 +32,12 @@ import com.epmet.dto.result.StaffGridResultDTO;
import com.epmet.feign.*;
import com.epmet.service.StaffAgencyService;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
@ -214,13 +217,45 @@ public class StaffAgencyServiceImpl implements StaffAgencyService {
**/
@Override
public Result<CustomerGridByUserIdResultDTO> getLatestGrid(LatestGridFormDTO latestGridFormDTO) {
Result<CustomerGridByUserIdResultDTO> latestGridResult =
epmetUserFeignClient.getStaffLatestGrid(latestGridFormDTO);
//首先获取该员工的网格列表 如果为空则直接返回
Result<List<CustomerGridByUserIdResultDTO>> staffGridListResult = govOrgFeignClient.getMyGrids(latestGridFormDTO.getStaffId());
if (staffGridListResult == null || !staffGridListResult.success() || CollectionUtils.isEmpty(staffGridListResult.getData())){
logger.warn("getLatestGrid method getMyGrids return null,param:{}", JSON.toJSONString(latestGridFormDTO));
return new Result<>();
}
//获取该工作人员的最后访问记录 如果不为空 判断下是否所访问网格有效 无效则取工作人员的任意网格返回并生成记录 否则 直接返回访问记录中的网格
Result<CustomerGridByUserIdResultDTO> latestGridResult = epmetUserFeignClient.getStaffLatestGrid(latestGridFormDTO);
if (latestGridResult.success() && null != latestGridResult.getData() && StringUtils.isNotBlank(latestGridResult.getData().getGridId())) {
long count = staffGridListResult.getData().stream().filter(o -> o.getGridId().equals(latestGridResult.getData().getGridId())).count();
//count 如果==0 说明访问记录中的网格已经无效了 则直接查询工作人员最新的网格作为进入的网格
if (count == 0){
Result<CustomerGridByUserIdResultDTO> staffGridResult = getStaffLatestGridAndSaveVisitRecord(latestGridFormDTO);
if (staffGridResult != null) {
return staffGridResult;
}
}
return latestGridResult;
} else {
Result<CustomerGridByUserIdResultDTO> staffGridResult =
govOrgFeignClient.getStaffGrid(latestGridFormDTO);
Result<CustomerGridByUserIdResultDTO> staffGridResult = getStaffLatestGridAndSaveVisitRecord(latestGridFormDTO);
if (staffGridResult != null) {
return staffGridResult;
}
}
logger.info(String.format("客户id%s,staffId%s查询最后一次登录网格为空",latestGridFormDTO.getCustomerId(),latestGridFormDTO.getStaffId()));
return new Result<>();
}
/**
* desc: 根据参数获取工作人员最新网格 并生成网格网格记录
*
* @param latestGridFormDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.CustomerGridByUserIdResultDTO>
* @author LiuJanJun
* @date 2021/7/27 4:04 下午
*/
@Nullable
private Result<CustomerGridByUserIdResultDTO> getStaffLatestGridAndSaveVisitRecord(LatestGridFormDTO latestGridFormDTO) {
Result<CustomerGridByUserIdResultDTO> staffGridResult = govOrgFeignClient.getStaffGrid(latestGridFormDTO);
if (staffGridResult.success() && null != staffGridResult.getData() && StringUtils.isNotBlank(staffGridResult.getData().getGridId())) {
StaffGridVisitedFormDTO gridRecordParam = new StaffGridVisitedFormDTO();
gridRecordParam.setGridId(staffGridResult.getData().getGridId());
@ -232,10 +267,7 @@ public class StaffAgencyServiceImpl implements StaffAgencyService {
}
return staffGridResult;
}
}
logger.info(String.format("客户id%s,staffId%s查询最后一次登录网格为空",latestGridFormDTO.getCustomerId(),latestGridFormDTO.getStaffId()));
//.error(StaffAgencyConstant.QUERY_LATEST_GRID_INFO_FAILED)
return new Result<>();
return null;
}

Loading…
Cancel
Save