package cn.besteam.modules.medical.service.impl; import cn.besteam.modules.medical.dto.MwWarningRecordDealDTO; import cn.besteam.modules.medical.entity.MwMessage; import cn.besteam.modules.medical.entity.MwWarningRecord; import cn.besteam.modules.medical.entity.MwWarningRecordDeal; import cn.besteam.modules.medical.mapper.MwWarningRecordDealMapper; import cn.besteam.modules.medical.service.IMwMessageService; import cn.besteam.modules.medical.service.IMwWarningRecordDealService; import cn.besteam.modules.medical.service.IMwWarningRecordService; import cn.besteam.modules.medical.vo.MwNoticeVO; import cn.besteam.modules.medical.vo.MwWarningRecordDealVO; import cn.besteam.modules.shiro.authc.util.EnvUtils; import cn.besteam.modules.system.biz.AliSmsService; import cn.besteam.modules.system.entity.SysDepartment; import cn.besteam.modules.system.service.ISysDepartmentService; import cn.besteam.modules.system.service.ISysUserRoleService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.HashMap; import java.util.Map; /** * @Description: 预警消息处理 * @author: besteam * @date: 2022-02-15 * @version: V1.0 */ @Service public class MwWarningRecordDealServiceImpl extends ServiceImpl implements IMwWarningRecordDealService { @Autowired private IMwMessageService mwMessageService; @Autowired private IMwWarningRecordService mwWarningRecordService; @Autowired private ISysUserRoleService sysUserRoleService; @Autowired private AliSmsService aliSmsService; @Autowired private ISysDepartmentService sysDepartmentService; @Override public IPage queryPageList(Integer pageNo, Integer pageSize, MwWarningRecordDealDTO mwWarningRecordDealDTO) { Page page = new Page<>(pageNo, pageSize); IPage result = baseMapper.queryPageList(page, mwWarningRecordDealDTO); return result; } @Override public Boolean add(MwWarningRecordDeal mwWarningRecordDeal) { if(mwWarningRecordDeal.getWarningRecordId()!=null) { String[] warningRecordIds=mwWarningRecordDeal.getWarningRecordId().split(","); for(String warningRecordId_:warningRecordIds) { Integer warningRecordId = Integer.valueOf(warningRecordId_.trim()); MwWarningRecord mwWarningRecord = mwWarningRecordService.getById(warningRecordId); if (mwWarningRecordDeal.getType() == 1) {//提醒 String content = ""; String userIds = ""; String userPhones = ""; Integer hospitalId = 0; Integer count = mwWarningRecordService.count(new QueryWrapper() .eq("hospital_id", mwWarningRecord.getHospitalId()) .eq("status", 1)); hospitalId = mwWarningRecord.getHospitalId(); SysDepartment sysDepartment = sysDepartmentService.getById(hospitalId); if(sysDepartment!=null){ content = sysDepartment.getDepartName()+",温馨提醒,您有" + count + "条预警未处理,请及时处理!"; }else { content = "温馨提醒,您有" + count + "条预警未处理,请及时处理!"; } if (mwWarningRecord != null) { hospitalId = mwWarningRecord.getHospitalId(); //温馨提醒,您有X条预警未处理,请及时处理! if (mwWarningRecordDeal.getRemindWay() != null && mwWarningRecordDeal.getRemindWay().contains("1")) {//短信 if (mwWarningRecord.getLevel() == 2) {//2等级预警通知一级预警人员 userPhones = sysUserRoleService.getUserPhoneList("23", hospitalId);//一级预警人员 } else if (mwWarningRecord.getLevel() == 3) {//3等级预警通知一二级预警人员 userPhones = sysUserRoleService.getUserPhoneList("23,24", hospitalId);//一,二级预警人员 } Map param = new HashMap<>(); //todo 短信发送通知消息 //aliSmsService.sendMessage(userPhones, param); } else if (mwWarningRecordDeal.getRemindWay() != null && mwWarningRecordDeal.getRemindWay().contains("2")) {//通知消息 MwMessage mwMessage = new MwMessage(); mwMessage.setTitle("预警提醒"); mwMessage.setPromulgator(EnvUtils.getUser().getName()); if (mwWarningRecord != null && mwWarningRecord.getLevel() == 2) {//2等级预警通知一级预警人员 userIds = sysUserRoleService.getUserIdList("23", hospitalId);//一级预警人员 } else if (mwWarningRecord != null && mwWarningRecord.getLevel() == 3) {//3等级预警通知一二级预警人员 userIds = sysUserRoleService.getUserIdList("23,24", hospitalId);//一,二级预警人员 } mwMessage.setUserId(userIds); mwMessage.setContent(content); mwMessage.setWarningRecordId(warningRecordId); mwMessage.setStatus(0); mwMessageService.save(mwMessage); } } mwWarningRecord.setSuperviseCount(mwWarningRecord.getSuperviseCount() + 1); mwWarningRecordService.updateById(mwWarningRecord); } else { mwWarningRecord.setMessageCount(mwWarningRecord.getMessageCount() + 1); mwWarningRecordService.updateById(mwWarningRecord); } mwWarningRecordDeal.setWarningRecordId(warningRecordId+""); this.baseMapper.insert(mwWarningRecordDeal); } } return true ; } }