修正收到的相同的psdt 仍然更新了LPSDT

This commit is contained in:
zhouxiunai
2019-02-18 15:56:28 +08:00
parent b222052c95
commit fee7c7778a
2 changed files with 34 additions and 1 deletions
@@ -1,5 +1,7 @@
package com.gzzn.omms.msgexchangeapi.msghandler.flop; package com.gzzn.omms.msgexchangeapi.msghandler.flop;
import java.util.List;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -24,6 +26,12 @@ public class PSDTHandler extends FlopBaseHandler {
@Override @Override
protected SCHD.FLTR updateFltr(FLOP flop,SCHD.FLTR fltr) protected SCHD.FLTR updateFltr(FLOP flop,SCHD.FLTR fltr)
{ {
//相同直接返回
if(isTheSamePSDT(fltr.getPSDT(),flop.getPSDT()))
{
return fltr;
}
//先保存当前航班机位数据 //先保存当前航班机位数据
String lpsdt=""; String lpsdt="";
for(STANDDATA node : fltr.getPSDT()) for(STANDDATA node : fltr.getPSDT())
@@ -65,4 +73,26 @@ public class PSDTHandler extends FlopBaseHandler {
return fltr; return fltr;
} }
private Boolean isTheSamePSDT(List<STANDDATA> psdt ,List<OPTSTANDDATA> optPsdt)
{
psdt.sort((node1,node2)-> node1.getPSST().compareTo(node2.getPSST()));
optPsdt.sort((node1,node2)-> node1.getPSST().compareTo(node2.getPSST()));
//生成序列比较是否相等
StringBuffer strPsdt = new StringBuffer();
psdt.forEach(node->{
strPsdt.append(node.getPSST());
strPsdt.append(",");
});
StringBuffer strOptPsdt = new StringBuffer();
optPsdt.forEach(node->{
strOptPsdt.append(node.getPSST());
strOptPsdt.append(",");
});
return strPsdt.toString().equals(strOptPsdt.toString());
}
} }
@@ -27,7 +27,7 @@ public class PSDTHandlerTest {
@Test @Test
public void testRun() public void testRun()
{ {
Cminmsg cminmsg = cminmsgDao.findOne(33L); Cminmsg cminmsg = cminmsgDao.findOne(80586L);
CminmsgWapper cminmsgWapper = new CminmsgWapper(cminmsg); CminmsgWapper cminmsgWapper = new CminmsgWapper(cminmsg);
cminmsgWapper.setMsg(exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg())); cminmsgWapper.setMsg(exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg()));
@@ -36,4 +36,7 @@ public class PSDTHandlerTest {
System.out.println(JsonUtil.getString(result)); System.out.println(JsonUtil.getString(result));
} }
} }