diff --git a/src/main/java/com/ccsens/carbasics/bean/dto/ButtonDto.java b/src/main/java/com/ccsens/carbasics/bean/dto/ButtonDto.java index 03149c7..c643b55 100644 --- a/src/main/java/com/ccsens/carbasics/bean/dto/ButtonDto.java +++ b/src/main/java/com/ccsens/carbasics/bean/dto/ButtonDto.java @@ -43,6 +43,8 @@ public class ButtonDto { private String idcard; @ApiModelProperty("设备userId") private Long userId; + @ApiModelProperty("启动时间") + private Long time = System.currentTimeMillis(); } @Data @ApiModel("状态更改-mq入参") diff --git a/src/main/java/com/ccsens/carbasics/bean/vo/EquipmentVo.java b/src/main/java/com/ccsens/carbasics/bean/vo/EquipmentVo.java index 04727de..d425179 100644 --- a/src/main/java/com/ccsens/carbasics/bean/vo/EquipmentVo.java +++ b/src/main/java/com/ccsens/carbasics/bean/vo/EquipmentVo.java @@ -14,6 +14,8 @@ public class EquipmentVo { @ApiModel("未完成的设备信息") @Data public static class Unfinished{ + @ApiModelProperty("设备状态(0身份证识别,1进行中,2结束)") + private Byte equipmentStatus; @ApiModelProperty("开始时间") private Long time; @ApiModelProperty("通知内容") @@ -21,4 +23,18 @@ public class EquipmentVo { @ApiModelProperty("总倒计时") private Long totalCountdown; } + + @Data + @ApiModel("设备信息") + public static class ButtonInfo{ + @ApiModelProperty("id") + private Long id; + @ApiModelProperty("设备userId") + private Long userId; + @ApiModelProperty("设备类型(0分诊台,1收费处,2ct室,3溶栓区)") + private Byte type; + @ApiModelProperty("qcp的医院id") + private Long hospitalId; + } + } diff --git a/src/main/java/com/ccsens/carbasics/bean/vo/message/ButtonStartVo.java b/src/main/java/com/ccsens/carbasics/bean/vo/message/ButtonStartVo.java new file mode 100644 index 0000000..71a7edf --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/bean/vo/message/ButtonStartVo.java @@ -0,0 +1,21 @@ +package com.ccsens.carbasics.bean.vo.message; + +import lombok.Data; + +@Data +public class ButtonStartVo { + + private String type = "buttonStart"; + private Data data; + + @lombok.Data + public static class Data{ + private String name; + private String content; + private Long totalCountdown; + private Long realCountdown; + private Long time; + private Long firstAidId; + } + +} diff --git a/src/main/java/com/ccsens/carbasics/bean/vo/message/UpdateStatusVo.java b/src/main/java/com/ccsens/carbasics/bean/vo/message/UpdateStatusVo.java new file mode 100644 index 0000000..cef9f24 --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/bean/vo/message/UpdateStatusVo.java @@ -0,0 +1,22 @@ +package com.ccsens.carbasics.bean.vo.message; + +import lombok.Data; + +@Data +public class UpdateStatusVo { + private String type = "updateStatus"; + private Data data; + + @lombok.Data + public static class Data{ + private Long time; + private Byte status; + private Long firstAidId; + + public Data(Long time, Byte status, Long firstAidId) { + this.time = time; + this.status = status; + this.firstAidId = firstAidId; + } + } +} diff --git a/src/main/java/com/ccsens/carbasics/mq/QcpButtonReceive.java b/src/main/java/com/ccsens/carbasics/mq/QcpButtonReceive.java index 2daf767..8d6deb0 100644 --- a/src/main/java/com/ccsens/carbasics/mq/QcpButtonReceive.java +++ b/src/main/java/com/ccsens/carbasics/mq/QcpButtonReceive.java @@ -1,26 +1,41 @@ package com.ccsens.carbasics.mq; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.ccsens.carbasics.bean.dto.ButtonDto; import com.ccsens.carbasics.bean.dto.PatientDto; +import com.ccsens.carbasics.bean.po.EquipmentInform; import com.ccsens.carbasics.bean.po.EquipmentStatus; import com.ccsens.carbasics.bean.po.FirstAid; +import com.ccsens.carbasics.bean.vo.EquipmentVo; +import com.ccsens.carbasics.bean.vo.message.ButtonStartVo; +import com.ccsens.carbasics.bean.vo.message.UpdateStatusVo; import com.ccsens.carbasics.persist.dao.*; import com.ccsens.carbasics.service.IFirstAidService; import com.ccsens.carbasics.util.Constant; import com.ccsens.carbasics.util.DefaultCodeError; +import com.ccsens.util.JacksonUtil; import com.ccsens.util.RedisUtil; +import com.ccsens.util.bean.message.common.InMessage; +import com.ccsens.util.bean.message.common.MessageConstant; +import com.ccsens.util.bean.message.common.MessageRule; +import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.util.exception.BaseException; +import com.fasterxml.jackson.core.JsonProcessingException; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * 暴风眼接收qcp一键通知相关消息 @@ -47,6 +62,10 @@ public class QcpButtonReceive { private EquipmentInformDao equipmentInformDao; @Resource private FirstAidDao firstAidDao; + @Resource + private AmqpTemplate amqpTemplate; + @Resource + private OrganizationMemberDao organizationMemberDao; @RabbitHandler public void process(String messageJson) throws Exception { @@ -71,13 +90,14 @@ public class QcpButtonReceive { * 身份证识别处理 * @param param 参数 */ - public void idCardDiscern(ButtonDto.IdCardInfoMq param) { + public void idCardDiscern(ButtonDto.IdCardInfoMq param) throws Exception { log.info("暴风眼身份证识别接收到的参数{}",param); String idCard = (String) redisUtil.get(param.getName() + param.getIdcard()); if (StrUtil.isNotBlank(idCard)) { return; } redisUtil.set(param.getName()+param.getIdcard(),param.getIdcard(),300); + //根据设备userId查询项目id Long projectId = qcpDao.queryProjectByUserId(param.getUserId()); log.info("查询到的项目id:{}",projectId); @@ -89,8 +109,20 @@ public class QcpButtonReceive { PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); BeanUtil.copyProperties(param,savePatient); savePatient.setGender(param.getSex()); - firstAidService.getFirstAid(savePatient,param.getUserId(), (byte) 5,organizationId); + FirstAid firstAid = firstAidService.getFirstAid(savePatient, param.getUserId(), (byte) 5, organizationId); + //查询设备信息,并保存状态 + EquipmentVo.ButtonInfo buttonInfo = qcpDao.queryEquipmentInfoByUserId(param.getUserId()); + if (ObjectUtil.isNotNull(buttonInfo)) { + EquipmentStatus equipmentStatus = new EquipmentStatus(); + equipmentStatus.setId(snowflake.nextId()); + equipmentStatus.setEquipmentId(buttonInfo.getId()); + equipmentStatus.setEquipmentStatus((byte) 0); + equipmentStatus.setFirstAidId(firstAid.getId()); + equipmentStatus.setTime(System.currentTimeMillis()); + } + sendDoctor(firstAid.getId(), firstAid.getName(), firstAid.getHospitalId()); } + } } @@ -99,14 +131,63 @@ public class QcpButtonReceive { * 一键启动处理 * @param param 参数 */ - public void buttonStart(ButtonDto.ButtonStartMq param) { + public void buttonStart(ButtonDto.ButtonStartMq param) throws Exception { log.info("暴风眼一键启动接收到的参数{}",param); - Long projectId = qcpDao.queryProjectByUserId(param.getUserId()); - Long organizationId = organizationProjectDao.queryByProjectId(projectId); - FirstAid firstAid = firstAidDao.queryByOidAndIdcard(organizationId,param.getIdcard()); - if (ObjectUtil.isNotNull(firstAid)) { - EquipmentStatus equipmentStatus = new EquipmentStatus(); - equipmentStatus.setId(snowflake.nextId()); + //查询设备信息 + EquipmentVo.ButtonInfo buttonInfo = qcpDao.queryEquipmentInfoByUserId(param.getUserId()); + if (ObjectUtil.isNotNull(buttonInfo)) { + Long projectId = qcpDao.queryProjectByUserId(param.getUserId()); + Long organizationId = organizationProjectDao.queryByProjectId(projectId); + FirstAid firstAid = firstAidDao.queryByOidAndIdcard(organizationId,param.getIdcard()); + if (ObjectUtil.isNotNull(firstAid)) { + Long firstAidId = firstAid.getId(); + EquipmentStatus equipmentStatus = equipmentStatusDao.queryByEidAndFid(buttonInfo.getId(), firstAidId); + if (ObjectUtil.isNotNull(equipmentStatus)) { + return; + } + EquipmentStatus triageStatus = new EquipmentStatus(); + triageStatus.setId(snowflake.nextId()); + triageStatus.setFirstAidId(firstAidId); + triageStatus.setEquipmentId(buttonInfo.getId()); + triageStatus.setEquipmentStatus(Constant.Equipment.RUNNING_STATUS); + triageStatus.setTime(param.getTime()); + equipmentStatusDao.insertSelective(equipmentStatus); + Long hospitalId = buttonInfo.getHospitalId(); + String name = firstAid.getName(); + Long time = param.getTime(); + sendEquipmentStart(firstAidId, hospitalId, name, time); + sendDoctor(firstAidId, firstAid.getName(), firstAid.getHospitalId()); + } + } + + } + + public void sendEquipmentStart(Long firstAidId, Long hospitalId, String name, Long time) throws JsonProcessingException { + //查询医院其他设备 + List buttonInfoList = qcpDao.queryOtherEquipment(hospitalId); + log.info("查询医院其他设备:{}",buttonInfoList); + if (CollectionUtil.isNotEmpty(buttonInfoList)) { + for (EquipmentVo.ButtonInfo info : buttonInfoList) { + //查询需要发送的消息内容 + EquipmentInform equipmentInform = equipmentInformDao.queryByType(info.getType()); + HashSet userSet = new HashSet<>(); + userSet.add(info.getUserId().toString()); + ButtonStartVo.Data data = new ButtonStartVo.Data(); + data.setName(name); + data.setContent(name + equipmentInform.getContent()); + data.setFirstAidId(firstAidId); + data.setTotalCountdown(equipmentInform.getTotalCountdown()); + data.setRealCountdown(System.currentTimeMillis() - time); + data.setTime(time); + ButtonStartVo buttonStartVo = new ButtonStartVo(); + buttonStartVo.setData(data); + InMessage inMessage = new InMessage(); + inMessage.setTos(userSet); + inMessage.setData(JacksonUtil.beanToJson(buttonStartVo)); + inMessage.setToDomain(MessageConstant.DomainType.User); + log.info("一键启动调用消息系统传参{}",inMessage); + amqpTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME,JacksonUtil.beanToJson(inMessage)); + } } } @@ -115,8 +196,96 @@ public class QcpButtonReceive { * 修改状态处理 * @param param 参数 */ - public void updateStatus(ButtonDto.UpDateStatusMq param) { + public void updateStatus(ButtonDto.UpDateStatusMq param) throws Exception { + log.info("暴风眼修改状态接收到的参数{}",param); + EquipmentVo.ButtonInfo buttonInfo = qcpDao.queryEquipmentInfoByUserId(param.getUserId()); + if (ObjectUtil.isNull(buttonInfo)) { + return; + } + FirstAid firstAid = firstAidDao.selectByPrimaryKey(param.getFirstAidId()); + if (firstAid == null) { + log.info("{}未找到急救", param.getFirstAidId()); + return; + } + EquipmentStatus equipmentStatus = equipmentStatusDao.queryByEidAndFidAndStatus(buttonInfo.getId(),param.getFirstAidId(),param.getStatus()); + if (ObjectUtil.isNotNull(equipmentStatus)) { + return; + } + if (1 == buttonInfo.getType()) { + if (param.getStatus() ==1 || param.getStatus() == 2) { + //查询分诊台的设备id + List triageTableList = qcpDao.queryTriageTable(buttonInfo.getHospitalId()); + log.info("查询分诊台的设备id列表:{}",triageTableList); + if (CollectionUtil.isNotEmpty(triageTableList)) { + HashSet userSet = new HashSet<>(); + for (EquipmentVo.ButtonInfo triageTable : triageTableList) { + userSet.add(triageTable.getUserId().toString()); + //保存分诊台关闭的信息 + EquipmentStatus triageTableStatus = new EquipmentStatus(); + triageTableStatus.setId(snowflake.nextId()); + triageTableStatus.setTime(System.currentTimeMillis()); + triageTableStatus.setEquipmentStatus((byte) 2); + triageTableStatus.setEquipmentId(triageTable.getId()); + triageTableStatus.setFirstAidId(param.getFirstAidId()); + equipmentStatusDao.insertSelective(triageTableStatus); + } + UpdateStatusVo.Data data = new UpdateStatusVo.Data(System.currentTimeMillis(), (byte) 2,param.getFirstAidId()); + UpdateStatusVo updateStatusVo = new UpdateStatusVo(); + updateStatusVo.setData(data); + InMessage inMessage = new InMessage(); + inMessage.setTos(userSet); + inMessage.setData(JacksonUtil.beanToJson(updateStatusVo)); + inMessage.setToDomain(MessageConstant.DomainType.User); + log.info("更改状态调用消息系统传参{}",inMessage); + amqpTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME,JacksonUtil.beanToJson(inMessage)); + } + + } + } + //保存设备更改状态的信息 + EquipmentStatus saveEquipmentStatus = new EquipmentStatus(); + saveEquipmentStatus.setId(snowflake.nextId()); + saveEquipmentStatus.setTime(System.currentTimeMillis()); + saveEquipmentStatus.setEquipmentStatus(param.getStatus()); + saveEquipmentStatus.setEquipmentId(buttonInfo.getId()); + saveEquipmentStatus.setFirstAidId(param.getFirstAidId()); + equipmentStatusDao.insertSelective(saveEquipmentStatus); + sendDoctor(param.getFirstAidId(), firstAid.getName(), firstAid.getHospitalId()); + } + + /** + * 通知医院的所有成员病例进度 + * @param firstAidId 病例 + */ + private void sendDoctor(Long firstAidId, String firstAidName, Long organizationId) throws Exception { + // 查询医院所有成员 + List userIds = organizationMemberDao.queryUserIdsByOrganizationId(organizationId); + // 查询当前未完成的状态 + EquipmentVo.Unfinished inform = equipmentStatusDao.getUnfinished(firstAidId); + log.info("未完成的设备:{}", inform); + if (inform == null) { + return; + } + Set userIdSet = new HashSet<>(); + userIds.forEach(userId -> userIdSet.add(userId + "")); + // 封装对象 + ButtonStartVo.Data data = new ButtonStartVo.Data(); + data.setName(firstAidName); + data.setContent(inform.getEquipmentStatus() == Constant.Equipment.ID_CARD_IDENTIFY_STATUS ? firstAidName : firstAidName + inform.getContent()); + data.setFirstAidId(firstAidId); + data.setTotalCountdown(inform.getTotalCountdown()); + data.setRealCountdown(System.currentTimeMillis() - inform.getTime()); + data.setTime(inform.getTime()); + ButtonStartVo buttonStartVo = new ButtonStartVo(); + buttonStartVo.setData(data); + MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); + messageRule.setAckRule(MessageRule.AckRule.NONE); + messageRule.setOfflineDiscard((byte) 1); + InMessage inMessage = InMessage.newToUserMessage(null, userIdSet, null, messageRule, ""); + log.info("发送消息:{}", inMessage); + //发送消息 + amqpTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME,JacksonUtil.beanToJson(inMessage)); } } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentInformDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentInformDao.java index a67e85f..6649b9b 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentInformDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentInformDao.java @@ -1,8 +1,16 @@ package com.ccsens.carbasics.persist.dao; +import com.ccsens.carbasics.bean.po.EquipmentInform; import com.ccsens.carbasics.persist.mapper.EquipmentInformMapper; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @Repository public interface EquipmentInformDao extends EquipmentInformMapper { + /** + * 根据类型查询需要发送的内容 + * @param type 设备类型 + * @return 发送内容 + */ + EquipmentInform queryByType(@Param("type") Byte type); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentStatusDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentStatusDao.java index 1ed48e2..f0f502d 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentStatusDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/EquipmentStatusDao.java @@ -1,6 +1,8 @@ package com.ccsens.carbasics.persist.dao; + import com.ccsens.carbasics.bean.vo.EquipmentVo; +import com.ccsens.carbasics.bean.po.EquipmentStatus; import com.ccsens.carbasics.persist.mapper.EquipmentStatusMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -21,14 +23,30 @@ public interface EquipmentStatusDao extends EquipmentStatusMapper { /** * 查询虚拟设备的ID * @param type 虚拟设备类型 - * @return + * @return 虚拟设备的ID */ Long getVirtual(@Param("type") byte type); /** * 查询未完成设备信息 * @param firstAidId 急救ID - * @return + * @return 未完成设备信息 */ EquipmentVo.Unfinished getUnfinished(@Param("firstAidId") Long firstAidId); + /** + * 根据设备id和急救id查询是否启动过 + * @param eid 设备id + * @param fid 急救id + * @return 设备状态 + */ + EquipmentStatus queryByEidAndFid(@Param("eid") Long eid,@Param("fid") Long fid); + + /** + * 根据设备id和急救id和状态查询是否已存在 + * @param eid 设备id + * @param fid 急救id + * @param status 设备状态 + * @return 设备状态信息 + */ + EquipmentStatus queryByEidAndFidAndStatus(@Param("eid") Long eid,@Param("fid") Long fid,@Param("status") Byte status); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java index 2c56722..10d9053 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java @@ -110,4 +110,11 @@ public interface OrganizationDao extends OrganizationMapper { * @return 返回医院列表 */ List hospitalRankStatistical(@Param("areaId")String areaId,@Param("level")String level, @Param("type")byte type); + + /** + * 查询医院ID + * @param hospitalId 医院ID + * @return QCP医院ID + */ + Long getQcpHospitalId(@Param("id") Long hospitalId); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/QcpDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/QcpDao.java index 6d8a0f0..27bd19b 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/QcpDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/QcpDao.java @@ -1,8 +1,11 @@ package com.ccsens.carbasics.persist.dao; +import com.ccsens.carbasics.bean.vo.EquipmentVo; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 查询qcp中的信息 * @author AUSU @@ -15,4 +18,25 @@ public interface QcpDao { * @return 项目id */ Long queryProjectByUserId(@Param("userId") Long userId); + + /** + * 根据设备userId查询设备信息 + * @param userId 设备userId + * @return 设备信息 + */ + EquipmentVo.ButtonInfo queryEquipmentInfoByUserId(@Param("userId") Long userId); + + /** + * 根据医院id查询其他 + * @param hospitalId 医院id + * @return 其他设备列表 + */ + List queryOtherEquipment(@Param("hid") Long hospitalId); + + /** + * 查询分诊台设备id + * @param hospitalId qcp医院id + * @return 分诊台列表 + */ + List queryTriageTable(@Param("hid") Long hospitalId); } diff --git a/src/main/java/com/ccsens/carbasics/service/EquipmentService.java b/src/main/java/com/ccsens/carbasics/service/EquipmentService.java index 36b6b64..d4e5da7 100644 --- a/src/main/java/com/ccsens/carbasics/service/EquipmentService.java +++ b/src/main/java/com/ccsens/carbasics/service/EquipmentService.java @@ -2,14 +2,13 @@ package com.ccsens.carbasics.service; import cn.hutool.core.lang.Snowflake; import com.ccsens.carbasics.bean.dto.EquipmentDto; -import com.ccsens.carbasics.bean.po.EquipmentInform; import com.ccsens.carbasics.bean.po.EquipmentStatus; import com.ccsens.carbasics.bean.po.FirstAid; -import com.ccsens.carbasics.bean.po.OrganizationMember; import com.ccsens.carbasics.bean.vo.EquipmentVo; import com.ccsens.carbasics.mq.QcpButtonReceive; import com.ccsens.carbasics.persist.dao.EquipmentStatusDao; import com.ccsens.carbasics.persist.dao.FirstAidDao; +import com.ccsens.carbasics.persist.dao.OrganizationDao; import com.ccsens.carbasics.persist.dao.OrganizationMemberDao; import com.ccsens.carbasics.util.Constant; import com.ccsens.carbasics.util.DefaultCodeError; @@ -26,7 +25,6 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import javax.validation.constraints.NotNull; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -49,13 +47,12 @@ public class EquipmentService implements IEquipmentService { @Resource private QcpButtonReceive qcpButtonReceive; @Resource - private IMessageService messageService; - @Resource - private OrganizationMemberDao organizationMemberDao; + private OrganizationDao organizationDao; + @Override - public CodeError.Code start(EquipmentDto.Start param, Long userId) { + public CodeError.Code start(EquipmentDto.Start param, Long userId) throws JsonProcessingException { Long firstAidId = param.getFirstAidId(); // TODO 1.身份校验 // 病例是否存在 @@ -83,32 +80,11 @@ public class EquipmentService implements IEquipmentService { status.setTime(System.currentTimeMillis()); equipmentStatusDao.insertSelective(status); log.info("保存分诊台启动:{}", status); - //TODO 通知各设备 + // 使用QCP的医院ID + Long qcpHospitalId = organizationDao.getQcpHospitalId(firstAid.getHospitalId()); + qcpButtonReceive.sendEquipmentStart(firstAidId, qcpHospitalId, firstAid.getName(), status.getTime()); return DefaultCodeError.SUCCESS; } - /** - * 通知医院的所有成员病例进度 - * @param firstAidId 病例 - */ - private void sendDoctor(Long firstAidId, String firstAidName, Long organizationId) throws Exception { - // 查询医院所有成员 - List userIds = organizationMemberDao.queryUserIdsByOrganizationId(organizationId); - // 查询当前未完成的状态 - EquipmentVo.Unfinished inform = equipmentStatusDao.getUnfinished(firstAidId); - log.info("未完成的设备:{}", inform); - if (inform == null) { - return; - } - Set userIdSet = new HashSet<>(); - userIds.forEach(userId -> userIdSet.add(userId + "")); - // 封装对象 - MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); - messageRule.setAckRule(MessageRule.AckRule.NONE); - messageRule.setOfflineDiscard((byte) 1); - InMessage inMessage = InMessage.newToUserMessage(null, userIdSet, null, messageRule, ""); - log.info("发送消息:{}", inMessage); - //发送消息 - messageService.sendTo(inMessage); - } + } diff --git a/src/main/java/com/ccsens/carbasics/service/IEquipmentService.java b/src/main/java/com/ccsens/carbasics/service/IEquipmentService.java index a7caf7a..9262c4c 100644 --- a/src/main/java/com/ccsens/carbasics/service/IEquipmentService.java +++ b/src/main/java/com/ccsens/carbasics/service/IEquipmentService.java @@ -2,6 +2,7 @@ package com.ccsens.carbasics.service; import com.ccsens.carbasics.bean.dto.EquipmentDto; import com.ccsens.util.CodeError; +import com.fasterxml.jackson.core.JsonProcessingException; /** * @author whj @@ -13,5 +14,5 @@ public interface IEquipmentService { * @param userId 启动者信息 * @return 启动结果 */ - CodeError.Code start(EquipmentDto.Start param, Long userId); + CodeError.Code start(EquipmentDto.Start param, Long userId) throws JsonProcessingException; } diff --git a/src/main/resources/mapper_dao/EquipmentInformDao.xml b/src/main/resources/mapper_dao/EquipmentInformDao.xml index d9b3e8f..4de4fe0 100644 --- a/src/main/resources/mapper_dao/EquipmentInformDao.xml +++ b/src/main/resources/mapper_dao/EquipmentInformDao.xml @@ -2,4 +2,16 @@ + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/EquipmentStatusDao.xml b/src/main/resources/mapper_dao/EquipmentStatusDao.xml index 9efdf10..07a16c7 100644 --- a/src/main/resources/mapper_dao/EquipmentStatusDao.xml +++ b/src/main/resources/mapper_dao/EquipmentStatusDao.xml @@ -32,6 +32,7 @@ + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/OrganizationDao.xml b/src/main/resources/mapper_dao/OrganizationDao.xml index daae5aa..c782dc4 100644 --- a/src/main/resources/mapper_dao/OrganizationDao.xml +++ b/src/main/resources/mapper_dao/OrganizationDao.xml @@ -462,5 +462,20 @@ d.submit_status = 1 ORDER BY `value` DESC + diff --git a/src/main/resources/mapper_dao/QcpDao.xml b/src/main/resources/mapper_dao/QcpDao.xml index 5990d29..940d611 100644 --- a/src/main/resources/mapper_dao/QcpDao.xml +++ b/src/main/resources/mapper_dao/QcpDao.xml @@ -13,4 +13,45 @@ AND h.rec_status = 0 AND he.user_id = #{userId} + + + + + + \ No newline at end of file