完善更新日航班计划的同时更新登机桥信息
This commit is contained in:
+75
-27
@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
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.MAFLDATA;
|
||||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||||
@@ -45,38 +46,16 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
|
|||||||
.getSCHD()
|
.getSCHD()
|
||||||
.getFLTR();
|
.getFLTR();
|
||||||
|
|
||||||
|
List<SCHD.FLTR> lsFltrWithMa = this.updateMafltr(lsFltr); //重组主航班字段
|
||||||
|
List<SCHD.FLTR> lsFltrWithBridge = this.updatefltrBridge(lsFltr);//重组登机桥字段
|
||||||
|
|
||||||
//建立Map索引,便于查找
|
|
||||||
|
//拼装为hashmap,保存到redis
|
||||||
Map<String, Object> mapFltr = new HashMap();
|
Map<String, Object> mapFltr = new HashMap();
|
||||||
for(FLTR fltr : lsFltr)
|
for(FLTR fltr : lsFltrWithBridge)
|
||||||
{
|
{
|
||||||
mapFltr.put(fltr.getFLID().toString(), fltr);
|
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);
|
return redisService.hmset(redisKey, mapFltr);
|
||||||
} //end function
|
} //end function
|
||||||
|
|
||||||
@@ -128,4 +107,73 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
|
|||||||
redisService.hdel(redisKey, flids.toArray());
|
redisService.hdel(redisKey, flids.toArray());
|
||||||
return true;
|
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;
|
package com.gzzn.omms.msgexchangeapi.redis;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -20,4 +22,25 @@ public class RedisServiceTest {
|
|||||||
{
|
{
|
||||||
redisService.del(Arrays.asList("flightInfo"));
|
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