|
@@ -43,6 +43,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
// 没有的计划
|
|
// 没有的计划
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ Date now = new Date();
|
|
// 先更新计划时间
|
|
// 先更新计划时间
|
|
updateAdminDfdlTime(dfdlList);
|
|
updateAdminDfdlTime(dfdlList);
|
|
if ("A".equals(dfdlList.getFlio())) {
|
|
if ("A".equals(dfdlList.getFlio())) {
|
|
@@ -53,7 +54,6 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
log.error("未获取到机位!(/MSG/DFLT/STLS/STND/CODE)");
|
|
log.error("未获取到机位!(/MSG/DFLT/STLS/STND/CODE)");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- Date now = new Date();
|
|
|
|
LambdaQueryWrapper<AdminAircraftPosition> adminAircraftPositionLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<AdminAircraftPosition> adminAircraftPositionLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
adminAircraftPositionLambdaQueryWrapper.eq(AdminAircraftPosition::getAircraftPositionNum, CODE);
|
|
adminAircraftPositionLambdaQueryWrapper.eq(AdminAircraftPosition::getAircraftPositionNum, CODE);
|
|
// 通过机位查询到的数据
|
|
// 通过机位查询到的数据
|
|
@@ -106,15 +106,15 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
log.info("此航班【{}】与对应机位所属数据不匹配,进行交换机位数据操作", FLID);
|
|
log.info("此航班【{}】与对应机位所属数据不匹配,进行交换机位数据操作", FLID);
|
|
//表中有但不是一个机位
|
|
//表中有但不是一个机位
|
|
//给新匹配到的机位上附上信息
|
|
//给新匹配到的机位上附上信息
|
|
- codeAircraftPosition.setAircraftNum(flidAircraftPosition.getAircraftNum());
|
|
|
|
- codeAircraftPosition.setType(flidAircraftPosition.getType());
|
|
|
|
- codeAircraftPosition.setDropTime(flidAircraftPosition.getDropTime());
|
|
|
|
- codeAircraftPosition.setFlightNum(flidAircraftPosition.getFlightNum());
|
|
|
|
- codeAircraftPosition.setFlightAfid(flidAircraftPosition.getFlightAfid());
|
|
|
|
- codeAircraftPosition.setFlightSole(FLID);
|
|
|
|
|
|
+ //codeAircraftPosition.setAircraftNum(flidAircraftPosition.getAircraftNum());
|
|
|
|
+ //codeAircraftPosition.setType(flidAircraftPosition.getType());
|
|
|
|
+ //codeAircraftPosition.setDropTime(flidAircraftPosition.getDropTime());
|
|
|
|
+ //codeAircraftPosition.setFlightNum(flidAircraftPosition.getFlightNum());
|
|
|
|
+ //codeAircraftPosition.setFlightAfid(flidAircraftPosition.getFlightAfid());
|
|
|
|
+ //codeAircraftPosition.setFlightSole(FLID);
|
|
//清空旧的机位
|
|
//清空旧的机位
|
|
getAdminAircraftPositionService().dept(flidAircraftPosition.getId());
|
|
getAdminAircraftPositionService().dept(flidAircraftPosition.getId());
|
|
- isChangeFlag = true;
|
|
|
|
|
|
+ //isChangeFlag = true;
|
|
} else {
|
|
} else {
|
|
// 是一个机位
|
|
// 是一个机位
|
|
}
|
|
}
|
|
@@ -175,7 +175,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
// 已经到站, 判断是否结束占用
|
|
// 已经到站, 判断是否结束占用
|
|
if (isArrival(CODE, now, codeDfdlList)) {
|
|
if (isArrival(CODE, now, codeDfdlList)) {
|
|
// 需要占用
|
|
// 需要占用
|
|
- if ("空置".equals(codeAircraftPosition.getType())){
|
|
|
|
|
|
+ if ("空置".equals(codeAircraftPosition.getType())) {
|
|
// 改为占用
|
|
// 改为占用
|
|
log.info("空置状态,改为占用");
|
|
log.info("空置状态,改为占用");
|
|
setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
|
|
setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
|
|
@@ -183,7 +183,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
return;
|
|
return;
|
|
} else {
|
|
} else {
|
|
//不需要占用,先置空,走到此处表明上一条数据没到站,新来的数据也没到站(但是计划里面设置到站了数据异常!),暂时不反回先把新来的数据flid放到机位上
|
|
//不需要占用,先置空,走到此处表明上一条数据没到站,新来的数据也没到站(但是计划里面设置到站了数据异常!),暂时不反回先把新来的数据flid放到机位上
|
|
- if ("使用中".equals(codeAircraftPosition.getType())){
|
|
|
|
|
|
+ if ("使用中".equals(codeAircraftPosition.getType())) {
|
|
// 改为空置
|
|
// 改为空置
|
|
log.info("使用状态改为空置");
|
|
log.info("使用状态改为空置");
|
|
getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
|
|
getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
|
|
@@ -195,7 +195,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
// 机位上的航班不需要占用机位就返回
|
|
// 机位上的航班不需要占用机位就返回
|
|
if (!isArrival(CODE, now, codeDfdlList)) {
|
|
if (!isArrival(CODE, now, codeDfdlList)) {
|
|
log.info("不需要占用");
|
|
log.info("不需要占用");
|
|
- if ("使用中".equals(codeAircraftPosition.getType())){
|
|
|
|
|
|
+ if ("使用中".equals(codeAircraftPosition.getType())) {
|
|
log.info("使用状态改为空置");
|
|
log.info("使用状态改为空置");
|
|
getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
|
|
getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
|
|
// 更新机位对应的航班
|
|
// 更新机位对应的航班
|
|
@@ -207,7 +207,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
return;
|
|
return;
|
|
} else {
|
|
} else {
|
|
log.info("需要占用");
|
|
log.info("需要占用");
|
|
- if ("空置".equals(codeAircraftPosition.getType())){
|
|
|
|
|
|
+ if ("空置".equals(codeAircraftPosition.getType())) {
|
|
log.info("空置状态,改为占用");
|
|
log.info("空置状态,改为占用");
|
|
// 改为占用
|
|
// 改为占用
|
|
setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
|
|
setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
|
|
@@ -235,16 +235,43 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
} else {
|
|
} else {
|
|
log.error("未找到对应机位【{}】", CODE);
|
|
log.error("未找到对应机位【{}】", CODE);
|
|
}
|
|
}
|
|
|
|
+ } else if ("D".equals(dfdlList.getFlio())) {
|
|
|
|
+ // 出站飞机
|
|
|
|
+ // 判断是否已经离开机位
|
|
|
|
+ Map map = null;
|
|
|
|
+ try {
|
|
|
|
+ map = getStlsDateMap(getXmlStr());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("此出站消息没有时间标签");
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (map == null || map.isEmpty()) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ Object rend = map.get("REND");
|
|
|
|
+ if (rend == null) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ Date rendDate = strToDate(String.valueOf(rend).replace("null", ""));
|
|
|
|
+ if (rendDate != null && rendDate.before(now)) {
|
|
|
|
+ // 离站了
|
|
|
|
+ DepeImfMsg depeImfMsg = new DepeImfMsg(getXmlStr());
|
|
|
|
+ depeImfMsg.depeHandle(String.valueOf(dfdlList.getFlid()).replace("null", ""), rendDate);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 占用机位
|
|
* 占用机位
|
|
|
|
+ *
|
|
* @param codeAircraftPosition
|
|
* @param codeAircraftPosition
|
|
* @param dfdlList
|
|
* @param dfdlList
|
|
* @param isChangeFlag
|
|
* @param isChangeFlag
|
|
*/
|
|
*/
|
|
- private void setUsePosition(AdminAircraftPosition codeAircraftPosition, AdminDfdlList dfdlList, boolean isChangeFlag) {
|
|
|
|
|
|
+ @Transactional
|
|
|
|
+ void setUsePosition(AdminAircraftPosition codeAircraftPosition, AdminDfdlList dfdlList, boolean isChangeFlag) {
|
|
// 到站
|
|
// 到站
|
|
codeAircraftPosition.setType("使用中");
|
|
codeAircraftPosition.setType("使用中");
|
|
dfdlList.setArrival(1);
|
|
dfdlList.setArrival(1);
|
|
@@ -255,6 +282,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
}
|
|
}
|
|
// 更新机位
|
|
// 更新机位
|
|
getAdminAircraftPositionService().updateById(codeAircraftPosition);
|
|
getAdminAircraftPositionService().updateById(codeAircraftPosition);
|
|
|
|
+ log.info("更新机位:{}", codeAircraftPosition);
|
|
// 更新计划
|
|
// 更新计划
|
|
updateAdminDfdl(dfdlList);
|
|
updateAdminDfdl(dfdlList);
|
|
// 结束
|
|
// 结束
|