|
@@ -44,38 +44,39 @@ public class EartagServiceImpl implements IEartagService {
|
|
private com.huimv.eartag2.manage2.mapper.SysBaseConfigMapper SysBaseConfigMapper;
|
|
private com.huimv.eartag2.manage2.mapper.SysBaseConfigMapper SysBaseConfigMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private EartagOnlineStatusMapper eartagOnlineStatusMapper;
|
|
private EartagOnlineStatusMapper eartagOnlineStatusMapper;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void updateEartagLiveStatusAndCount() throws ParseException {
|
|
public void updateEartagLiveStatusAndCount() throws ParseException {
|
|
// {}
|
|
// {}
|
|
- List<BasePigpen> basePigpenList = getUnitByPigpen();
|
|
|
|
- System.out.println("basePigpenList.size="+basePigpenList.size());
|
|
|
|
- if(basePigpenList.size() == 0){
|
|
|
|
|
|
+ List<BasePigpen> basePigpenList = getUnitByPigpen();
|
|
|
|
+ System.out.println("basePigpenList.size=" + basePigpenList.size());
|
|
|
|
+ if (basePigpenList.size() == 0) {
|
|
System.out.println("单元数为0");
|
|
System.out.println("单元数为0");
|
|
}
|
|
}
|
|
Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
|
|
Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
|
|
- int offlineTimeDef = 30;
|
|
|
|
|
|
+ long offlineTimeDef = 30;
|
|
Map confMap = new HashMap();
|
|
Map confMap = new HashMap();
|
|
- confMap.put("config_key","eartagOfflineTime");
|
|
|
|
|
|
+ confMap.put("config_key", "eartagOfflineTime");
|
|
List<SysBaseConfig> configList = SysBaseConfigMapper.selectByMap(confMap);
|
|
List<SysBaseConfig> configList = SysBaseConfigMapper.selectByMap(confMap);
|
|
for (SysBaseConfig baseConfig : configList) {
|
|
for (SysBaseConfig baseConfig : configList) {
|
|
- if(configList.size()>0){
|
|
|
|
- offlineTimeDef = Integer.parseInt(baseConfig.getConfigValue());
|
|
|
|
- log.info("耳标离线时间="+offlineTimeDef);
|
|
|
|
- }else{
|
|
|
|
|
|
+ if (configList.size() > 0) {
|
|
|
|
+ offlineTimeDef = Long.valueOf(baseConfig.getConfigValue());
|
|
|
|
+ log.info("耳标离线时间=" + offlineTimeDef);
|
|
|
|
+ } else {
|
|
log.error("耳标离线时间属性未配置.");
|
|
log.error("耳标离线时间属性未配置.");
|
|
}
|
|
}
|
|
JSONArray offlineJa = new JSONArray();
|
|
JSONArray offlineJa = new JSONArray();
|
|
List countList = new ArrayList();
|
|
List countList = new ArrayList();
|
|
String rowId = baseConfig.getRowId();
|
|
String rowId = baseConfig.getRowId();
|
|
- String farmCode = SysBaseConfigMapper.selectOne(new QueryWrapper<SysBaseConfig>().eq("config_key", "farmCode").eq("row_id", rowId)).getConfigValue();
|
|
|
|
- for(BasePigpen basePigpen:basePigpenList){
|
|
|
|
|
|
+ String farmCode = SysBaseConfigMapper.selectOne(new QueryWrapper<SysBaseConfig>().eq("config_key", "farmCode").eq("row_id", rowId)).getConfigValue();
|
|
|
|
+ for (BasePigpen basePigpen : basePigpenList) {
|
|
// System.out.println("basePigpen="+basePigpen);
|
|
// System.out.println("basePigpen="+basePigpen);
|
|
// String farmCode = basePigpen.getFarmCode();
|
|
// String farmCode = basePigpen.getFarmCode();
|
|
|
|
|
|
Integer unitId = basePigpen.getId();
|
|
Integer unitId = basePigpen.getId();
|
|
String unitName = basePigpen.getPigpenName();
|
|
String unitName = basePigpen.getPigpenName();
|
|
String pigpenName = basePigpen.getPigpenName();
|
|
String pigpenName = basePigpen.getPigpenName();
|
|
- Map countMap = new HashMap<String,Object>();
|
|
|
|
|
|
+ Map countMap = new HashMap<String, Object>();
|
|
countList.add(countMap);
|
|
countList.add(countMap);
|
|
int onlineTimes = 0;
|
|
int onlineTimes = 0;
|
|
int offlineTimes = 0;
|
|
int offlineTimes = 0;
|
|
@@ -84,27 +85,34 @@ public class EartagServiceImpl implements IEartagService {
|
|
// 用330110002测试
|
|
// 用330110002测试
|
|
// if(farmId.trim().equalsIgnoreCase("330110002")){
|
|
// if(farmId.trim().equalsIgnoreCase("330110002")){
|
|
// {读取相关耳标注册记录}
|
|
// {读取相关耳标注册记录}
|
|
- List<EartagEartagRegister2> eartagEartagRegister2List = getEartagRegister(farmCode,unitId);
|
|
|
|
- if(eartagEartagRegister2List.size() == 0){
|
|
|
|
|
|
+ List<EartagEartagRegister2> eartagEartagRegister2List = getEartagRegister(farmCode, unitId);
|
|
|
|
+ if (eartagEartagRegister2List.size() == 0) {
|
|
System.out.println("该单元没有耳标。");
|
|
System.out.println("该单元没有耳标。");
|
|
}
|
|
}
|
|
- System.out.println("该单元没有耳标 eartagEartagRegister2List.size="+eartagEartagRegister2List.size());
|
|
|
|
- for(EartagEartagRegister2 eartagEartagRegister2:eartagEartagRegister2List){
|
|
|
|
|
|
+ System.out.println("该单元没有耳标 eartagEartagRegister2List.size=" + eartagEartagRegister2List.size());
|
|
|
|
+ for (EartagEartagRegister2 eartagEartagRegister2 : eartagEartagRegister2List) {
|
|
Date lastTime = eartagEartagRegister2.getLastTime();
|
|
Date lastTime = eartagEartagRegister2.getLastTime();
|
|
- long offlineTimeDiff = nowTimestamp.getTime()-lastTime.getTime();
|
|
|
|
- if(offlineTimeDiff/(1000*60) >= offlineTimeDef){
|
|
|
|
- eartagEartagRegister2.setLiveStatus(0);
|
|
|
|
- offlineTimes++;
|
|
|
|
- if(offlineSb.length()>0){
|
|
|
|
- offlineSb.append(",");
|
|
|
|
- }if (eartagEartagRegister2.getLiveStatus() == 1){
|
|
|
|
|
|
+ long offlineTimeDiff = nowTimestamp.getTime() - lastTime.getTime();
|
|
|
|
+ long theMinutes = offlineTimeDiff / (1000 * 60);
|
|
|
|
+ System.out.println("两个时间离线的时间差为:" + theMinutes);
|
|
|
|
+ System.out.println("配置好的离线时间" + offlineTimeDef);
|
|
|
|
+ if (offlineTimeDiff / (1000 * 60) >= offlineTimeDef) {
|
|
|
|
+
|
|
|
|
+ System.out.println("-----开始了离线耳标的循环记录------");
|
|
|
|
+ if (eartagEartagRegister2.getLiveStatus() == 1) {
|
|
|
|
+ eartagEartagRegister2.setLiveStatus(0);
|
|
|
|
+ offlineTimes++;
|
|
|
|
+ if (offlineSb.length() > 0) {
|
|
|
|
+ offlineSb.append(",");
|
|
|
|
+ }
|
|
offlineSb.append(eartagEartagRegister2.getEarmark());
|
|
offlineSb.append(eartagEartagRegister2.getEarmark());
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
eartagEartagRegister2.setLiveStatus(1);
|
|
eartagEartagRegister2.setLiveStatus(1);
|
|
onlineTimes++;
|
|
onlineTimes++;
|
|
- if(onlineSb.length()>0){
|
|
|
|
|
|
+ if (onlineSb.length() > 0) {
|
|
onlineSb.append(",");
|
|
onlineSb.append(",");
|
|
}
|
|
}
|
|
onlineSb.append(eartagEartagRegister2.getEarmark());
|
|
onlineSb.append(eartagEartagRegister2.getEarmark());
|
|
@@ -112,25 +120,25 @@ public class EartagServiceImpl implements IEartagService {
|
|
eartagEartagRegister2Mapper.updateById(eartagEartagRegister2);
|
|
eartagEartagRegister2Mapper.updateById(eartagEartagRegister2);
|
|
}
|
|
}
|
|
// }
|
|
// }
|
|
- countMap.put("farmCode",farmCode);
|
|
|
|
- countMap.put("unitId",unitId);
|
|
|
|
- countMap.put("unitName",unitName);
|
|
|
|
- countMap.put("total",onlineTimes+offlineTimes);
|
|
|
|
- countMap.put("online",onlineTimes);
|
|
|
|
- countMap.put("offline",offlineTimes);
|
|
|
|
- countMap.put("onlineEarmark",onlineSb.toString());
|
|
|
|
- countMap.put("offlineEarmark",offlineSb.toString());
|
|
|
|
|
|
+ countMap.put("farmCode", farmCode);
|
|
|
|
+ countMap.put("unitId", unitId);
|
|
|
|
+ countMap.put("unitName", unitName);
|
|
|
|
+ countMap.put("total", onlineTimes + offlineTimes);
|
|
|
|
+ countMap.put("online", onlineTimes);
|
|
|
|
+ countMap.put("offline", offlineTimes);
|
|
|
|
+ countMap.put("onlineEarmark", onlineSb.toString());
|
|
|
|
+ countMap.put("offlineEarmark", offlineSb.toString());
|
|
|
|
|
|
//耳标离线报警
|
|
//耳标离线报警
|
|
- if(offlineSb.length()>0){
|
|
|
|
|
|
+ if (offlineSb.length() > 0) {
|
|
JSONObject offlineJo = new JSONObject();
|
|
JSONObject offlineJo = new JSONObject();
|
|
|
|
+ offlineJo.put("pigpen", pigpenName + unitName);
|
|
|
|
+ offlineJo.put("earmark", offlineSb.toString());
|
|
|
|
+ offlineJo.put("farmCode", farmCode);
|
|
offlineJa.add(offlineJo);
|
|
offlineJa.add(offlineJo);
|
|
- offlineJo.put("pigpen",pigpenName+unitName);
|
|
|
|
- offlineJo.put("earmark",offlineSb.toString());
|
|
|
|
- offlineJo.put("farmCode",farmCode);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- for(int a=0;a<countList.size();a++){
|
|
|
|
|
|
+ for (int a = 0; a < countList.size(); a++) {
|
|
Map countMap = (Map) countList.get(a);
|
|
Map countMap = (Map) countList.get(a);
|
|
EartagOnlineStatus eartagOnlineStatus = new EartagOnlineStatus();
|
|
EartagOnlineStatus eartagOnlineStatus = new EartagOnlineStatus();
|
|
eartagOnlineStatus.setFarmId(countMap.get("farmCode").toString());
|
|
eartagOnlineStatus.setFarmId(countMap.get("farmCode").toString());
|
|
@@ -266,15 +274,15 @@ public class EartagServiceImpl implements IEartagService {
|
|
int offlineTimes = 0;
|
|
int offlineTimes = 0;
|
|
String farmCode = "";
|
|
String farmCode = "";
|
|
//保存警报信息
|
|
//保存警报信息
|
|
- for(int a=0;a<offlineJa.size();a++){
|
|
|
|
|
|
+ for (int a = 0; a < offlineJa.size(); a++) {
|
|
JSONObject offlineJo = offlineJa.getJSONObject(a);
|
|
JSONObject offlineJo = offlineJa.getJSONObject(a);
|
|
String pigpen = offlineJo.getString("pigpen");
|
|
String pigpen = offlineJo.getString("pigpen");
|
|
String earmark = offlineJo.getString("earmark");
|
|
String earmark = offlineJo.getString("earmark");
|
|
farmCode = offlineJo.getString("farmCode");
|
|
farmCode = offlineJo.getString("farmCode");
|
|
String[] earmarkArray = earmark.split(",");
|
|
String[] earmarkArray = earmark.split(",");
|
|
offlineTimes += earmarkArray.length;
|
|
offlineTimes += earmarkArray.length;
|
|
- for(int b=0;b<earmarkArray.length;b++){
|
|
|
|
- String alarmContent = "离线警报:"+pigpen+"耳标号["+earmarkArray[b]+"]已离线";
|
|
|
|
|
|
+ for (int b = 0; b < earmarkArray.length; b++) {
|
|
|
|
+ String alarmContent = "离线警报:" + pigpen + "耳标号[" + earmarkArray[b] + "]已离线";
|
|
EartagAbnormalAlarmEntity newEartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
|
|
EartagAbnormalAlarmEntity newEartagAbnormalAlarmEntity = new EartagAbnormalAlarmEntity();
|
|
newEartagAbnormalAlarmEntity.setFarmCode(farmCode);
|
|
newEartagAbnormalAlarmEntity.setFarmCode(farmCode);
|
|
newEartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
|
|
newEartagAbnormalAlarmEntity.setAddTime(nowTimestamp);
|
|
@@ -287,7 +295,7 @@ public class EartagServiceImpl implements IEartagService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//保存耳标警报次数
|
|
//保存耳标警报次数
|
|
- saveEartagOfflineCount(farmCode,offlineTimes,todayDate,nowTimestamp);
|
|
|
|
|
|
+ saveEartagOfflineCount(farmCode, offlineTimes, todayDate, nowTimestamp);
|
|
}
|
|
}
|
|
|
|
|
|
//保存耳标警报次数
|
|
//保存耳标警报次数
|
|
@@ -297,11 +305,11 @@ public class EartagServiceImpl implements IEartagService {
|
|
eartagAbnormalCountEntity.setAddDate(todayDate);
|
|
eartagAbnormalCountEntity.setAddDate(todayDate);
|
|
Example<EartagAbnormalCountEntity> example = Example.of(eartagAbnormalCountEntity);
|
|
Example<EartagAbnormalCountEntity> example = Example.of(eartagAbnormalCountEntity);
|
|
Optional<EartagAbnormalCountEntity> optional = eartagAbnormalCountEntityRepo.findOne(example);
|
|
Optional<EartagAbnormalCountEntity> optional = eartagAbnormalCountEntityRepo.findOne(example);
|
|
- if(!optional.isPresent()){
|
|
|
|
|
|
+ if (!optional.isPresent()) {
|
|
eartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
|
|
eartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
|
|
eartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
|
|
eartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
|
|
eartagAbnormalCountEntityRepo.saveAndFlush(eartagAbnormalCountEntity);
|
|
eartagAbnormalCountEntityRepo.saveAndFlush(eartagAbnormalCountEntity);
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
EartagAbnormalCountEntity queryEartagAbnormalCountEntity = optional.get();
|
|
EartagAbnormalCountEntity queryEartagAbnormalCountEntity = optional.get();
|
|
queryEartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
|
|
queryEartagAbnormalCountEntity.setEartagStatusCount(offlineTimes);
|
|
queryEartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
|
|
queryEartagAbnormalCountEntity.setEartagStatusUpateTime(nowTimestamp);
|
|
@@ -311,14 +319,14 @@ public class EartagServiceImpl implements IEartagService {
|
|
|
|
|
|
private List<EartagEartagRegister2> getEartagRegister(String farmId, Integer unitId) {
|
|
private List<EartagEartagRegister2> getEartagRegister(String farmId, Integer unitId) {
|
|
HashMap paramsMap = new HashMap();
|
|
HashMap paramsMap = new HashMap();
|
|
- paramsMap.put("farm_id",farmId);
|
|
|
|
- paramsMap.put("unit_id",unitId);
|
|
|
|
|
|
+ paramsMap.put("farm_id", farmId);
|
|
|
|
+ paramsMap.put("unit_id", unitId);
|
|
return eartagEartagRegister2Mapper.selectByMap(paramsMap);
|
|
return eartagEartagRegister2Mapper.selectByMap(paramsMap);
|
|
}
|
|
}
|
|
|
|
|
|
- public List<BasePigpen> getUnitByPigpen(){
|
|
|
|
|
|
+ public List<BasePigpen> getUnitByPigpen() {
|
|
QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
- queryWrapper.eq("f_type","2");
|
|
|
|
|
|
+ queryWrapper.eq("f_type", "2");
|
|
return basePigpenMapper.selectList(queryWrapper);
|
|
return basePigpenMapper.selectList(queryWrapper);
|
|
}
|
|
}
|
|
|
|
|