From 62b95d8279e1eb79caa179c843fa60e21b766579 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 27 Jul 2021 16:16:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=BD=91=E6=A0=BCbug=EF=BC=9B=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E8=AF=A5=E5=B7=A5=E4=BD=9C=E4=BA=BA=E5=91=98=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=9C=A8=E4=BB=BB=E4=BD=95=E7=BD=91=E6=A0=BC=20?= =?UTF-8?q?=E5=88=99=E8=BF=94=E5=9B=9E=E7=A9=BA=EF=BC=9B=E6=88=96=E8=80=85?= =?UTF-8?q?=E5=9C=A8=E7=BD=91=E6=A0=BC=E9=87=8C=E5=BD=93=E6=97=B6=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E8=AE=B0=E5=BD=95=E9=87=8C=E6=9C=80=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E7=BD=91=E6=A0=BC=E6=97=A0=E6=95=88=E5=88=99=E9=9A=8F=E6=9C=BA?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=B8=80=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/StaffAgencyServiceImpl.java | 62 ++++++++++++++----- 1 file changed, 47 insertions(+), 15 deletions(-) diff --git a/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/StaffAgencyServiceImpl.java b/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/StaffAgencyServiceImpl.java index a025a0b74b..c6f9ad683b 100644 --- a/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/StaffAgencyServiceImpl.java +++ b/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,30 +217,59 @@ public class StaffAgencyServiceImpl implements StaffAgencyService { **/ @Override public Result getLatestGrid(LatestGridFormDTO latestGridFormDTO) { - Result latestGridResult = - epmetUserFeignClient.getStaffLatestGrid(latestGridFormDTO); + //首先获取该员工的网格列表 如果为空则直接返回 + Result> 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 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 staffGridResult = getStaffLatestGridAndSaveVisitRecord(latestGridFormDTO); + if (staffGridResult != null) { + return staffGridResult; + } + } return latestGridResult; } else { - Result staffGridResult = - govOrgFeignClient.getStaffGrid(latestGridFormDTO); - if (staffGridResult.success() && null != staffGridResult.getData() && StringUtils.isNotBlank(staffGridResult.getData().getGridId())) { - StaffGridVisitedFormDTO gridRecordParam = new StaffGridVisitedFormDTO(); - gridRecordParam.setGridId(staffGridResult.getData().getGridId()); - gridRecordParam.setCustomerId(latestGridFormDTO.getCustomerId()); - gridRecordParam.setStaffId(latestGridFormDTO.getStaffId()); - Result writeRecordResult = epmetUserFeignClient.saveStaffGridVisitedRecord(gridRecordParam); - if(writeRecordResult.success()){ - logger.warn("com.epmet.service.impl.StaffAgencyServiceImpl.getLatestGrid,工作人员网格访问网格写入失败,staffId:{},gridId:{}",latestGridFormDTO.getStaffId(),staffGridResult.getData().getGridId()); - } + Result staffGridResult = getStaffLatestGridAndSaveVisitRecord(latestGridFormDTO); + if (staffGridResult != null) { return staffGridResult; } } logger.info(String.format("客户id%s,staffId%s查询最后一次登录网格为空",latestGridFormDTO.getCustomerId(),latestGridFormDTO.getStaffId())); - //.error(StaffAgencyConstant.QUERY_LATEST_GRID_INFO_FAILED) return new Result<>(); } + /** + * desc: 根据参数获取工作人员最新网格 并生成网格网格记录 + * + * @param latestGridFormDTO + * @return com.epmet.commons.tools.utils.Result + * @author LiuJanJun + * @date 2021/7/27 4:04 下午 + */ + @Nullable + private Result getStaffLatestGridAndSaveVisitRecord(LatestGridFormDTO latestGridFormDTO) { + Result staffGridResult = govOrgFeignClient.getStaffGrid(latestGridFormDTO); + if (staffGridResult.success() && null != staffGridResult.getData() && StringUtils.isNotBlank(staffGridResult.getData().getGridId())) { + StaffGridVisitedFormDTO gridRecordParam = new StaffGridVisitedFormDTO(); + gridRecordParam.setGridId(staffGridResult.getData().getGridId()); + gridRecordParam.setCustomerId(latestGridFormDTO.getCustomerId()); + gridRecordParam.setStaffId(latestGridFormDTO.getStaffId()); + Result writeRecordResult = epmetUserFeignClient.saveStaffGridVisitedRecord(gridRecordParam); + if(writeRecordResult.success()){ + logger.warn("com.epmet.service.impl.StaffAgencyServiceImpl.getLatestGrid,工作人员网格访问网格写入失败,staffId:{},gridId:{}",latestGridFormDTO.getStaffId(),staffGridResult.getData().getGridId()); + } + return staffGridResult; + } + return null; + } + @Override public void switchGrid(SwitchGridFormDTO switchGridFormDTO) { @@ -253,4 +285,4 @@ public class StaffAgencyServiceImpl implements StaffAgencyService { } -} \ No newline at end of file +}