Преглед изворни кода

add
苹果手机报警推送

18339543638 пре 1 година
родитељ
комит
e4fa25498e

+ 2 - 1
nb-im/src/main/java/com/nb/im/enums/ImStatusEnum.java

@@ -20,7 +20,8 @@ public enum  ImStatusEnum  implements IEnum<Integer> {
     SUCCESS(1,"成功建立聊天室"),
     DOCTOR_LIFT(2,"医生关闭聊天室"),
     AUTO_LIST(3,"24小时自动关闭聊天室"),
-    ASSIST_LIFT(4,"看护人解除看护");
+    ASSIST_LIFT(4,"看护人解除看护"),
+    CLINIC_FINISHED(5,"临床结束管理2小时自动关闭聊天室");
 
     private Integer value;
     private String text;

+ 24 - 0
nb-im/src/main/java/com/nb/im/job/ImRoomJob.java

@@ -5,7 +5,9 @@ import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.nb.im.entity.ImRoomEntity;
 import com.nb.im.enums.ImStatusEnum;
@@ -79,4 +81,26 @@ public class ImRoomJob {
             log.error("24小时自动结束聊天室失败,",e);
         }
     }
+
+    /**
+     * 描述:临床结束后两小时结束聊天室
+     * @author lifang
+     * @date 2024/10/14 10:38
+     * @param
+     * @return void
+     */
+    @Scheduled(cron = "0 0/10 * * * ?")
+    public void autoFinishByClinicFinished(){
+        try {
+            log.info("执行临床结束后两小时结束聊天室");
+            DateTime offset = DateUtil.offset( new Date(), DateField.HOUR, -2);
+            imRoomService.update(new LambdaUpdateWrapper<ImRoomEntity>()
+            .eq(ImRoomEntity::getMonitorFinished,Boolean.TRUE)
+            .le(ImRoomEntity::getMonitorFinishedTime,offset)
+            .in(ImRoomEntity::getStatus,ImStatusEnum.WAITING,ImStatusEnum.SUCCESS)
+            .set(ImRoomEntity::getStatus,ImStatusEnum.CLINIC_FINISHED));
+        }catch (Exception e){
+            log.error("临床结束后两小时结束聊天室失败,",e);
+        }
+    }
 }