package com.coffee.bus.service; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.coffee.bus.entity.BusHospitalConfigEntity; import com.coffee.bus.enums.ConfigEnum; import com.coffee.bus.hospital.HospitalManagerRegister; import com.coffee.bus.hospital.config.bean.*; import com.coffee.bus.mapper.BusHospitalConfigMapper; import com.coffee.common.crud.BaseService; 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.Map; /** * @author lifang * @version 1.0.0 * @ClassName LocalBusHospitalService.java * @Description TODO * @createTime 2022年03月19日 09:27:00 */ @Service public class LocalBusHospitalConfigService extends BaseService { @Autowired @Lazy private HospitalManagerRegister managerRegister; @Override public void validateBeforeSave(BusHospitalConfigEntity entity) { } @Override public void validateBeforeUpdate(BusHospitalConfigEntity entity) { } @Override public void validateBeforeDelete(String id) { } @Override public void postSave(BusHospitalConfigEntity entity) { BusHospitalConfigEntity configEntity = this.getById(entity.getId()); managerRegister.refresh(configEntity.getTenantId(),false,true); } @Override public void postUpdate(BusHospitalConfigEntity entity) { BusHospitalConfigEntity configEntity = this.getById(entity.getId()); managerRegister.refresh(configEntity.getTenantId(),false,true); } /** * 描述: 默认配置 * @author lifang * @date 2022/5/20 11:23 * @param hospitalId * @return void */ @Transactional(rollbackFor = Exception.class) public void setDefaultConfig(String hospitalId, ConfigEnum type){ //找到默认医院的配置 BusHospitalConfigEntity defaultConfig = getDefaultConfig(type); BusHospitalConfigEntity hospitalConfig = this.getOne(new QueryWrapper() .lambda() .eq(BusHospitalConfigEntity::getType, type) .eq(BusHospitalConfigEntity::getTenantId, hospitalId)); BusHospitalConfigEntity saveOrUpdate = new BusHospitalConfigEntity(); if(hospitalConfig!=null){ saveOrUpdate.setId(hospitalConfig.getId()); }; saveOrUpdate.setConfig(defaultConfig.getConfig()); saveOrUpdate.setType(type); saveOrUpdate.setTenantId(hospitalId); this.saveOrUpdate(saveOrUpdate); } public void saveDefaultConfig(){ BusHospitalConfigEntity otherConfig = new BusHospitalConfigEntity(); otherConfig.setTenantId("1"); otherConfig.setType(ConfigEnum.other); otherConfig.setConfig(getOtherDefault()); try { this.save(otherConfig); } catch (Exception e){ } BusHospitalConfigEntity undoConfig = new BusHospitalConfigEntity(); undoConfig.setTenantId("1"); undoConfig.setType(ConfigEnum.undo); undoConfig.setConfig(getUndoDefault()); try { this.save(undoConfig); } catch (Exception e){ } } public BusHospitalConfigEntity getDefaultConfig( ConfigEnum type){ return this.getOne(new QueryWrapper() .lambda() .eq(BusHospitalConfigEntity::getType,type) .eq(BusHospitalConfigEntity::getTenantId, "1")); } private Map getOtherDefault(){ FunctionExtraConfig extraConfig=new FunctionExtraConfig(); //不在服务区默认10分钟 extraConfig.setLowInfusion(10); //低输注时间默认30分钟 extraConfig.setNoSignal(30); FunctionAnalConfig anal=new FunctionAnalConfig(); //镇痛消失时间默认120分钟 anal.setDisappearTime(120); //镇痛不足判定次数3次 anal.setInsufficientCount(3); //镇痛不足判定时间60分钟 anal.setInsufficientTime(60); //镇痛不足判定类型 有效 anal.setValid(true); FunctionOtherConfig result = new FunctionOtherConfig(); result.setExtra(extraConfig); result.setAnal(anal); return JSONUtil.parseObj(result); } private Map getUndoDefault(){ FunctionFinishMonitorConfig finishMonitorConfig = new FunctionFinishMonitorConfig(); finishMonitorConfig.setEnable(true); //不在服务区到结束时间默认14天 finishMonitorConfig.setNoSignalInterval(14); //关机到结束时间默认14天 finishMonitorConfig.setShutDownInterval(14); FunctionAutoUndoConfig autoUndoConfig = new FunctionAutoUndoConfig(); autoUndoConfig.setEnable(true); autoUndoConfig.setUndoByType(true); //不在服务区到撤泵时间 默认60分钟 autoUndoConfig.setNoSignalInterval(60); //关机到撤泵时间 默认60分钟 autoUndoConfig.setShutDownInterval(60); FunctionManualUndoConfig manualUndoConfig = new FunctionManualUndoConfig(); manualUndoConfig.setEnable(false); FunctionUndoConfig result = new FunctionUndoConfig(); result.setAuto(autoUndoConfig); result.setFinishMonitor(finishMonitorConfig); result.setManual(manualUndoConfig); return JSONUtil.parseObj(result); } }