package com.coffee.bus.service; 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.coffee.bus.entity.BusDeviceAlarmEntity; import com.coffee.bus.entity.BusHospitalEntity; import com.coffee.bus.enums.DeviceAlarmEnum; import com.coffee.bus.mapper.BusDeviceAlarmMapper; import com.coffee.bus.mapper.BusHospitalMapper; import com.coffee.bus.service.dto.*; import com.coffee.common.crud.BaseService; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; 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 @AllArgsConstructor public class LocalBusDeviceAlarmService extends BaseService { @Autowired private BusDeviceAlarmMapper busDeviceAlarmMapper; @Autowired private BusHospitalMapper hospitalMapper; @Override public void validateBeforeSave(BusDeviceAlarmEntity entity) { } @Override public void validateBeforeUpdate(BusDeviceAlarmEntity entity) { } @Override public void validateBeforeDelete(String id) { } public IPage 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().lambda().eq(BusDeviceAlarmEntity::getId,id).set(BusDeviceAlarmEntity::getCause,cause)); } /** * 查看报警数量 */ @Transactional(rollbackFor = Exception.class) public List selectCountAlarm(DeviceAlarmQuery query){ QueryWrapper 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 hospitalEntities = hospitalMapper.selectList(busHospitalEntityQueryWrapper); List deviceUseList = new ArrayList<>(); // 获取 报警所有信息数量 List alarmResults = busDeviceAlarmMapper.selectAlarmCount(query); //处理报警信息 Map> alarmMap= new HashMap<>(); for (DeviceAlarmCountResult deviceAlarmResult : alarmResults ) { Map 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 warnResults = busDeviceAlarmMapper.selectWarnCount(query); //处理告警信息 for (DeviceWarnCountResult deviceWarnCountResult : warnResults ) { Map 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 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 selectUseDetail(BusDeviceAlarmEntity query){ return busDeviceAlarmMapper.selectDeviceCount(query); } }