فهرست منبع

删除队列解绑手术 统计值处理

wangzl 2 ماه پیش
والد
کامیت
cf73d201c3

+ 1 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizReasearchQueueClinicPO.java

@@ -35,7 +35,7 @@ public class BizReasearchQueueClinicPO extends TenantPO {
 
     /** 上一次推送的时间间隔 */
     @ApiModelProperty(value = "上一次推送的时间间隔", position = 4)
-    private Integer lastPushInterval;
+    private Long lastPushInterval;
 
     /** 推送次数 */
     @ApiModelProperty(value = "推送次数", position = 5)

+ 14 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizReasearchQueueClinicServiceImpl.java

@@ -109,6 +109,10 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
             clinicRoomRepository.update(null,new LambdaUpdateWrapper<BizClinicRoomPO>()
                     .setSql("queue_count = queue_count + 1")
                     .in(BizClinicRoomPO::getId,clinicIds));
+            //队列表中得手术数量统计加 个数
+            reasearchQueueRepository.update(null,new LambdaUpdateWrapper<BizReasearchQueuePO>()
+                    .setSql("clinic_count = clinic_count + " + clinicIds.size())
+                    .eq(BizReasearchQueuePO::getId,source.getId()));
         }
         this.saveBatch(insertBatch);
         insertBatch.parallelStream().forEach(queueClinicPO -> {
@@ -144,6 +148,15 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
             clinicRoomRepository.update(null,new LambdaUpdateWrapper<BizClinicRoomPO>()
                     .setSql("queue_count = queue_count - 1")
                     .in(BizClinicRoomPO::getId,clinicIds));
+            //队列表中得手术数量统计减 个数
+            Map<String, Integer> collect = bizReasearchQueueClinicPOS.stream()
+                    .collect(Collectors.groupingBy(BizReasearchQueueClinicPO::getQueueId,
+                            Collectors.summingInt(e -> 1)));
+           collect.forEach((queueId,count) -> {
+               reasearchQueueRepository.update(null,new LambdaUpdateWrapper<BizReasearchQueuePO>()
+                       .setSql("clinic_count = clinic_count - " + count)
+                       .eq(BizReasearchQueuePO::getId,queueId));
+           });
         }
         return baseMapper.deleteBatchIds(ids);
     }
@@ -284,7 +297,7 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
             BizMpPublishInfoDTO publishInfo = baseMapper.selectPushInfo(source.getId());
             wxTemplateSendHelper.sendMsg(publishInfo, MpPublishTaskTypeEnums.AFTER_QUESTION.getType());
         }catch (Exception e){
-            log.info("推送消息失败 {}",e.getMessage());
+
         }
     }
 

+ 24 - 3
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizReasearchQueueServiceImpl.java

@@ -7,8 +7,13 @@ import cn.tr.core.utils.ValidationUtils;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueVO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueAddClinicDTO;
 import cn.tr.module.smart.common.entity.BizReasearchPushPointEntity;
+import cn.tr.module.smart.common.po.BizClinicRoomPO;
+import cn.tr.module.smart.common.po.BizReasearchQueueClinicPO;
+import cn.tr.module.smart.common.repository.BizClinicRoomRepository;
 import cn.tr.module.smart.common.repository.BizReasearchQueueClinicRepository;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import org.checkerframework.checker.units.qual.A;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,6 +43,9 @@ public class BizReasearchQueueServiceImpl implements IBizReasearchQueueService {
     @Autowired
     private BizReasearchQueueClinicRepository queueClinicRepository;
 
+    @Autowired
+    private BizClinicRoomRepository clinicRoomRepository;
+
     /**
      * 根据条件查询研究队列
      * @param    query 查询参数
@@ -112,9 +120,22 @@ public class BizReasearchQueueServiceImpl implements IBizReasearchQueueService {
             throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
         }
         String currentUserId = LoginUserStrategy.tr.getCurrentUserId();
-        return baseRepository.delete(new LambdaQueryWrapper<BizReasearchQueuePO>()
-                .in(BizReasearchQueuePO::getId,ids)
-                .eq(BizReasearchQueuePO::getOwner,currentUserId));
+        int delete = baseRepository.delete(new LambdaQueryWrapper<BizReasearchQueuePO>()
+                .in(BizReasearchQueuePO::getId, ids)
+                .eq(BizReasearchQueuePO::getOwner, currentUserId));
+        if(delete !=0){
+            //更新手术表中各个手术得统计数
+            List<BizReasearchQueueClinicPO> bizReasearchQueueClinicPOS = queueClinicRepository.selectList(new LambdaQueryWrapper<BizReasearchQueueClinicPO>()
+                    .in(BizReasearchQueueClinicPO::getQueueId, ids));
+            List<String> clinicIds = bizReasearchQueueClinicPOS.stream().map(BizReasearchQueueClinicPO::getClinicRoomId)
+                    .collect(Collectors.toList());
+            if(CollectionUtil.isNotEmpty(clinicIds)){
+                clinicRoomRepository.update(null,new LambdaUpdateWrapper<BizClinicRoomPO>()
+                        .setSql("queue_count = queue_count - 1")
+                        .in(BizClinicRoomPO::getId,clinicIds));
+            }
+        }
+        return delete;
     }
 
     private void validateSource(BizReasearchQueueDTO source){