diff --git a/util/src/main/java/com/ccsens/util/WebConstant.java b/util/src/main/java/com/ccsens/util/WebConstant.java index 20fe3106..e1c58536 100644 --- a/util/src/main/java/com/ccsens/util/WebConstant.java +++ b/util/src/main/java/com/ccsens/util/WebConstant.java @@ -663,7 +663,7 @@ public class WebConstant { } } public static Message_Ack_Event phaseOf(String phase) { // 手写的从String到enum的转换函数 - if(phase.equalsIgnoreCase("Ack")) { + if("Ack".equalsIgnoreCase(phase)) { return Ack; } else { return null; 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 d1811432..1976718d 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 @@ -12,7 +12,7 @@ public class CarRecordMessageDto { */ private String carNumber; /** - * 类型 0开始 1体重 2rfid, 3称重一 4称重二 5称重三 6称重四 7震动 8剂量 + * 类型 0开始 1体重 2rfid, 3称重一 4称重二 5称重三 6称重四 7震动 8溶栓 9团注 10维持 */ private byte type; /** @@ -23,4 +23,5 @@ public class CarRecordMessageDto { * 时间 */ private Long time; + } 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 36122865..de215e5a 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 @@ -28,6 +28,10 @@ public class CarRecordMessageVo extends BaseMessageDto { * 时间 */ private Long time; + /** + * 流程 + */ + private String step; } private Data data; @@ -36,13 +40,14 @@ public class CarRecordMessageVo extends BaseMessageDto { setTime(System.currentTimeMillis()); } - public CarRecordMessageVo(String carNumber,int type,String value,Long time){ + public CarRecordMessageVo(String carNumber,int type,String value,Long time,String step){ this(); Data d = new Data(); d.setCarNumber(carNumber); d.setType(type); d.setValue(value); d.setTime(time); + d.setStep(step); setData(d); } } 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 new file mode 100644 index 00000000..51f2d2c7 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java @@ -0,0 +1,21 @@ +package com.ccsens.wisdomcar.persist.dao; + +import com.ccsens.wisdomcar.persist.mapper.StepMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +/** + * @author 逗 + */ +@Repository +public interface StepDao extends StepMapper { + + /** + * 通过rfid查找流程 + * @param value rfid + * @return 返回流程的code + */ + String getCodeByRfId(@Param("rfid") String value); + + String 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 89d029af..89d1be72 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/rabbitMQ/RabbitController.java @@ -1,57 +1,55 @@ -//package com.ccsens.wisdomcar.rabbitMQ; -// -//import cn.hutool.core.collection.CollectionUtil; -//import cn.hutool.core.util.ObjectUtil; -//import com.alibaba.fastjson.JSONObject; -//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.service.RecordService; -//import lombok.extern.slf4j.Slf4j; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//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.List; -//import java.util.Set; -// -//@Slf4j -//@Component -//@RabbitListener(queues = RabbitMQConfig.WISDOM_CAR) -//public class RabbitController { -// @Resource -// private IRecordService recordService; -// -// private Logger logger = LoggerFactory.getLogger(RabbitController.class); -// -// @RabbitHandler -// public void process(String messageJson) { -// logger.info("平车上传消息数据: {}",messageJson); -// OutMessageSet outMessageSet = JSONObject.parseObject(messageJson,OutMessageSet.class); -// if(ObjectUtil.isNull(outMessageSet)){ -// return; -// } -// Set messageSet = outMessageSet.getMessageSet(); -// if (CollectionUtil.isEmpty(messageSet)) { -// return; -// } -// messageSet.forEach(outMessage -> { -// CarRecordMessageDto carRecordMessageDto = JSONObject.parseObject(outMessage.getData(),CarRecordMessageDto.class); -// if(ObjectUtil.isNull(carRecordMessageDto)){ -// return; -// } -// try { -// recordService.disposeMessage(carRecordMessageDto); -// } catch (Exception e) { -// log.error("处理平车信息异常",e); -// e.printStackTrace(); -// } -// }); -// } -// -//} +package com.ccsens.wisdomcar.rabbitMQ; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +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 lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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.Set; + +@Slf4j +@Component +@RabbitListener(queues = RabbitMQConfig.WISDOM_CAR) +public class RabbitController { + @Resource + private IRecordService recordService; + + private Logger logger = LoggerFactory.getLogger(RabbitController.class); + + @RabbitHandler + public void process(String messageJson) { + logger.info("平车上传消息数据: {}",messageJson); + OutMessageSet outMessageSet = JSONObject.parseObject(messageJson,OutMessageSet.class); + if(ObjectUtil.isNull(outMessageSet)){ + return; + } + Set messageSet = outMessageSet.getMessageSet(); + if (CollectionUtil.isEmpty(messageSet)) { + return; + } + messageSet.forEach(outMessage -> { + CarRecordMessageDto carRecordMessageDto = JSONObject.parseObject(outMessage.getData(),CarRecordMessageDto.class); + if(ObjectUtil.isNull(carRecordMessageDto)){ + return; + } + try { + recordService.disposeMessage(carRecordMessageDto); + } catch (Exception e) { + log.error("处理平车信息异常",e); + e.printStackTrace(); + } + }); + } + +} 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 29ee248b..d0d1cdc8 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.persist.dao.StepDao; import com.ccsens.wisdomcar.persist.mapper.*; import com.ccsens.wisdomcar.util.Constant; import lombok.extern.slf4j.Slf4j; @@ -20,7 +21,6 @@ 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; @@ -42,6 +42,8 @@ public class RecordService implements IRecordService{ @Resource private FirstAidRecordMapper firstAidRecordMapper; @Resource + private StepDao stepDao; + @Resource private Snowflake snowflake; @Resource private IMessageService messageService; @@ -83,38 +85,46 @@ public class RecordService implements IRecordService{ if(CollectionUtil.isNotEmpty(screenList)){ screenList.forEach(screen -> userIdSet.add(screen.getUserId().toString())); } + //获取流程 + String step = null; + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ + step = stepDao.getCodeByStepOne(); + } + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_RFID){ + step = stepDao.getCodeByRfId(carRecordMessageDto.getValue()); + } //发送消息 - sendRecordMessage(carRecordMessageDto,userIdSet); + sendRecordMessage(carRecordMessageDto,userIdSet,step); //如果是称重信息,制造测试数据发送大屏 - String dosage = ""; + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ - dosage = doseAndSensorMessage(carRecordMessageDto, userIdSet); + doseAndSensorMessage(carRecordMessageDto, userIdSet); } //新建急救表存储信息 - saveAidRecord(carRecordMessageDto, wisdomCar.getId(),dosage); + saveAidRecord(carRecordMessageDto, wisdomCar.getId()); } - private String doseAndSensorMessage(CarRecordMessageDto carRecordMessageDto, Set userIdSet) throws Exception { + private void doseAndSensorMessage(CarRecordMessageDto carRecordMessageDto, Set userIdSet) throws Exception { //体重 单位g int weightInt = Integer.parseInt(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); +// /*剂量数据*/ +// //计算剂量信息 总剂量 = 重量 * 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); /*称重传感器数据*/ //获取一个5000以内的平均数 @@ -133,51 +143,51 @@ public class RecordService implements IRecordService{ sensorMessage1.setType(Constant.WEIGHT_SENSOR_1); sensorMessage1.setValue(sensor1 + ""); //发送消息 - sendRecordMessage(sensorMessage1,userIdSet); + sendRecordMessage(sensorMessage1,userIdSet,null); //第二个传感器 CarRecordMessageDto sensorMessage2 = new CarRecordMessageDto(); BeanUtil.copyProperties(carRecordMessageDto,sensorMessage2); sensorMessage2.setType(Constant.WEIGHT_SENSOR_2); sensorMessage2.setValue(sensor2 + ""); //发送消息 - sendRecordMessage(sensorMessage2,userIdSet); + sendRecordMessage(sensorMessage2,userIdSet,null); //第三个传感器 CarRecordMessageDto sensorMessage3 = new CarRecordMessageDto(); BeanUtil.copyProperties(carRecordMessageDto,sensorMessage3); sensorMessage3.setType(Constant.WEIGHT_SENSOR_3); sensorMessage3.setValue(sensor3 + ""); //发送消息 - sendRecordMessage(sensorMessage3,userIdSet); + sendRecordMessage(sensorMessage3,userIdSet,null); //第四个传感器 CarRecordMessageDto sensorMessage4 = new CarRecordMessageDto(); BeanUtil.copyProperties(carRecordMessageDto,sensorMessage4); sensorMessage4.setType(Constant.WEIGHT_SENSOR_4); sensorMessage4.setValue(sensor4 + ""); //发送消息 - sendRecordMessage(sensorMessage4,userIdSet); + sendRecordMessage(sensorMessage4,userIdSet,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.WEIGHT_SENSOR_4); - shakeMessage.setValue(shakeX + "," + shakeY + "," + shakeZ); - //发送消息 - sendRecordMessage(shakeMessage,userIdSet); +// /*震动传感器数据*/ +// //随机生成坐标 +// 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; +// return dosage; } /** * 发送消息 */ - private void sendRecordMessage(CarRecordMessageDto carRecordMessageDto,Set userIdSet) throws Exception { - CarRecordMessageVo carRecordMessageVo = new CarRecordMessageVo(carRecordMessageDto.getCarNumber(),carRecordMessageDto.getType(),carRecordMessageDto.getValue(),carRecordMessageDto.getTime()); + private void sendRecordMessage(CarRecordMessageDto carRecordMessageDto,Set userIdSet,String step) throws Exception { + CarRecordMessageVo carRecordMessageVo = new CarRecordMessageVo(carRecordMessageDto.getCarNumber(),carRecordMessageDto.getType(),carRecordMessageDto.getValue(),carRecordMessageDto.getTime(),step); MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); String s = JacksonUtil.beanToJson(carRecordMessageVo); @@ -189,7 +199,7 @@ public class RecordService implements IRecordService{ /** * 添加急救信息和急救记录信息 */ - private void saveAidRecord(CarRecordMessageDto carRecordMessageDto, Long wisdomCarId,String dosage) { + private void saveAidRecord(CarRecordMessageDto carRecordMessageDto, Long wisdomCarId) { // 如果是开始信息,新建一条急救表数据 String key = Constant.FIRST_AID + wisdomCarId; if(carRecordMessageDto.getType() == Constant.CAR_RECORD_START){ @@ -220,60 +230,52 @@ public class RecordService implements IRecordService{ if(firstAidId == null){ return; } - //如果是称重信息 - if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ - String weightKey = Constant.FIRST_AID + firstAidId + "_" + Constant.CAR_RECORD_WEIGHT; - Object weightRedis = redisUtil.get(weightKey); - if(ObjectUtil.isNotNull(weightRedis)){ - return; - } - FirstAidRecordExample aidRecordExample = new FirstAidRecordExample(); - aidRecordExample.createCriteria().andTypeEqualTo(carRecordMessageDto.getType()).andFirstAidIdEqualTo(firstAidId); - if(firstAidRecordMapper.countByExample(aidRecordExample) > 0){ - return; - } - //没有数据则添加 - FirstAidRecord aidRecord = new FirstAidRecord(); - aidRecord.setId(snowflake.nextId()); - aidRecord.setFirstAidId(firstAidId); - aidRecord.setValue(carRecordMessageDto.getValue()); - aidRecord.setBeginTime(carRecordMessageDto.getTime()); - aidRecord.setType(carRecordMessageDto.getType()); - firstAidRecordMapper.insertSelective(aidRecord); - //添加redis - redisUtil.set(weightKey,aidRecord.getId(),Constant.FIRST_AID_REDIS_TIME); - //添加剂量信息 - FirstAidRecord dosageRecord = new FirstAidRecord(); - dosageRecord.setId(snowflake.nextId()); - dosageRecord.setFirstAidId(firstAidId); - dosageRecord.setValue(dosage); - dosageRecord.setType(Constant.SHAKE_SENSOR); - dosageRecord.setBeginTime(carRecordMessageDto.getTime()); - firstAidRecordMapper.insertSelective(dosageRecord); + + switch (carRecordMessageDto.getType()){ + case Constant.CAR_RECORD_RFID : + case Constant.CAR_RECORD_WEIGHT: + case Constant.THROMBOLYTIC: + case Constant.BOLUS_DOSE: + case Constant.MAINTENANCE_DOSE: + saveFirstAidRecord(carRecordMessageDto,firstAidId); + break; + default: } - //如果是rfid信息 + + } + + private void saveFirstAidRecord(CarRecordMessageDto carRecordMessageDto, Long firstAidId) { + String reidKey; if(carRecordMessageDto.getType() == Constant.CAR_RECORD_RFID){ - String reidKey = Constant.FIRST_AID + firstAidId + "_" + Constant.CAR_RECORD_RFID + "_" + carRecordMessageDto.getValue(); - Object weightRedis = redisUtil.get(reidKey); - if(ObjectUtil.isNotNull(weightRedis)){ - return; - } - FirstAidRecordExample aidRecordExample = new FirstAidRecordExample(); + reidKey = Constant.FIRST_AID + firstAidId + "_" + carRecordMessageDto.getType() + "_" + carRecordMessageDto.getValue(); + }else { + reidKey = Constant.FIRST_AID + firstAidId + "_" + carRecordMessageDto.getType(); + } + Object weightRedis = redisUtil.get(reidKey); + if(ObjectUtil.isNotNull(weightRedis)){ + return; + } + + FirstAidRecordExample aidRecordExample = new FirstAidRecordExample(); + if(carRecordMessageDto.getType() == Constant.CAR_RECORD_RFID) { aidRecordExample.createCriteria().andFirstAidIdEqualTo(firstAidId) .andTypeEqualTo(carRecordMessageDto.getType()).andValueEqualTo(carRecordMessageDto.getValue()); - if(firstAidRecordMapper.countByExample(aidRecordExample) > 0){ - return; - } - //没有数据则添加 - FirstAidRecord aidRecord = new FirstAidRecord(); - aidRecord.setId(snowflake.nextId()); - aidRecord.setValue(carRecordMessageDto.getValue()); - aidRecord.setFirstAidId(firstAidId); - aidRecord.setBeginTime(carRecordMessageDto.getTime()); - aidRecord.setType(carRecordMessageDto.getType()); - firstAidRecordMapper.insertSelective(aidRecord); - //添加redis - redisUtil.set(reidKey,aidRecord.getId(),Constant.FIRST_AID_REDIS_TIME); + }else { + aidRecordExample.createCriteria().andFirstAidIdEqualTo(firstAidId) + .andTypeEqualTo(carRecordMessageDto.getType()); + } + if(firstAidRecordMapper.countByExample(aidRecordExample) > 0){ + return; } + //没有数据则添加 + FirstAidRecord aidRecord = new FirstAidRecord(); + aidRecord.setId(snowflake.nextId()); + aidRecord.setValue(carRecordMessageDto.getValue()); + aidRecord.setFirstAidId(firstAidId); + aidRecord.setBeginTime(carRecordMessageDto.getTime()); + aidRecord.setType(carRecordMessageDto.getType()); + firstAidRecordMapper.insertSelective(aidRecord); + //添加redis + redisUtil.set(reidKey,aidRecord.getId(),Constant.FIRST_AID_REDIS_TIME); } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/StatisticsService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/StatisticsService.java index 0d3f2eef..5464592a 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/StatisticsService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/StatisticsService.java @@ -10,7 +10,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.security.PrivateKey; import java.util.ArrayList; import java.util.List; diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java index eb61ac9a..532c2142 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java @@ -29,8 +29,12 @@ public class Constant { public static final byte WEIGHT_SENSOR_4 = 6; /**振动传感器(倾角传感器)*/ public static final byte SHAKE_SENSOR = 7; - /**剂量*/ - public static final byte CAR_RECORD_DOSAGE = 8; + /**溶栓剂量*/ + public static final byte THROMBOLYTIC = 8; + /**团注剂量*/ + public static final byte BOLUS_DOSE = 9; + /**维持剂量*/ + public static final byte MAINTENANCE_DOSE = 10; } diff --git a/wisdomcar/src/main/resources/mapper_dao/StatisticsDao.xml b/wisdomcar/src/main/resources/mapper_dao/StatisticsDao.xml index c6acae1b..66094caa 100644 --- a/wisdomcar/src/main/resources/mapper_dao/StatisticsDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/StatisticsDao.xml @@ -34,6 +34,7 @@ FROM + + SELECT + s. + FROM + `t_step` s, + t_rfid r + WHERE + s.id = r.step_id + and r.rfid = #{rfid} + limit 1 + + + \ No newline at end of file