| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- package com.nb.bus.service;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.nb.bus.entity.BusDeviceAlarmEntity;
- import com.nb.bus.entity.BusHospitalEntity;
- import com.nb.bus.entity.BusInfusionHistoryEntity;
- import com.nb.bus.enums.DeviceAlarmEnum;
- import com.nb.bus.enums.FlowStatusEnum;
- import com.nb.bus.mapper.BusDeviceAlarmMapper;
- import com.nb.bus.service.dto.*;
- import com.nb.common.crud.BaseService;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @author lifang
- * @version 1.0.0
- * @ClassName LocalBusHospitalService.java
- * @Description 临床使用设备
- * @createTime 2022年03月19日 09:27:00
- */
- @Service
- @Slf4j
- @AllArgsConstructor
- public class LocalBusDeviceAlarmService extends BaseService<BusDeviceAlarmMapper, BusDeviceAlarmEntity,String> {
- @Autowired
- @Lazy
- private LocalBusHospitalService hospitalService;
- @Autowired
- @Lazy
- private LocalBusInfusionHistoryService infusionHistoryService;
- @Override
- public void validateBeforeSave(BusDeviceAlarmEntity entity) {
- }
- @Override
- public boolean save(BusDeviceAlarmEntity entity) {
- BusInfusionHistoryEntity infusionHistoryEntity = infusionHistoryService.getById(entity.getInfusionId());
- if(entity.getDeviceType()==null){
- entity.setDeviceType(infusionHistoryEntity.getType());
- }
- if(entity.getAlarmState()==null
- || ObjectUtil.equal(entity.getAlarmState(),infusionHistoryEntity.getAlarm())){
- entity.setAlarmState(DeviceAlarmEnum.None);
- }
- if(entity.getWarnAnalgesicPoor()==null
- || ObjectUtil.equal(entity.getWarnAnalgesicPoor(),infusionHistoryEntity.getWarnAnalgesicPoor())){
- entity.setWarnAnalgesicPoor(false);
- }
- if(entity.getWarnFlow()==null
- || ObjectUtil.equal(entity.getWarnFlow(),infusionHistoryEntity.getWarnFlow())){
- entity.setWarnFlow(FlowStatusEnum.None);
- }
- if(entity.getWarnWillFinished()==null
- || ObjectUtil.equal(entity.getWarnWillFinished(),infusionHistoryEntity.getWarnWillFinished())){
- entity.setWarnWillFinished(false);
- }
- if(entity.getWarnLowBattery()==null
- || ObjectUtil.equal(entity.getWarnLowBattery(),infusionHistoryEntity.getWarnLowBattery())){
- entity.setWarnLowBattery(false);
- }
- if(entity.getWarnAnalgesicPoor()==null
- || ObjectUtil.equal(entity.getWarnAnalgesicPoor(),infusionHistoryEntity.getWarnAnalgesicPoor())){
- entity.setWarnAnalgesicPoor(false);
- }
- if(!entity.alarmOrWarn()){
- //无警报信息,存储失败
- return false;
- }
- BusDeviceAlarmEntity existAlarm = BusDeviceAlarmEntity.parseRunning(infusionHistoryEntity);
- if (entity.signParm().equalsIgnoreCase(existAlarm.signParm())) {
- return false;
- }
- //再判断是否报警或提示是否发生重复
- //满足以上条件进行保存
- return super.save(entity);
- }
- @Override
- public void validateBeforeUpdate(BusDeviceAlarmEntity entity) {
- }
- @Override
- public void validateBeforeDelete(String id) {
- }
- public IPage<BusDeviceAlarmEntity> pageQuery(AlarmQuery query){
- return this.baseMapper.pageQuery(query.getPage(),query);
- }
- /**
- * 添加报警原因
- * @param id
- * @param cause
- */
- @Transactional(rollbackFor = Exception.class)
- public void addCause(String id, String cause) {
- BusDeviceAlarmEntity alarm = this.getById(id);
- if(alarm==null){
- return ;
- }
- if(StrUtil.isNotEmpty(alarm.getHistoryId())){
- //todo 更新历史消息
- }
- this.update(new UpdateWrapper<BusDeviceAlarmEntity>().lambda().eq(BusDeviceAlarmEntity::getId,id).set(BusDeviceAlarmEntity::getCause,cause));
- }
- /**
- * 查看报警数量
- */
- @Transactional(rollbackFor = Exception.class)
- public List<DeviceUse> selectCountAlarm(DeviceAlarmQuery query){
- QueryWrapper<BusHospitalEntity> busHospitalEntityQueryWrapper = new QueryWrapper<>();
- if(busHospitalEntityQueryWrapper.getEntity() == null) {
- BusHospitalEntity hospitalEntity = new BusHospitalEntity();
- busHospitalEntityQueryWrapper.setEntity(hospitalEntity);
- }
- if(query.getHositalName()!=null){
- busHospitalEntityQueryWrapper.lambda().like(BusHospitalEntity::getName,query.getHositalName());
- }
- if(query.getTenantId()!=null){
- busHospitalEntityQueryWrapper.getEntity().setId(query.getTenantId());
- }
- List<BusHospitalEntity> hospitalEntities = hospitalService.getBaseMapper().selectList(busHospitalEntityQueryWrapper);
- List<DeviceUse> deviceUseList = new ArrayList<>();
- // 获取 报警所有信息数量
- List<DeviceAlarmCountResult> alarmResults = this.baseMapper.selectAlarmCount(query);
- //处理报警信息
- Map<String,Map<String,String>> alarmMap= new HashMap<>();
- for (DeviceAlarmCountResult deviceAlarmResult : alarmResults
- ) {
- Map<String, String> map = alarmMap.get(deviceAlarmResult.getTenantId());
- if(map == null){
- map = new HashMap<>();
- for (DeviceAlarmEnum deviceAlarmEnum:
- DeviceAlarmEnum.values()) {
- map.put(deviceAlarmEnum.toString(),"0");
- }
- }
- map.put(deviceAlarmResult.getAlarmState().toString(),deviceAlarmResult.getAlarmCount());
- alarmMap.put(deviceAlarmResult.getTenantId(),map);
- }
- // 获取告警信息
- List<DeviceWarnCountResult> warnResults = this.baseMapper.selectWarnCount(query);
- //处理告警信息
- for (DeviceWarnCountResult deviceWarnCountResult : warnResults
- ) {
- Map<String, String> map = alarmMap.get(deviceWarnCountResult.getTenantId());
- if(map == null){
- map = new HashMap<>();
- for (DeviceAlarmEnum deviceAlarmEnum:
- DeviceAlarmEnum.values()) {
- map.put(deviceAlarmEnum.toString(),"0");
- }
- }
- map.put("warnWillFinished",deviceWarnCountResult.getWarnWillFinished());
- map.put("warnLowBattery",deviceWarnCountResult.getWarnLowBattery());
- map.put("warnAnalgesicPoor",deviceWarnCountResult.getWarnAnalgesicPoor());
- alarmMap.put(deviceWarnCountResult.getTenantId(),map);
- }
- // 遍历医院
- for (BusHospitalEntity hospital:hospitalEntities
- ) {
- DeviceUse deviceUse = new DeviceUse();
- deviceUse.setTenantId(hospital.getId());
- deviceUse.setAddress(hospital.getAddress());
- deviceUse.setName(hospital.getName());
- Map<String, String> map = alarmMap.get(hospital.getId());
- if (map == null){
- map = new HashMap<>();
- for (DeviceAlarmEnum deviceAlarmEnum:
- DeviceAlarmEnum.values()) {
- map.put(deviceAlarmEnum.toString(),"0");
- }
- map.put("warnWillFinished","0");
- map.put("warnLowBattery","0");
- map.put("warnAnalgesicPoor","0");
- }
- deviceUse.setMap(map);
- deviceUseList.add(deviceUse);
- }
- return deviceUseList;
- }
- /**
- * 查看报警数量
- */
- @Transactional(rollbackFor = Exception.class)
- public List<DeviceCountResult> selectUseDetail(BusDeviceAlarmEntity query){
- return this.baseMapper.selectDeviceCount(query);
- }
- }
|