From b9e1c79c50367f15cb5c589222ccb3c9f8b443fe Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 16 Dec 2020 14:39:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?20201216=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bean/dto/Message/CarRecordMessageDto.java | 41 +++++++++++- .../wisdomcar/bean/po/FirstAidRecord.java | 11 ++++ .../bean/po/FirstAidRecordExample.java | 60 +++++++++++++++++ .../com/ccsens/wisdomcar/bean/po/Step.java | 11 ++++ .../ccsens/wisdomcar/bean/po/StepExample.java | 60 +++++++++++++++++ .../bean/vo/Message/CarRecordMessageVo.java | 7 +- .../com/ccsens/wisdomcar/bean/vo/RfidVo.java | 2 + .../com/ccsens/wisdomcar/bean/vo/StepVo.java | 16 +++++ .../ccsens/wisdomcar/persist/dao/StepDao.java | 5 +- .../wisdomcar/rabbitMQ/RabbitController.java | 64 ++++++++++++++++++- .../wisdomcar/service/RecordService.java | 44 ++++++++----- wisdomcar/src/main/resources/application.yml | 4 +- .../src/main/resources/mapper_dao/StepDao.xml | 10 +-- .../mapper_raw/FirstAidRecordMapper.xml | 27 ++++++-- .../main/resources/mapper_raw/StepMapper.xml | 25 ++++++-- 15 files changed, 348 insertions(+), 39 deletions(-) create mode 100644 wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java index 1976718d..ae35cdc0 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java @@ -10,11 +10,15 @@ public class CarRecordMessageDto { /** * 平车编号 */ - private String carNumber; + private String authId; /** * 类型 0开始 1体重 2rfid, 3称重一 4称重二 5称重三 6称重四 7震动 8溶栓 9团注 10维持 */ private byte type; + /** + * + */ + private int addr; /** * 类型对应的值, */ @@ -24,4 +28,39 @@ public class CarRecordMessageDto { */ private Long time; + public byte getType(){ + switch (addr){ + case 3: + return 0; + case 16: + case 17: + return 1; + case 18: + return 8; + case 19: + return 9; + case 20: + return 10; + case 21: + case 22: + case 23: + return 7; + case 25: + case 26: + return 3; + case 27: + case 28: + return 4; + case 29: + case 30: + return 5; + case 31: + case 32: + return 6; + case 24: + default: + return 2; + } + } + } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecord.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecord.java index ca75bb38..953bea28 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecord.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecord.java @@ -14,6 +14,8 @@ public class FirstAidRecord implements Serializable { private Long beginTime; + private Long stepId; + private Date createdAt; private Date updatedAt; @@ -62,6 +64,14 @@ public class FirstAidRecord implements Serializable { this.beginTime = beginTime; } + public Long getStepId() { + return stepId; + } + + public void setStepId(Long stepId) { + this.stepId = stepId; + } + public Date getCreatedAt() { return createdAt; } @@ -97,6 +107,7 @@ public class FirstAidRecord implements Serializable { sb.append(", type=").append(type); sb.append(", value=").append(value); sb.append(", beginTime=").append(beginTime); + sb.append(", stepId=").append(stepId); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecordExample.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecordExample.java index 19b035fb..8e44c8e6 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecordExample.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/FirstAidRecordExample.java @@ -415,6 +415,66 @@ public class FirstAidRecordExample { return (Criteria) this; } + public Criteria andStepIdIsNull() { + addCriterion("step_id is null"); + return (Criteria) this; + } + + public Criteria andStepIdIsNotNull() { + addCriterion("step_id is not null"); + return (Criteria) this; + } + + public Criteria andStepIdEqualTo(Long value) { + addCriterion("step_id =", value, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdNotEqualTo(Long value) { + addCriterion("step_id <>", value, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdGreaterThan(Long value) { + addCriterion("step_id >", value, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdGreaterThanOrEqualTo(Long value) { + addCriterion("step_id >=", value, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdLessThan(Long value) { + addCriterion("step_id <", value, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdLessThanOrEqualTo(Long value) { + addCriterion("step_id <=", value, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdIn(List values) { + addCriterion("step_id in", values, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdNotIn(List values) { + addCriterion("step_id not in", values, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdBetween(Long value1, Long value2) { + addCriterion("step_id between", value1, value2, "stepId"); + return (Criteria) this; + } + + public Criteria andStepIdNotBetween(Long value1, Long value2) { + addCriterion("step_id not between", value1, value2, "stepId"); + return (Criteria) this; + } + public Criteria andCreatedAtIsNull() { addCriterion("created_at is null"); return (Criteria) this; diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/Step.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/Step.java index 9ec033a2..8b248929 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/Step.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/Step.java @@ -12,6 +12,8 @@ public class Step implements Serializable { private Integer sequence; + private Byte stepType; + private Date createdAt; private Date updatedAt; @@ -52,6 +54,14 @@ public class Step implements Serializable { this.sequence = sequence; } + public Byte getStepType() { + return stepType; + } + + public void setStepType(Byte stepType) { + this.stepType = stepType; + } + public Date getCreatedAt() { return createdAt; } @@ -86,6 +96,7 @@ public class Step implements Serializable { sb.append(", name=").append(name); sb.append(", code=").append(code); sb.append(", sequence=").append(sequence); + sb.append(", stepType=").append(stepType); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/StepExample.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/StepExample.java index 57c9d59e..58df6650 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/StepExample.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/StepExample.java @@ -365,6 +365,66 @@ public class StepExample { return (Criteria) this; } + public Criteria andStepTypeIsNull() { + addCriterion("step_type is null"); + return (Criteria) this; + } + + public Criteria andStepTypeIsNotNull() { + addCriterion("step_type is not null"); + return (Criteria) this; + } + + public Criteria andStepTypeEqualTo(Byte value) { + addCriterion("step_type =", value, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeNotEqualTo(Byte value) { + addCriterion("step_type <>", value, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeGreaterThan(Byte value) { + addCriterion("step_type >", value, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeGreaterThanOrEqualTo(Byte value) { + addCriterion("step_type >=", value, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeLessThan(Byte value) { + addCriterion("step_type <", value, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeLessThanOrEqualTo(Byte value) { + addCriterion("step_type <=", value, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeIn(List values) { + addCriterion("step_type in", values, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeNotIn(List values) { + addCriterion("step_type not in", values, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeBetween(Byte value1, Byte value2) { + addCriterion("step_type between", value1, value2, "stepType"); + return (Criteria) this; + } + + public Criteria andStepTypeNotBetween(Byte value1, Byte value2) { + addCriterion("step_type not between", value1, value2, "stepType"); + return (Criteria) this; + } + public Criteria andCreatedAtIsNull() { addCriterion("created_at is null"); return (Criteria) this; diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/Message/CarRecordMessageVo.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/Message/CarRecordMessageVo.java index de215e5a..f470aae5 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/Message/CarRecordMessageVo.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/Message/CarRecordMessageVo.java @@ -32,6 +32,10 @@ public class CarRecordMessageVo extends BaseMessageDto { * 流程 */ private String step; + /** + * 流程 + */ + private Byte stepType; } private Data data; @@ -40,7 +44,7 @@ public class CarRecordMessageVo extends BaseMessageDto { setTime(System.currentTimeMillis()); } - public CarRecordMessageVo(String carNumber,int type,String value,Long time,String step){ + public CarRecordMessageVo(String carNumber,int type,String value,Long time,String step,Byte stepType){ this(); Data d = new Data(); d.setCarNumber(carNumber); @@ -48,6 +52,7 @@ public class CarRecordMessageVo extends BaseMessageDto { d.setValue(value); d.setTime(time); d.setStep(step); + d.setStepType(stepType); setData(d); } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/RfidVo.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/RfidVo.java index 8b7079b8..ade2317b 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/RfidVo.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/RfidVo.java @@ -23,4 +23,6 @@ public class RfidVo { @ApiModelProperty("医院id") private byte hospitalId; } + + } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java new file mode 100644 index 00000000..58cf035a --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java @@ -0,0 +1,16 @@ +package com.ccsens.wisdomcar.bean.vo; + +import lombok.Data; + +/** + * @author 逗 + */ +@Data +public class StepVo { + @Data + public static class Step{ + private String stepCode; + private byte stepType; + + } +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java index 51f2d2c7..4532edb9 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java @@ -1,5 +1,6 @@ package com.ccsens.wisdomcar.persist.dao; +import com.ccsens.wisdomcar.bean.vo.StepVo; import com.ccsens.wisdomcar.persist.mapper.StepMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -15,7 +16,7 @@ public interface StepDao extends StepMapper { * @param value rfid * @return 返回流程的code */ - String getCodeByRfId(@Param("rfid") String value); + StepVo.Step getCodeByRfId(@Param("rfid") String value); - String getCodeByStepOne(); + StepVo.Step getCodeByStepOne(); } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java index 89d1be72..471b0a2c 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java @@ -2,6 +2,7 @@ package com.ccsens.wisdomcar.rabbitMQ; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.ccsens.util.bean.message.common.OutMessage; import com.ccsens.util.bean.message.common.OutMessageSet; @@ -16,7 +17,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.Set; +import java.util.*; @Slf4j @Component @@ -38,18 +39,77 @@ public class RabbitController { if (CollectionUtil.isEmpty(messageSet)) { return; } + + List carRecordMessageDtoList = new ArrayList<>(); + Map map = new HashMap<>(); messageSet.forEach(outMessage -> { CarRecordMessageDto carRecordMessageDto = JSONObject.parseObject(outMessage.getData(),CarRecordMessageDto.class); if(ObjectUtil.isNull(carRecordMessageDto)){ return; } + switch (carRecordMessageDto.getType()){ + case 2: + getWeight(carRecordMessageDtoList, map, carRecordMessageDto,16); + break; + case 3: +// getWeight(carRecordMessageDtoList, map, carRecordMessageDto,25); + break; + case 4: +// getWeight(carRecordMessageDtoList, map, carRecordMessageDto,27); + break; + case 5: +// getWeight(carRecordMessageDtoList, map, carRecordMessageDto,29); + break; + case 6: +// getWeight(carRecordMessageDtoList, map, carRecordMessageDto,31); + break; + case 7: + map.put(carRecordMessageDto.getAddr(),Long.parseLong(carRecordMessageDto.getValue())); + if(map.get(18) != null && map.get(19) != null && map.get(20) != null ){ + String value = map.get(18) + "," + map.get(19) + "," + map.get(20); + carRecordMessageDto.setValue(value); + carRecordMessageDtoList.add(carRecordMessageDto); + } + break; + default: + carRecordMessageDtoList.add(carRecordMessageDto); + break; + } + }); + + carRecordMessageDtoList.forEach(carRecordMessageDto -> { try { recordService.disposeMessage(carRecordMessageDto); } catch (Exception e) { - log.error("处理平车信息异常",e); e.printStackTrace(); } }); + + } + + private void getWeight(List carRecordMessageDtoList, Map map, CarRecordMessageDto carRecordMessageDto,int highAddr) { + boolean flag = carRecordMessageDto.getAddr() == highAddr; + Long weight = getWeight(map, carRecordMessageDto, flag ? highAddr + 1 : highAddr,flag); + if(weight == null){ + return; + } + carRecordMessageDto.setValue(weight.toString()); + carRecordMessageDtoList.add(carRecordMessageDto); + } + + private Long getWeight(Map map, CarRecordMessageDto carRecordMessageDto,int value2,boolean firstHigh) { + if(map.get(value2) == null){ + map.put(carRecordMessageDto.getAddr(),Long.parseLong(carRecordMessageDto.getValue())); + return null; + }else { + long weight1 = Long.parseLong(carRecordMessageDto.getValue()); + long weight2 = map.get(value2); + if(firstHigh){ + return weight1 << 16 + weight2; + }else { + return weight2 << 16 + weight1; + } + } } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java index d0d1cdc8..a00d2d97 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java @@ -12,6 +12,7 @@ import com.ccsens.util.bean.message.common.MessageRule; import com.ccsens.wisdomcar.bean.dto.Message.CarRecordMessageDto; import com.ccsens.wisdomcar.bean.po.*; import com.ccsens.wisdomcar.bean.vo.Message.CarRecordMessageVo; +import com.ccsens.wisdomcar.bean.vo.StepVo; import com.ccsens.wisdomcar.persist.dao.StepDao; import com.ccsens.wisdomcar.persist.mapper.*; import com.ccsens.wisdomcar.util.Constant; @@ -21,6 +22,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.HashSet; import java.util.List; import java.util.Random; @@ -61,7 +63,7 @@ public class RecordService implements IRecordService{ //查找平车信息 WisdomCar wisdomCar = null; WisdomCarExample wisdomCarExample = new WisdomCarExample(); - wisdomCarExample.createCriteria().andCarNumberEqualTo(carRecordMessageDto.getCarNumber()); + wisdomCarExample.createCriteria().andCarNumberEqualTo(carRecordMessageDto.getAuthId()); List wisdomCars = wisdomCarMapper.selectByExample(wisdomCarExample); if(CollectionUtil.isNotEmpty(wisdomCars)){ wisdomCar = wisdomCars.get(0); @@ -86,15 +88,21 @@ public class RecordService implements IRecordService{ screenList.forEach(screen -> userIdSet.add(screen.getUserId().toString())); } //获取流程 - String step = null; - if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ + StepVo.Step step = null; + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT || carRecordMessageDto.getType() == Constant.CAR_RECORD_START){ step = stepDao.getCodeByStepOne(); + //处理体重数据 + int weightInt = Integer.parseInt(carRecordMessageDto.getValue()); + BigDecimal weight = BigDecimal.valueOf(weightInt).divide(BigDecimal.valueOf(1000),3,BigDecimal.ROUND_HALF_UP); + carRecordMessageDto.setValue(weight+""); } if(carRecordMessageDto.getType() == Constant.CAR_RECORD_RFID){ step = stepDao.getCodeByRfId(carRecordMessageDto.getValue()); } //发送消息 - sendRecordMessage(carRecordMessageDto,userIdSet,step); + sendRecordMessage(carRecordMessageDto,userIdSet,step == null?null:step.getStepCode(),step == null?null:step.getStepType()); + + //如果是称重信息,制造测试数据发送大屏 if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ @@ -106,7 +114,7 @@ public class RecordService implements IRecordService{ private void doseAndSensorMessage(CarRecordMessageDto carRecordMessageDto, Set userIdSet) throws Exception { //体重 单位g - int weightInt = Integer.parseInt(carRecordMessageDto.getValue()); + BigDecimal weightInt = BigDecimal.valueOf(Double.parseDouble(carRecordMessageDto.getValue())); // /*剂量数据*/ // //计算剂量信息 总剂量 = 重量 * 0.9,团注剂量=总剂量*10%,维持剂量=总剂量*90%,均保留两位小数(重量为kg,消息发送的重量为g,需处理) // String dosage; @@ -129,13 +137,14 @@ public class RecordService implements IRecordService{ /*称重传感器数据*/ //获取一个5000以内的平均数 Random random = new Random(); - int randomWeight = random.nextInt(5000); + BigDecimal randomWeight1 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),3,BigDecimal.ROUND_HALF_UP); + BigDecimal randomWeight2 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),3,BigDecimal.ROUND_HALF_UP); //体重除以4 - int aveWeight = weightInt / 4; - int sensor1 = aveWeight - randomWeight; - int sensor2 = aveWeight + randomWeight; - int sensor3 = aveWeight - randomWeight; - int sensor4 = weightInt - sensor1 - sensor2 - sensor3; + BigDecimal aveWeight = weightInt.divide(BigDecimal.valueOf(4),3,BigDecimal.ROUND_HALF_UP); + BigDecimal sensor1 = aveWeight.subtract(randomWeight1); + BigDecimal sensor2 = aveWeight.add(randomWeight1); + BigDecimal sensor3 = aveWeight.subtract(randomWeight2); + BigDecimal sensor4 = weightInt.subtract(sensor1).subtract(sensor2).subtract(sensor3); //第一个传感器 CarRecordMessageDto sensorMessage1 = new CarRecordMessageDto(); @@ -143,28 +152,28 @@ public class RecordService implements IRecordService{ sensorMessage1.setType(Constant.WEIGHT_SENSOR_1); sensorMessage1.setValue(sensor1 + ""); //发送消息 - sendRecordMessage(sensorMessage1,userIdSet,null); + sendRecordMessage(sensorMessage1,userIdSet,null,null); //第二个传感器 CarRecordMessageDto sensorMessage2 = new CarRecordMessageDto(); BeanUtil.copyProperties(carRecordMessageDto,sensorMessage2); sensorMessage2.setType(Constant.WEIGHT_SENSOR_2); sensorMessage2.setValue(sensor2 + ""); //发送消息 - sendRecordMessage(sensorMessage2,userIdSet,null); + sendRecordMessage(sensorMessage2,userIdSet,null,null); //第三个传感器 CarRecordMessageDto sensorMessage3 = new CarRecordMessageDto(); BeanUtil.copyProperties(carRecordMessageDto,sensorMessage3); sensorMessage3.setType(Constant.WEIGHT_SENSOR_3); sensorMessage3.setValue(sensor3 + ""); //发送消息 - sendRecordMessage(sensorMessage3,userIdSet,null); + sendRecordMessage(sensorMessage3,userIdSet,null,null); //第四个传感器 CarRecordMessageDto sensorMessage4 = new CarRecordMessageDto(); BeanUtil.copyProperties(carRecordMessageDto,sensorMessage4); sensorMessage4.setType(Constant.WEIGHT_SENSOR_4); sensorMessage4.setValue(sensor4 + ""); //发送消息 - sendRecordMessage(sensorMessage4,userIdSet,null); + sendRecordMessage(sensorMessage4,userIdSet,null,null); // /*震动传感器数据*/ // //随机生成坐标 @@ -186,8 +195,9 @@ public class RecordService implements IRecordService{ /** * 发送消息 */ - private void sendRecordMessage(CarRecordMessageDto carRecordMessageDto,Set userIdSet,String step) throws Exception { - CarRecordMessageVo carRecordMessageVo = new CarRecordMessageVo(carRecordMessageDto.getCarNumber(),carRecordMessageDto.getType(),carRecordMessageDto.getValue(),carRecordMessageDto.getTime(),step); + private void sendRecordMessage(CarRecordMessageDto carRecordMessageDto,Set userIdSet,String stepCode,Byte stepType) throws Exception { + CarRecordMessageVo carRecordMessageVo = new CarRecordMessageVo(carRecordMessageDto.getAuthId(),carRecordMessageDto.getType(), + carRecordMessageDto.getValue(),carRecordMessageDto.getTime(),stepCode,stepType); MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); String s = JacksonUtil.beanToJson(carRecordMessageVo); diff --git a/wisdomcar/src/main/resources/application.yml b/wisdomcar/src/main/resources/application.yml index ac92adb9..a47f2a7b 100644 --- a/wisdomcar/src/main/resources/application.yml +++ b/wisdomcar/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: test - include: common, util-test + active: dev + include: common, util-dev diff --git a/wisdomcar/src/main/resources/mapper_dao/StepDao.xml b/wisdomcar/src/main/resources/mapper_dao/StepDao.xml index 97f63365..e1cc4ecb 100644 --- a/wisdomcar/src/main/resources/mapper_dao/StepDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/StepDao.xml @@ -3,9 +3,10 @@ - SELECT - s. + s.code as stepCode, + s.step_type as stepType FROM `t_step` s, t_rfid r @@ -14,9 +15,10 @@ and r.rfid = #{rfid} limit 1 - SELECT - s.code + s.code as stepCode, + s.step_type as stepType FROM `t_step` s ORDER BY id diff --git a/wisdomcar/src/main/resources/mapper_raw/FirstAidRecordMapper.xml b/wisdomcar/src/main/resources/mapper_raw/FirstAidRecordMapper.xml index ebad0513..da814005 100644 --- a/wisdomcar/src/main/resources/mapper_raw/FirstAidRecordMapper.xml +++ b/wisdomcar/src/main/resources/mapper_raw/FirstAidRecordMapper.xml @@ -7,6 +7,7 @@ + @@ -70,7 +71,7 @@ - id, first_aid_id, type, value, begin_time, created_at, updated_at, rec_status + id, first_aid_id, type, value, begin_time, step_id, created_at, updated_at, rec_status select @@ -103,11 +104,11 @@ insert into t_step (id, name, code, - sequence, created_at, updated_at, - rec_status) + sequence, step_type, created_at, + updated_at, rec_status) values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR}, - #{sequence,jdbcType=INTEGER}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, - #{recStatus,jdbcType=TINYINT}) + #{sequence,jdbcType=INTEGER}, #{stepType,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, + #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}) insert into t_step @@ -124,6 +125,9 @@ sequence, + + step_type, + created_at, @@ -147,6 +151,9 @@ #{sequence,jdbcType=INTEGER}, + + #{stepType,jdbcType=TINYINT}, + #{createdAt,jdbcType=TIMESTAMP}, @@ -179,6 +186,9 @@ sequence = #{record.sequence,jdbcType=INTEGER}, + + step_type = #{record.stepType,jdbcType=TINYINT}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, @@ -199,6 +209,7 @@ name = #{record.name,jdbcType=VARCHAR}, code = #{record.code,jdbcType=VARCHAR}, sequence = #{record.sequence,jdbcType=INTEGER}, + step_type = #{record.stepType,jdbcType=TINYINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, rec_status = #{record.recStatus,jdbcType=TINYINT} @@ -218,6 +229,9 @@ sequence = #{sequence,jdbcType=INTEGER}, + + step_type = #{stepType,jdbcType=TINYINT}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, @@ -235,6 +249,7 @@ set name = #{name,jdbcType=VARCHAR}, code = #{code,jdbcType=VARCHAR}, sequence = #{sequence,jdbcType=INTEGER}, + step_type = #{stepType,jdbcType=TINYINT}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, rec_status = #{recStatus,jdbcType=TINYINT} From a705d142dfb2d8c5ce6c0acf9ce5e2e196c67ae7 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Thu, 17 Dec 2020 16:11:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?20201217=E4=BF=AE=E6=94=B9=E7=A7=B0?= =?UTF-8?q?=E9=87=8D=E6=98=BE=E7=A4=BA=E5=92=8C=E9=9C=87=E5=8A=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bean/dto/Message/CarRecordMessageDto.java | 8 +- .../com/ccsens/wisdomcar/bean/vo/StepVo.java | 1 + .../ccsens/wisdomcar/persist/dao/StepDao.java | 2 + .../wisdomcar/rabbitMQ/RabbitController.java | 59 ++++++-- .../wisdomcar/service/RecordService.java | 141 ++++++++++-------- wisdomcar/src/main/resources/application.yml | 4 +- .../src/main/resources/mapper_dao/StepDao.xml | 12 ++ 7 files changed, 149 insertions(+), 78 deletions(-) diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java index ae35cdc0..f7013b10 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/Message/CarRecordMessageDto.java @@ -14,7 +14,7 @@ public class CarRecordMessageDto { /** * 类型 0开始 1体重 2rfid, 3称重一 4称重二 5称重三 6称重四 7震动 8溶栓 9团注 10维持 */ - private byte type; + private Byte type; /** * */ @@ -29,6 +29,9 @@ public class CarRecordMessageDto { private Long time; public byte getType(){ + if(this.type != null){ + return type; + } switch (addr){ case 3: return 0; @@ -58,8 +61,9 @@ public class CarRecordMessageDto { case 32: return 6; case 24: - default: return 2; + default: + return this.type; } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java index 58cf035a..9d40f576 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/StepVo.java @@ -9,6 +9,7 @@ import lombok.Data; public class StepVo { @Data public static class Step{ + private Long id; private String stepCode; private byte stepType; diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java index 4532edb9..be26252a 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java @@ -19,4 +19,6 @@ public interface StepDao extends StepMapper { StepVo.Step getCodeByRfId(@Param("rfid") String value); StepVo.Step getCodeByStepOne(); + + String getRecordByCarIdAndType(@Param("carId") Long carId, @Param("type") byte type); } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java index 713414d3..b0c1211b 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java @@ -4,11 +4,13 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.ccsens.util.RedisUtil; import com.ccsens.util.bean.message.common.OutMessage; import com.ccsens.util.bean.message.common.OutMessageSet; import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.wisdomcar.bean.dto.Message.CarRecordMessageDto; import com.ccsens.wisdomcar.service.IRecordService; +import com.ccsens.wisdomcar.util.Constant; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,6 +19,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; @Slf4j @@ -25,6 +28,8 @@ import java.util.*; public class RabbitController { @Resource private IRecordService recordService; + @Resource + private RedisUtil redisUtil; private Logger logger = LoggerFactory.getLogger(RabbitController.class); @@ -48,29 +53,39 @@ public class RabbitController { return; } switch (carRecordMessageDto.getType()){ - case 2: + case Constant.CAR_RECORD_WEIGHT: getWeight(carRecordMessageDtoList, map, carRecordMessageDto,16); break; - case 3: + case Constant.WEIGHT_SENSOR_1: // getWeight(carRecordMessageDtoList, map, carRecordMessageDto,25); break; - case 4: + case Constant.WEIGHT_SENSOR_2: // getWeight(carRecordMessageDtoList, map, carRecordMessageDto,27); break; - case 5: + case Constant.WEIGHT_SENSOR_3: // getWeight(carRecordMessageDtoList, map, carRecordMessageDto,29); break; - case 6: + case Constant.WEIGHT_SENSOR_4: // getWeight(carRecordMessageDtoList, map, carRecordMessageDto,31); break; - case 7: - map.put(carRecordMessageDto.getAddr(),Long.parseLong(carRecordMessageDto.getValue())); - if(map.get(18) != null && map.get(19) != null && map.get(20) != null ){ - String value = map.get(18) + "," + map.get(19) + "," + map.get(20); + case Constant.SHAKE_SENSOR: + log.info("倾角传感器:{}",carRecordMessageDto); + long shakeValue = getShakeValue(carRecordMessageDto); + + map.put(carRecordMessageDto.getAddr(),shakeValue); + if(map.get(21) != null && map.get(22) != null && map.get(23) != null ){ + String value = map.get(21) + "," + map.get(22) + "," + map.get(23); carRecordMessageDto.setValue(value); carRecordMessageDtoList.add(carRecordMessageDto); } break; + case Constant.THROMBOLYTIC: + case Constant.BOLUS_DOSE: + case Constant.MAINTENANCE_DOSE: + BigDecimal value1 = BigDecimal.valueOf(Double.parseDouble(carRecordMessageDto.getValue())).divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_DOWN); + carRecordMessageDto.setValue(value1.toString()); + carRecordMessageDtoList.add(carRecordMessageDto); + break; default: carRecordMessageDtoList.add(carRecordMessageDto); break; @@ -89,9 +104,27 @@ public class RabbitController { } + private long getShakeValue(CarRecordMessageDto carRecordMessageDto) { + String key = Constant.FIRST_AID + carRecordMessageDto.getAuthId() + carRecordMessageDto.getAddr(); + + long value = 0L; + //redis查找该平车上一次的倾角数据 + Object o = redisUtil.get(key); + if(ObjectUtil.isNull(o)){ + //如果没有依次存入redis,value值都是0 + redisUtil.set(key,carRecordMessageDto.getValue()); + carRecordMessageDto.setValue(0+""); + }else { + //如果有,用当前的值减去上次的数据,得到的是新的value + value = Long.parseLong(carRecordMessageDto.getValue()) - Long.parseLong(o.toString()); + } + return value; + } + private void getWeight(List carRecordMessageDtoList, Map map, CarRecordMessageDto carRecordMessageDto,int highAddr) { boolean flag = carRecordMessageDto.getAddr() == highAddr; Long weight = getWeight(map, carRecordMessageDto, flag ? highAddr + 1 : highAddr,flag); + log.info("计算后的重量:{}",weight); if(weight == null){ return; } @@ -100,16 +133,20 @@ public class RabbitController { } private Long getWeight(Map map, CarRecordMessageDto carRecordMessageDto,int value2,boolean firstHigh) { + log.info("value = {},,firstHigh={}",value2,firstHigh); if(map.get(value2) == null){ map.put(carRecordMessageDto.getAddr(),Long.parseLong(carRecordMessageDto.getValue())); return null; }else { long weight1 = Long.parseLong(carRecordMessageDto.getValue()); long weight2 = map.get(value2); + log.info("准备计算重量:{},,,{}",weight1,weight2); if(firstHigh){ - return weight1 << 16 + weight2; + log.info("weight1 << 16 + weight2:{}",weight1 << 16 | weight2); + return weight1 << 16 | weight2; }else { - return weight2 << 16 + weight1; + log.info("weight2 << 16 + weight1:{}",weight2 << 16 | weight1); + return weight2 << 16 | weight1; } } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java index 86f5c3ee..7dc794bb 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java @@ -60,6 +60,7 @@ public class RecordService implements IRecordService{ if(ObjectUtil.isNull(carRecordMessageDto)){ return; } + log.info("接受信息:{}",carRecordMessageDto); //查找平车信息 WisdomCar wisdomCar = null; WisdomCarExample wisdomCarExample = new WisdomCarExample(); @@ -72,13 +73,6 @@ public class RecordService implements IRecordService{ log.info("找不到平车id"); return; } - WisdomCarRecord wisdomCarRecord = new WisdomCarRecord(); - wisdomCarRecord.setId(snowflake.nextId()); - wisdomCarRecord.setCarId(wisdomCars.get(0).getId()); - wisdomCarRecord.setType(carRecordMessageDto.getType()); - wisdomCarRecord.setValue(carRecordMessageDto.getValue()); - wisdomCarRecord.setTime(carRecordMessageDto.getTime()); - wisdomCarRecordMapper.insertSelective(wisdomCarRecord); //查找医院大屏的userId(暂时查找主屏幕) Set userIdSet = new HashSet<>(); @@ -88,14 +82,40 @@ public class RecordService implements IRecordService{ if(CollectionUtil.isNotEmpty(screenList)){ screenList.forEach(screen -> userIdSet.add(screen.getUserId().toString())); } + + //如果是称重信息,制造测试数据发送大屏 + boolean f = false; + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ + String value = stepDao.getRecordByCarIdAndType(wisdomCars.get(0).getId(),carRecordMessageDto.getType()); + if(!carRecordMessageDto.getValue().equals(value)){ + f = true; + } + } + + WisdomCarRecord wisdomCarRecord = new WisdomCarRecord(); + wisdomCarRecord.setId(snowflake.nextId()); + wisdomCarRecord.setCarId(wisdomCars.get(0).getId()); + wisdomCarRecord.setType(carRecordMessageDto.getType()); + wisdomCarRecord.setValue(carRecordMessageDto.getValue()); + wisdomCarRecord.setTime(carRecordMessageDto.getTime()); + wisdomCarRecordMapper.insertSelective(wisdomCarRecord); + + //获取流程 StepVo.Step step = null; - if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT || carRecordMessageDto.getType() == Constant.CAR_RECORD_START){ + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ step = stepDao.getCodeByStepOne(); //处理体重数据 int weightInt = Integer.parseInt(carRecordMessageDto.getValue()); - BigDecimal weight = BigDecimal.valueOf(weightInt).divide(BigDecimal.valueOf(1000),3,BigDecimal.ROUND_HALF_UP); + BigDecimal weight = BigDecimal.valueOf(weightInt).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); carRecordMessageDto.setValue(weight+""); + if(f){ + log.info("处理称重信息"); + doseAndSensorMessage(carRecordMessageDto, userIdSet); + } + } + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_START){ + step = stepDao.getCodeByStepOne(); } if(carRecordMessageDto.getType() == Constant.CAR_RECORD_RFID){ step = stepDao.getCodeByRfId(carRecordMessageDto.getValue()); @@ -104,55 +124,55 @@ public class RecordService implements IRecordService{ sendRecordMessage(carRecordMessageDto,userIdSet,step == null?null:step.getStepCode(),step == null?null:step.getStepType()); - //如果是称重信息,制造测试数据发送大屏 - - if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ - log.info("处理称重信息"); - doseAndSensorMessage(carRecordMessageDto, userIdSet); - } +// //如果是称重信息,制造测试数据发送大屏 +// if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ +// +// String value = stepDao.getRecordByCarIdAndType(wisdomCars.get(0).getId(),carRecordMessageDto.getType()); +// BigDecimal weight = BigDecimal.valueOf(Double.parseDouble(value)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); +// if(!carRecordMessageDto.getValue().equals(weight.toString())){ +// log.info("处理称重信息"); +// doseAndSensorMessage(carRecordMessageDto, userIdSet); +// } +// } //新建急救表存储信息 - saveAidRecord(carRecordMessageDto, wisdomCar.getId()); + saveAidRecord(carRecordMessageDto, wisdomCar.getId(),step); } private void doseAndSensorMessage(CarRecordMessageDto carRecordMessageDto, Set userIdSet) throws Exception { //体重 单位g BigDecimal weightInt = BigDecimal.valueOf(Double.parseDouble(carRecordMessageDto.getValue())); -// /*剂量数据*/ -// //计算剂量信息 总剂量 = 重量 * 0.9,团注剂量=总剂量*10%,维持剂量=总剂量*90%,均保留两位小数(重量为kg,消息发送的重量为g,需处理) -// String dosage; -// BigDecimal weight = BigDecimal.valueOf(weightInt).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_UP); -// //总剂量 -// BigDecimal totalDose = weight.multiply(BigDecimal.valueOf(0.9)).setScale(2, BigDecimal.ROUND_HALF_UP); -// //团注剂量 -// BigDecimal dose1 = totalDose.multiply(BigDecimal.valueOf(0.1)).setScale(2, BigDecimal.ROUND_HALF_UP); -// //维持剂量 -// BigDecimal dose2 = totalDose.subtract(dose1); -// dosage = totalDose + "," + dose1 + "," + dose2; -// //发送消息 -// CarRecordMessageDto dosageRecord = new CarRecordMessageDto(); -// BeanUtil.copyProperties(carRecordMessageDto,dosageRecord); -// dosageRecord.setType(Constant.CAR_RECORD_DOSAGE); -// dosageRecord.setValue(dosage); -// //发送消息 -// sendRecordMessage(dosageRecord,userIdSet); - + BigDecimal sensor1 = BigDecimal.valueOf(0); + BigDecimal sensor2 = BigDecimal.valueOf(0); + BigDecimal sensor3 = BigDecimal.valueOf(0); + BigDecimal sensor4 = BigDecimal.valueOf(0); /*称重传感器数据*/ - //获取一个5000以内的平均数 - Random random = new Random(); - BigDecimal randomWeight1 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),3,BigDecimal.ROUND_HALF_UP); - BigDecimal randomWeight2 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),3,BigDecimal.ROUND_HALF_UP); - //体重除以4 - BigDecimal aveWeight = weightInt.divide(BigDecimal.valueOf(4),3,BigDecimal.ROUND_HALF_UP); - BigDecimal sensor1 = aveWeight.subtract(randomWeight1); - BigDecimal sensor2 = aveWeight.add(randomWeight1); - BigDecimal sensor3 = aveWeight.subtract(randomWeight2); - BigDecimal sensor4 = weightInt.subtract(sensor1).subtract(sensor2).subtract(sensor3); + if(!weightInt.equals(BigDecimal.valueOf(0))){ + //获取一个5000以内的平均数 + Random random = new Random(); + BigDecimal randomWeight1 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); + BigDecimal randomWeight2 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); + //体重除以4 + BigDecimal aveWeight = weightInt.divide(BigDecimal.valueOf(4),3,BigDecimal.ROUND_HALF_DOWN); + if(aveWeight.compareTo(BigDecimal.valueOf(5000)) < 1){ + BigDecimal divide = aveWeight.multiply(BigDecimal.valueOf(1000)).divide(BigDecimal.valueOf(3), 2, BigDecimal.ROUND_HALF_DOWN); + randomWeight1 = BigDecimal.valueOf(random.nextInt(divide.intValue())).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); + randomWeight2 = BigDecimal.valueOf(random.nextInt(divide.intValue())).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); + } + sensor1 = aveWeight.subtract(randomWeight1); + sensor2 = aveWeight.add(randomWeight1); + sensor3 = aveWeight.subtract(randomWeight2); + sensor4 = weightInt.subtract(sensor1).subtract(sensor2).subtract(sensor3); + if(sensor4.compareTo(BigDecimal.valueOf(0)) < 1){ + sensor4 = BigDecimal.valueOf(0); + } + } //第一个传感器 CarRecordMessageDto sensorMessage1 = new CarRecordMessageDto(); BeanUtil.copyProperties(carRecordMessageDto,sensorMessage1); sensorMessage1.setType(Constant.WEIGHT_SENSOR_1); sensorMessage1.setValue(sensor1 + ""); + log.info("传感器一数据:{}",sensorMessage1); //发送消息 sendRecordMessage(sensorMessage1,userIdSet,null,null); //第二个传感器 @@ -160,6 +180,7 @@ public class RecordService implements IRecordService{ BeanUtil.copyProperties(carRecordMessageDto,sensorMessage2); sensorMessage2.setType(Constant.WEIGHT_SENSOR_2); sensorMessage2.setValue(sensor2 + ""); + log.info("传感器二数据:{}",sensorMessage2); //发送消息 sendRecordMessage(sensorMessage2,userIdSet,null,null); //第三个传感器 @@ -167,6 +188,7 @@ public class RecordService implements IRecordService{ BeanUtil.copyProperties(carRecordMessageDto,sensorMessage3); sensorMessage3.setType(Constant.WEIGHT_SENSOR_3); sensorMessage3.setValue(sensor3 + ""); + log.info("传感器三数据:{}",sensorMessage3); //发送消息 sendRecordMessage(sensorMessage3,userIdSet,null,null); //第四个传感器 @@ -174,23 +196,9 @@ public class RecordService implements IRecordService{ BeanUtil.copyProperties(carRecordMessageDto,sensorMessage4); sensorMessage4.setType(Constant.WEIGHT_SENSOR_4); sensorMessage4.setValue(sensor4 + ""); + log.info("传感器四数据:{}",sensorMessage4); //发送消息 sendRecordMessage(sensorMessage4,userIdSet,null,null); - -// /*震动传感器数据*/ -// //随机生成坐标 -// int shakeX = random.nextInt(65535); -// int shakeY = random.nextInt(65535); -// int shakeZ = random.nextInt(65535); -// //震动传感器 -// CarRecordMessageDto shakeMessage = new CarRecordMessageDto(); -// BeanUtil.copyProperties(carRecordMessageDto,shakeMessage); -// shakeMessage.setType(Constant.SHAKE_SENSOR); -// shakeMessage.setValue(shakeX + "," + shakeY + "," + shakeZ); -// //发送消息 -// sendRecordMessage(shakeMessage,userIdSet); - -// return dosage; } @@ -202,6 +210,7 @@ public class RecordService implements IRecordService{ carRecordMessageDto.getValue(),carRecordMessageDto.getTime(),stepCode,stepType); MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); + messageRule.setAckRule(MessageRule.AckRule.NONE); String s = JacksonUtil.beanToJson(carRecordMessageVo); InMessage inMessage = InMessage.newToUserMessage(null,userIdSet,null,messageRule,s); //发送消息 @@ -211,7 +220,7 @@ public class RecordService implements IRecordService{ /** * 添加急救信息和急救记录信息 */ - private void saveAidRecord(CarRecordMessageDto carRecordMessageDto, Long wisdomCarId) { + private void saveAidRecord(CarRecordMessageDto carRecordMessageDto, Long wisdomCarId, StepVo.Step step) { // 如果是开始信息,新建一条急救表数据 String key = Constant.FIRST_AID + wisdomCarId; if(carRecordMessageDto.getType() == Constant.CAR_RECORD_START){ @@ -224,6 +233,11 @@ public class RecordService implements IRecordService{ firstAidMapper.insertSelective(firstAid); //存入redis redisUtil.set(key,firstAid.getId(),Constant.FIRST_AID_REDIS_TIME); + //删除redis内此平车之前的倾角数据 + String keyX = Constant.FIRST_AID + carRecordMessageDto.getAuthId() + 21; + String keyY = Constant.FIRST_AID + carRecordMessageDto.getAuthId() + 22; + String keyZ = Constant.FIRST_AID + carRecordMessageDto.getAuthId() + 23; + redisUtil.del(keyX,keyY,keyZ); return; } //redis查询急救表 @@ -249,14 +263,14 @@ public class RecordService implements IRecordService{ case Constant.THROMBOLYTIC: case Constant.BOLUS_DOSE: case Constant.MAINTENANCE_DOSE: - saveFirstAidRecord(carRecordMessageDto,firstAidId); + saveFirstAidRecord(carRecordMessageDto,firstAidId,step); break; default: } } - private void saveFirstAidRecord(CarRecordMessageDto carRecordMessageDto, Long firstAidId) { + private void saveFirstAidRecord(CarRecordMessageDto carRecordMessageDto, Long firstAidId, StepVo.Step step) { String reidKey; if(carRecordMessageDto.getType() == Constant.CAR_RECORD_RFID){ reidKey = Constant.FIRST_AID + firstAidId + "_" + carRecordMessageDto.getType() + "_" + carRecordMessageDto.getValue(); @@ -286,6 +300,7 @@ public class RecordService implements IRecordService{ aidRecord.setFirstAidId(firstAidId); aidRecord.setBeginTime(carRecordMessageDto.getTime()); aidRecord.setType(carRecordMessageDto.getType()); + aidRecord.setStepId(step == null ? null : step.getId()); firstAidRecordMapper.insertSelective(aidRecord); //添加redis redisUtil.set(reidKey,aidRecord.getId(),Constant.FIRST_AID_REDIS_TIME); diff --git a/wisdomcar/src/main/resources/application.yml b/wisdomcar/src/main/resources/application.yml index a47f2a7b..1ac895fc 100644 --- a/wisdomcar/src/main/resources/application.yml +++ b/wisdomcar/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: dev - include: common, util-dev + active: prod + include: common, util-prod diff --git a/wisdomcar/src/main/resources/mapper_dao/StepDao.xml b/wisdomcar/src/main/resources/mapper_dao/StepDao.xml index e1cc4ecb..87f77d01 100644 --- a/wisdomcar/src/main/resources/mapper_dao/StepDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/StepDao.xml @@ -5,6 +5,7 @@ + \ No newline at end of file