|
@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import javax.lang.model.element.VariableElement;
|
|
|
import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.ParseException;
|
|
@@ -119,8 +120,13 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
-
|
|
|
- //循环获取体重
|
|
|
+ BigDecimal bigDecimal3 = new BigDecimal(3);
|
|
|
+ BigDecimal bigDecimala3 = new BigDecimal(-3);
|
|
|
+ BigDecimal bigDecimal0 = new BigDecimal(0);
|
|
|
+ BigDecimal bigDecimal10 = new BigDecimal(10);
|
|
|
+ BigDecimal bigDecimal800 = new BigDecimal(-800);
|
|
|
+ BigDecimal bigDecimal2 = new BigDecimal(2);
|
|
|
+ //循环获取体重
|
|
|
for (int i = 0; i < 60; i++) {
|
|
|
//当时时间
|
|
|
Date thenTime = new Date(l - ((60-i)*10000));
|
|
@@ -128,10 +134,19 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
String str1 = s[i * 2 + 11] + s[i * 2 + 10];
|
|
|
BigDecimal weight = new BigDecimal(Integer.parseInt(str1,16));
|
|
|
BigDecimal subtract = weight.subtract(lastWeight);
|
|
|
+ if (subtract.compareTo(bigDecimal3)<0&& subtract.compareTo(bigDecimal0)>0){
|
|
|
+ System.out.println("波动小于0.3g,舍弃");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (subtract.compareTo(bigDecimala3)>0 && subtract.compareTo(bigDecimal0)<0){
|
|
|
+ System.out.println("波动小于0.3g,舍弃");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
int compare = subtract.compareTo(new BigDecimal(1500));
|
|
|
System.out.println(subtract +"------>"+weight+"----------->"+lastWeight);
|
|
|
EnvRegularCallFeeding envRegularCallFeeding = new EnvRegularCallFeeding();
|
|
|
- envRegularCallFeeding.setBattery(new BigDecimal(Integer.parseInt(bat, 16)).divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ envRegularCallFeeding.setBattery(new BigDecimal(Integer.parseInt(bat, 16)).divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
envRegularCallFeeding.setCallDate(thenTime);
|
|
|
envRegularCallFeeding.setCallCode(decId+"");
|
|
|
envRegularCallFeeding.setCallName(envDevice.getDeviceName());
|
|
@@ -140,22 +155,22 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
envRegularCallFeeding.setFarmId(baseDuckInfo.getFarmId());
|
|
|
envRegularCallFeeding.setUnitId(baseDuckInfo.getUnitId());
|
|
|
envRegularCallFeeding.setUnitName(baseDuckInfo.getUnitName());
|
|
|
- if (weight.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallFeeding.setDuckFeedingOriginal((new BigDecimal(0)));
|
|
|
+ if (weight.compareTo(bigDecimal0 )==0){
|
|
|
+ envRegularCallFeeding.setDuckFeedingOriginal(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallFeeding.setDuckFeedingOriginal(weight.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallFeeding.setDuckFeedingOriginal(weight.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
- if (subtract.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallFeeding.setDuckWeight((new BigDecimal(0)));
|
|
|
+ if (subtract.compareTo(bigDecimal0 )==0){
|
|
|
+ envRegularCallFeeding.setDuckWeight(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallFeeding.setDuckWeight(subtract.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallFeeding.setDuckWeight(subtract.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
|
|
|
//加料
|
|
|
if (compare>0){
|
|
|
|
|
|
EnvRegularCallFeedingCopy envRegularCallFeedingCopy = new EnvRegularCallFeedingCopy();
|
|
|
- envRegularCallFeedingCopy.setBattery(new BigDecimal(Integer.parseInt(bat, 16)).divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ envRegularCallFeedingCopy.setBattery(new BigDecimal(Integer.parseInt(bat, 16)).divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
envRegularCallFeedingCopy.setCallDate(thenTime);
|
|
|
envRegularCallFeedingCopy.setCallCode(decId+"");
|
|
|
envRegularCallFeedingCopy.setCallName(envDevice.getDeviceName());
|
|
@@ -164,15 +179,15 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
envRegularCallFeedingCopy.setFarmId(baseDuckInfo.getFarmId());
|
|
|
envRegularCallFeedingCopy.setUnitId(baseDuckInfo.getUnitId());
|
|
|
envRegularCallFeedingCopy.setUnitName(baseDuckInfo.getUnitName());
|
|
|
- if (weight.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallFeedingCopy.setDuckFeedingOriginal((new BigDecimal(0)));
|
|
|
+ if (weight.compareTo(bigDecimal0)==0){
|
|
|
+ envRegularCallFeedingCopy.setDuckFeedingOriginal(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallFeedingCopy.setDuckFeedingOriginal(weight.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallFeedingCopy.setDuckFeedingOriginal(weight.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
- if (subtract.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallFeedingCopy.setDuckWeight((new BigDecimal(0)));
|
|
|
+ if (subtract.compareTo(bigDecimal0 )==0){
|
|
|
+ envRegularCallFeedingCopy.setDuckWeight(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallFeedingCopy.setDuckWeight(subtract.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallFeedingCopy.setDuckWeight(subtract.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
|
|
|
envRegularCallFeedingCopy.setEventType(1);
|
|
@@ -180,7 +195,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
lastWeight =weight;
|
|
|
continue;
|
|
|
}
|
|
|
- int compare50 = subtract.compareTo(new BigDecimal(300));
|
|
|
+ int compare50 = subtract.compareTo(new BigDecimal(800));
|
|
|
//下蛋
|
|
|
if (compare50>0){
|
|
|
EnvRegularCallEgg envRegularCallEgg = new EnvRegularCallEgg();
|
|
@@ -194,30 +209,30 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
envRegularCallEgg.setUnitId(baseDuckInfo.getUnitId());
|
|
|
envRegularCallEgg.setUnitName(baseDuckInfo.getUnitName());
|
|
|
envRegularCallEgg.setEggNum(1);
|
|
|
- if (weight.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallEgg.setDuckFeedingOriginal((new BigDecimal(0)));
|
|
|
+ if (weight.compareTo(bigDecimal0)==0){
|
|
|
+ envRegularCallEgg.setDuckFeedingOriginal(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallEgg.setDuckFeedingOriginal(weight.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallEgg.setDuckFeedingOriginal(weight.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
- if (subtract.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallEgg.setDuckWeight((new BigDecimal(0)));
|
|
|
+ if (subtract.compareTo(bigDecimal0 )==0){
|
|
|
+ envRegularCallEgg.setDuckWeight(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallEgg.setDuckWeight(subtract.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallEgg.setDuckWeight(subtract.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
envRegularCallEggMapper.insert(envRegularCallEgg);
|
|
|
lastWeight =weight;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- int compare0 = subtract.compareTo(new BigDecimal(0));
|
|
|
+ int compare0 = subtract.compareTo(bigDecimal0);
|
|
|
//小于零大于负八十
|
|
|
- int compare80 = subtract.compareTo(new BigDecimal(-80));
|
|
|
+ int compare80 = subtract.compareTo(bigDecimal800);
|
|
|
//吃料
|
|
|
if (compare0<0 && compare80 >=0){
|
|
|
- if (subtract.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallFeeding.setDuckWeight((new BigDecimal(0)));
|
|
|
+ if (subtract.compareTo(bigDecimal0 )==0){
|
|
|
+ envRegularCallFeeding.setDuckWeight(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallFeeding.setDuckWeight(subtract.subtract(subtract.multiply(new BigDecimal(2))).divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP));
|
|
|
+ envRegularCallFeeding.setDuckWeight(subtract.subtract(subtract.multiply(bigDecimal2)).divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP));
|
|
|
}
|
|
|
envRegularCallFeeding.setEventType(0);
|
|
|
envRegularCallFeedingMapper.insert(envRegularCallFeeding);
|
|
@@ -226,7 +241,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
}
|
|
|
//其它
|
|
|
EnvRegularCallFeedingCopy envRegularCallFeedingCopy = new EnvRegularCallFeedingCopy();
|
|
|
- envRegularCallFeedingCopy.setBattery(new BigDecimal(Integer.parseInt(bat, 16)).divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ envRegularCallFeedingCopy.setBattery(new BigDecimal(Integer.parseInt(bat, 16)).divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
envRegularCallFeedingCopy.setCallDate(thenTime);
|
|
|
envRegularCallFeedingCopy.setCallCode(decId+"");
|
|
|
envRegularCallFeedingCopy.setCallName(envDevice.getDeviceName());
|
|
@@ -235,15 +250,15 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
envRegularCallFeedingCopy.setFarmId(baseDuckInfo.getFarmId());
|
|
|
envRegularCallFeedingCopy.setUnitId(baseDuckInfo.getUnitId());
|
|
|
envRegularCallFeedingCopy.setUnitName(baseDuckInfo.getUnitName());
|
|
|
- if (weight.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallFeedingCopy.setDuckFeedingOriginal((new BigDecimal(0)));
|
|
|
+ if (weight.compareTo(bigDecimal0 )==0){
|
|
|
+ envRegularCallFeedingCopy.setDuckFeedingOriginal(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallFeedingCopy.setDuckFeedingOriginal(weight.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallFeedingCopy.setDuckFeedingOriginal(weight.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
- if (subtract.compareTo(new BigDecimal(0) )==0){
|
|
|
- envRegularCallFeedingCopy.setDuckWeight((new BigDecimal(0)));
|
|
|
+ if (subtract.compareTo(bigDecimal0 )==0){
|
|
|
+ envRegularCallFeedingCopy.setDuckWeight(bigDecimal0);
|
|
|
}else {
|
|
|
- envRegularCallFeedingCopy.setDuckWeight(subtract.divide(new BigDecimal(10), 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
+ envRegularCallFeedingCopy.setDuckWeight(subtract.divide(bigDecimal10, 1, BigDecimal.ROUND_HALF_UP) );
|
|
|
}
|
|
|
|
|
|
envRegularCallFeedingCopy.setEventType(2);
|