|
@@ -1,5 +1,8 @@
|
|
|
package cn.tr.module.smart.common.service.impl;
|
|
package cn.tr.module.smart.common.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
|
+import cn.hutool.core.date.DatePattern;
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
import cn.tr.core.exception.TRExcCode;
|
|
@@ -9,24 +12,27 @@ import cn.tr.module.smart.common.enums.InfusionBindType;
|
|
|
import cn.tr.module.smart.common.mapper.BizDeviceAlarmMapper;
|
|
import cn.tr.module.smart.common.mapper.BizDeviceAlarmMapper;
|
|
|
import cn.tr.module.smart.common.mapper.BizInfusionHistoryMapper;
|
|
import cn.tr.module.smart.common.mapper.BizInfusionHistoryMapper;
|
|
|
import cn.tr.module.smart.common.po.BizDeviceAlarmPO;
|
|
import cn.tr.module.smart.common.po.BizDeviceAlarmPO;
|
|
|
|
|
+import cn.tr.module.smart.common.po.BizDeviceHistoryPO;
|
|
|
import cn.tr.module.smart.common.po.BizDevicePO;
|
|
import cn.tr.module.smart.common.po.BizDevicePO;
|
|
|
import cn.tr.module.smart.common.po.BizInfusionClinicPO;
|
|
import cn.tr.module.smart.common.po.BizInfusionClinicPO;
|
|
|
import cn.tr.module.smart.common.repository.BizDeviceAlarmRepository;
|
|
import cn.tr.module.smart.common.repository.BizDeviceAlarmRepository;
|
|
|
|
|
+import cn.tr.module.smart.common.repository.BizDeviceHistoryRepository;
|
|
|
import cn.tr.module.smart.common.repository.BizDeviceRepository;
|
|
import cn.tr.module.smart.common.repository.BizDeviceRepository;
|
|
|
import cn.tr.module.smart.common.repository.BizInfusionClinicRepository;
|
|
import cn.tr.module.smart.common.repository.BizInfusionClinicRepository;
|
|
|
import cn.tr.module.smart.common.service.IBizDeviceService;
|
|
import cn.tr.module.smart.common.service.IBizDeviceService;
|
|
|
import cn.tr.module.smart.web.dto.BizDeviceAlarmInfoDTO;
|
|
import cn.tr.module.smart.web.dto.BizDeviceAlarmInfoDTO;
|
|
|
import cn.tr.module.smart.web.dto.BizDeviceAndClinicDetailQueryDTO;
|
|
import cn.tr.module.smart.web.dto.BizDeviceAndClinicDetailQueryDTO;
|
|
|
import cn.tr.module.smart.web.dto.BizDeviceBindClinicDTO;
|
|
import cn.tr.module.smart.web.dto.BizDeviceBindClinicDTO;
|
|
|
-import cn.tr.module.smart.web.vo.BizDeviceAndClinicDetailVO;
|
|
|
|
|
-import cn.tr.module.smart.web.vo.BizDeviceDetailVO;
|
|
|
|
|
-import cn.tr.module.smart.web.vo.BizDeviceInfoVO;
|
|
|
|
|
-import cn.tr.module.smart.web.vo.BizInfusionInfoVO;
|
|
|
|
|
|
|
+import cn.tr.module.smart.web.vo.*;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @author wangzl
|
|
* @author wangzl
|
|
@@ -44,6 +50,9 @@ public class BizDeviceServiceImpl implements IBizDeviceService {
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private BizInfusionClinicRepository infusionClinicRepository;
|
|
private BizInfusionClinicRepository infusionClinicRepository;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private BizDeviceHistoryRepository bizDeviceHistoryRepository;
|
|
|
/**
|
|
/**
|
|
|
* @param query 查询参数
|
|
* @param query 查询参数
|
|
|
* @description: 根据条件查询泵设备列表
|
|
* @description: 根据条件查询泵设备列表
|
|
@@ -133,4 +142,27 @@ public class BizDeviceServiceImpl implements IBizDeviceService {
|
|
|
infusionClinicPO.setDeviceId(source.getDeviceId());
|
|
infusionClinicPO.setDeviceId(source.getDeviceId());
|
|
|
return infusionClinicRepository.insert(infusionClinicPO)!=0;
|
|
return infusionClinicRepository.insert(infusionClinicPO)!=0;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param infusionId
|
|
|
|
|
+ * @description: 根据输注ID查询泵输注折线图
|
|
|
|
|
+ * @author wangzl
|
|
|
|
|
+ * @date 2025/8/11
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public BizInfusionLineVO queryInfusionGraph(String infusionId) {
|
|
|
|
|
+ List<BizDeviceHistoryPO> bizDeviceHistoryPOS = bizDeviceHistoryRepository.selectList(new LambdaQueryWrapper<BizDeviceHistoryPO>()
|
|
|
|
|
+ .eq(BizDeviceHistoryPO::getInfusionId, infusionId));
|
|
|
|
|
+ if(CollectionUtil.isEmpty(bizDeviceHistoryPOS)){
|
|
|
|
|
+ return new BizInfusionLineVO();
|
|
|
|
|
+ }
|
|
|
|
|
+ return bizDeviceHistoryPOS.stream().collect(Collectors.collectingAndThen(Collectors.toList(), list -> {
|
|
|
|
|
+ BizInfusionLineVO bizInfusionLineVO = new BizInfusionLineVO();
|
|
|
|
|
+ bizInfusionLineVO.setInputDose(list.stream().map(BizDeviceHistoryPO::getInputDose).collect(Collectors.toList()));
|
|
|
|
|
+ bizInfusionLineVO.setValidCount(list.stream().map(BizDeviceHistoryPO::getPcaValidCount).collect(Collectors.toList()));
|
|
|
|
|
+ bizInfusionLineVO.setInValidCount(list.stream().map(BizDeviceHistoryPO::getPcaInvalidCount).collect(Collectors.toList()));
|
|
|
|
|
+ bizInfusionLineVO.setUploadTime(list.stream().map(history -> DateUtil.format(history.getLastUploadTime(), DatePattern.NORM_DATETIME_PATTERN)).collect(Collectors.toList()));
|
|
|
|
|
+ return bizInfusionLineVO;
|
|
|
|
|
+ }));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|