Commit 41499afd1bf897d44ed830d0a566beccf5eb8cdd
1 parent
1a39108b
fix: 修复缓存没有及时更新问题
Showing
2 changed files
with
17 additions
and
0 deletions
ruoyi-admin/src/main/java/com/ruoyi/common/cache/NowSchedulingCache.java
| ... | ... | @@ -2,6 +2,7 @@ package com.ruoyi.common.cache; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollectionUtil; |
| 4 | 4 | import com.ruoyi.driver.mapper.DriverSchedulingMapper; |
| 5 | +import com.ruoyi.in.domain.SignIn; | |
| 5 | 6 | import com.ruoyi.pojo.entity.DriverScheduling; |
| 6 | 7 | import com.ruoyi.utils.ConstDateUtil; |
| 7 | 8 | import org.slf4j.Logger; |
| ... | ... | @@ -85,4 +86,15 @@ public class NowSchedulingCache { |
| 85 | 86 | public List<String> getKes() { |
| 86 | 87 | return new ArrayList<>(cacheNowDayScheduling.keySet()); |
| 87 | 88 | } |
| 89 | + | |
| 90 | + public void updateCacheByJobCode(String key, Integer index, SignIn signIn) { | |
| 91 | + DriverScheduling scheduling = cacheNowDayScheduling.get(key).get(signIn.getJobCode()).get(index); | |
| 92 | + scheduling.setSignInId(signIn.getId()); | |
| 93 | + scheduling.setRemark(signIn.getRemark()); | |
| 94 | + scheduling.setExType(signIn.getExType()); | |
| 95 | + scheduling.setSignTime(signIn.getCreateTime()); | |
| 96 | + scheduling.setSignType(signIn.getType()); | |
| 97 | + scheduling.setAlcoholFlag(signIn.getAlcoholFlag()); | |
| 98 | + scheduling.setAlcoholIntake(signIn.getAlcoholIntake()); | |
| 99 | + } | |
| 88 | 100 | } | ... | ... |
ruoyi-admin/src/main/java/com/ruoyi/service/SchedulingService.java
| ... | ... | @@ -45,6 +45,7 @@ public class SchedulingService { |
| 45 | 45 | @Autowired |
| 46 | 46 | private SignInMapper signInMapper; |
| 47 | 47 | |
| 48 | + | |
| 48 | 49 | /** |
| 49 | 50 | * 获取排班信息 |
| 50 | 51 | * |
| ... | ... | @@ -119,10 +120,13 @@ public class SchedulingService { |
| 119 | 120 | // 记录为空直接插入记录 |
| 120 | 121 | if (Objects.isNull(dto.get(globalIndex.getIndex()).getSignInId())) { |
| 121 | 122 | schedulingMapper.updateRoster(dto.get(globalIndex.getIndex()), signIn.getId(), signIn.getExType(), signIn.getCreateTime(), signIn.getRemark(), signIn.getType(), signIn.getAlcoholFlag(), signIn.getAlcoholIntake()); |
| 123 | + // 更新缓存 | |
| 124 | + nowSchedulingCache.updateCacheByJobCode(ConstDateUtil.formatDate(dto.get(0).getScheduleDate()), globalIndex.getIndex(), signIn); | |
| 122 | 125 | } |
| 123 | 126 | // 之前的无效 |
| 124 | 127 | else if (!dto.get(globalIndex.getIndex()).getExType().equals(SIGN_NO_EX_NUM)) { |
| 125 | 128 | schedulingMapper.updateRoster(dto.get(globalIndex.getIndex()), signIn.getId(), signIn.getExType(), signIn.getCreateTime(), signIn.getRemark(), signIn.getType(), signIn.getAlcoholFlag(), signIn.getAlcoholIntake()); |
| 129 | + nowSchedulingCache.updateCacheByJobCode(ConstDateUtil.formatDate(dto.get(0).getScheduleDate()), globalIndex.getIndex(), signIn); | |
| 126 | 130 | } |
| 127 | 131 | // 之前的有效 |
| 128 | 132 | else { |
| ... | ... | @@ -146,6 +150,7 @@ public class SchedulingService { |
| 146 | 150 | } |
| 147 | 151 | // 之前是签到 | 目前无效 -》往后更新 |
| 148 | 152 | schedulingMapper.updateRoster(dto.get(globalIndex.getIndex() + 1), signIn.getId(), signIn.getExType(), signIn.getCreateTime(), signIn.getRemark(), signIn.getType(), signIn.getAlcoholFlag(), signIn.getAlcoholIntake()); |
| 153 | + nowSchedulingCache.updateCacheByJobCode(ConstDateUtil.formatDate(dto.get(0).getScheduleDate()), globalIndex.getIndex() + 1, signIn); | |
| 149 | 154 | } |
| 150 | 155 | |
| 151 | 156 | public List<ReportViewResponseVo> queryReportTableResponseVo(ReportViewRequestVo requestVo, HttpServletResponse response) { | ... | ... |