|
|
@ -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<WisdomCar> 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<String> 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<String> userIdSet,String step) throws Exception { |
|
|
|
CarRecordMessageVo carRecordMessageVo = new CarRecordMessageVo(carRecordMessageDto.getCarNumber(),carRecordMessageDto.getType(),carRecordMessageDto.getValue(),carRecordMessageDto.getTime(),step); |
|
|
|
private void sendRecordMessage(CarRecordMessageDto carRecordMessageDto,Set<String> 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); |
|
|
|