完善更新日航班计划的同时更新登机桥信息
This commit is contained in:
+75
-27
@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.BRIDGEDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MAFLDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
@@ -45,38 +46,16 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
|
||||
.getSCHD()
|
||||
.getFLTR();
|
||||
|
||||
List<SCHD.FLTR> lsFltrWithMa = this.updateMafltr(lsFltr); //重组主航班字段
|
||||
List<SCHD.FLTR> lsFltrWithBridge = this.updatefltrBridge(lsFltr);//重组登机桥字段
|
||||
|
||||
//建立Map索引,便于查找
|
||||
|
||||
//拼装为hashmap,保存到redis
|
||||
Map<String, Object> mapFltr = new HashMap();
|
||||
for(FLTR fltr : lsFltr)
|
||||
for(FLTR fltr : lsFltrWithBridge)
|
||||
{
|
||||
mapFltr.put(fltr.getFLID().toString(), fltr);
|
||||
}
|
||||
//设置主航班的共享航班信息
|
||||
for(FLTR fltr : lsFltr)
|
||||
{
|
||||
if(fltr.getMAID() == null)
|
||||
{
|
||||
continue; //不是共享航班
|
||||
}
|
||||
|
||||
String maid = fltr.getMAID().toString();
|
||||
FLTR fltrMa = (FLTR) mapFltr.get(maid);
|
||||
if(null == fltrMa)
|
||||
{
|
||||
logger.error("共享航班:{},未找到航班id为:{}的主航班信息{}",fltr.getFLID(),maid);
|
||||
continue;
|
||||
}
|
||||
|
||||
MAFLDATA mafldata = new MAFLDATA();
|
||||
mafldata.setFlid(fltr.getFLID());
|
||||
mafldata.setFlno(fltr.getFLNO());
|
||||
|
||||
fltrMa.getMafl().add(mafldata);
|
||||
}
|
||||
|
||||
|
||||
//保存到redis
|
||||
return redisService.hmset(redisKey, mapFltr);
|
||||
} //end function
|
||||
|
||||
@@ -128,4 +107,73 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
|
||||
redisService.hdel(redisKey, flids.toArray());
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新主航班信息字段
|
||||
*/
|
||||
private List<SCHD.FLTR> updateMafltr(List<SCHD.FLTR> lsFltr)
|
||||
{
|
||||
//建立Map索引,便于查找
|
||||
Map<String, Object> mapFltr = new HashMap();
|
||||
for(FLTR fltr : lsFltr)
|
||||
{
|
||||
mapFltr.put(fltr.getFLID().toString(), fltr);
|
||||
}
|
||||
|
||||
//设置主航班的共享航班信息
|
||||
for(FLTR fltr : lsFltr)
|
||||
{
|
||||
if(fltr.getMAID() == null)
|
||||
{
|
||||
continue; //不是共享航班
|
||||
}
|
||||
|
||||
String maid = fltr.getMAID().toString();
|
||||
FLTR fltrMa = (FLTR) mapFltr.get(maid);
|
||||
if(null == fltrMa)
|
||||
{
|
||||
logger.error("共享航班:{},未找到航班id为:{}的主航班信息{}",fltr.getFLID(),maid);
|
||||
continue;
|
||||
}
|
||||
|
||||
MAFLDATA mafldata = new MAFLDATA();
|
||||
mafldata.setFlid(fltr.getFLID());
|
||||
mafldata.setFlno(fltr.getFLNO());
|
||||
|
||||
fltrMa.getMafl().add(mafldata);
|
||||
}
|
||||
|
||||
return lsFltr;
|
||||
} //end function
|
||||
|
||||
|
||||
/**
|
||||
* 登机桥信息重组
|
||||
* @return
|
||||
*/
|
||||
private List<SCHD.FLTR> updatefltrBridge(List<SCHD.FLTR> lsFltr)
|
||||
{
|
||||
//建立Map索引,便于查找
|
||||
Map<String, Object> mapFltr = new HashMap();
|
||||
for(FLTR fltr : lsFltr)
|
||||
{
|
||||
mapFltr.put(fltr.getFLID().toString(), fltr);
|
||||
}
|
||||
//设置主航班的共享航班信息
|
||||
for(FLTR fltr : lsFltr)
|
||||
{
|
||||
List<BRIDGEDATA> lsBridgedata = fltr.getABTM();
|
||||
StringBuffer abdgBuffer = new StringBuffer();
|
||||
lsBridgedata.forEach(node->{
|
||||
abdgBuffer.append(node.getABDG());
|
||||
});
|
||||
if(abdgBuffer.toString().endsWith(","))
|
||||
{
|
||||
abdgBuffer.deleteCharAt(abdgBuffer.length() - 1);
|
||||
}
|
||||
fltr.setAbdg(abdgBuffer.toString());
|
||||
}
|
||||
|
||||
return lsFltr;
|
||||
} //end function
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.gzzn.omms.msgexchangeapi.redis;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -20,4 +22,25 @@ public class RedisServiceTest {
|
||||
{
|
||||
redisService.del(Arrays.asList("flightInfo"));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 测试多几次调用,后面的是否会把前面的值覆盖 (经测试,是更新式的)
|
||||
*/
|
||||
@Test
|
||||
public void testHmset()
|
||||
{
|
||||
Map<String,Object> mapData1 = new HashMap<>();
|
||||
mapData1.put("key1", "value1");
|
||||
mapData1.put("key2", "value2");
|
||||
redisService.hmset("hkey", mapData1);
|
||||
|
||||
|
||||
Map<String,Object> mapData2 = new HashMap<>();
|
||||
mapData2.put("key1", "value2");
|
||||
mapData2.put("key3", "value4");
|
||||
mapData2.put("key4", "value5");
|
||||
redisService.hmset("hkey", mapData2);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user