Ver Fonte

【feat】【v3】
1.任务切换打卡方式时,删除旧的打卡数据

ChenYL há 10 meses atrás
pai
commit
34c9fea41a

+ 7 - 0
src/main/java/com/punchsettle/server/atomic/service/IPiTaskHistoryService.java

@@ -3,6 +3,7 @@ package com.punchsettle.server.atomic.service;
 import com.punchsettle.server.atomic.entity.PiTaskHistory;
 import com.punchsettle.server.pojo.punchIn.PiTaskHistoryQuery;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -51,4 +52,10 @@ public interface IPiTaskHistoryService {
      * @param piTaskHistories
      */
     void batchAdd(List<PiTaskHistory> piTaskHistories);
+
+    /**
+     * 逻辑删除
+     * @param ids
+     */
+    void deleteByIds(Collection<Long> ids);
 }

+ 11 - 0
src/main/java/com/punchsettle/server/atomic/service/impl/PiTaskHistoryServiceImpl.java

@@ -13,6 +13,7 @@ import org.springframework.util.StringUtils;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -88,4 +89,14 @@ public class PiTaskHistoryServiceImpl implements IPiTaskHistoryService {
         Assert.notEmpty(piTaskHistories);
         piTaskHistoryMapper.insertList(piTaskHistories);
     }
+
+    @Override
+    public void deleteByIds(Collection<Long> ids) {
+        Assert.notEmpty(ids);
+
+        Weekend<PiTaskHistory> weekend = Weekend.of(PiTaskHistory.class);
+        WeekendCriteria<PiTaskHistory, Object> criteria = weekend.weekendCriteria();
+        criteria.andIn(PiTaskHistory::getId, ids);
+        piTaskHistoryMapper.deleteByExample(weekend);
+    }
 }

+ 13 - 1
src/main/java/com/punchsettle/server/service/manager/impl/PunchInManagerImpl.java

@@ -362,6 +362,18 @@ public class PunchInManagerImpl implements IPunchInManager {
             updatePiTask.setId(piTask.getId());
             updatePiTask.setTaskStatus(VersionStatusEnum.ARCHIVE);
             piTaskService.update(updatePiTask);
+
+            // 切换打卡模式删除当前旧打卡数据
+            if (!piTask.getPunchInMethod().equals(addPiTask.getPunchInMethod())) {
+                PiTaskHistoryQuery piTaskHistoryQuery = new PiTaskHistoryQuery();
+                piTaskHistoryQuery.setTaskUniqueIds(Arrays.asList(piTask.getUniqueId()));
+                piTaskHistoryQuery.setPunchInDate(LocalDate.now().toString());
+                List<PiTaskHistory> piTaskHistories = piTaskHistoryService.queryByCondition(piTaskHistoryQuery);
+                if (!CollectionUtils.isEmpty(piTaskHistories)) {
+                    Set<Long> piTaskHistoryIds = piTaskHistories.stream().map(PiTaskHistory::getId).collect(Collectors.toSet());
+                    piTaskHistoryService.deleteByIds(piTaskHistoryIds);
+                }
+            }
         }
 
         // 保存数据
@@ -402,7 +414,7 @@ public class PunchInManagerImpl implements IPunchInManager {
         }
 
         // 清除缓存
-        clearCache(currentUserId, false, false);
+        clearCache(currentUserId, true, true);
     }
 
     @Override