|
@@ -56,23 +56,24 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
|
Date now = new Date();
|
|
|
LambdaQueryWrapper<AdminAircraftPosition> adminAircraftPositionLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
adminAircraftPositionLambdaQueryWrapper.eq(AdminAircraftPosition::getAircraftPositionNum, CODE);
|
|
|
- AdminAircraftPosition aircraftPosition = getAdminAircraftPositionService().getOne(adminAircraftPositionLambdaQueryWrapper);
|
|
|
- if (aircraftPosition != null) {
|
|
|
+
|
|
|
+ AdminAircraftPosition codeAircraftPosition = getAdminAircraftPositionService().getOne(adminAircraftPositionLambdaQueryWrapper);
|
|
|
+ if (codeAircraftPosition != null) {
|
|
|
log.info("查询到相应的机位:{}", CODE);
|
|
|
- log.info("机位当前信息:{}", aircraftPosition);
|
|
|
+ log.info("机位当前信息:{}", codeAircraftPosition);
|
|
|
|
|
|
- AdminDfdlList adminDfdlList = getAdminDfdlListService().getById(FLID);
|
|
|
- if (adminDfdlList == null) {
|
|
|
+ AdminDfdlList stlsDfdlList = getAdminDfdlListService().getById(FLID);
|
|
|
+ if (stlsDfdlList == null) {
|
|
|
|
|
|
log.error("此航班【{}】,没有计划", FLID);
|
|
|
return;
|
|
|
}
|
|
|
- log.info("查询到计划内容:{}", adminDfdlList);
|
|
|
- if (adminDfdlList.getArrival() > 0) {
|
|
|
+ log.info("查询到计划内容:{}", stlsDfdlList);
|
|
|
+ if (stlsDfdlList.getArrival() > 0) {
|
|
|
|
|
|
log.info("此航班【{}】,已经到站,判断是否出站", FLID);
|
|
|
|
|
|
- if (adminDfdlList.getRend() != null) {
|
|
|
+ if (stlsDfdlList.getRend() != null) {
|
|
|
|
|
|
log.info("出站清空机位");
|
|
|
getAdminAircraftPositionService().dept(FLID);
|
|
@@ -83,12 +84,12 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (adminDfdlList.getRend() != null) {
|
|
|
+ if (stlsDfdlList.getRend() != null) {
|
|
|
|
|
|
getAdminAircraftPositionService().dept(FLID);
|
|
|
- adminDfdlList.setArrival(1);
|
|
|
- updateAdminDfdl(adminDfdlList);
|
|
|
- log.info("计划中此航班【{}】,已经出站,{}", FLID, adminDfdlList);
|
|
|
+ stlsDfdlList.setArrival(1);
|
|
|
+ updateAdminDfdl(stlsDfdlList);
|
|
|
+ log.info("计划中此航班【{}】,已经出站,{}", FLID, stlsDfdlList);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -96,21 +97,23 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
|
|
|
|
LambdaQueryWrapper<AdminAircraftPosition> aircraftPositionByFlidQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
aircraftPositionByFlidQueryWrapper.eq(AdminAircraftPosition::getFlightSole, FLID);
|
|
|
- AdminAircraftPosition adminAircraftPosition = getAdminAircraftPositionService().getOne(aircraftPositionByFlidQueryWrapper);
|
|
|
- if (adminAircraftPosition != null) {
|
|
|
+
|
|
|
+ AdminAircraftPosition flidAircraftPosition = getAdminAircraftPositionService().getOne(aircraftPositionByFlidQueryWrapper);
|
|
|
+ if (flidAircraftPosition != null) {
|
|
|
log.info("此航班【{}】在机位表中被发现", FLID);
|
|
|
|
|
|
- if (!adminAircraftPosition.getAircraftPositionNum().equals(CODE)) {
|
|
|
+ if (!flidAircraftPosition.getAircraftPositionNum().equals(CODE)) {
|
|
|
log.info("此航班【{}】与对应机位所属数据不匹配,进行交换机位数据操作", FLID);
|
|
|
|
|
|
|
|
|
- aircraftPosition.setAircraftNum(adminAircraftPosition.getAircraftNum());
|
|
|
- aircraftPosition.setType(adminAircraftPosition.getType());
|
|
|
- aircraftPosition.setDropTime(adminAircraftPosition.getDropTime());
|
|
|
- aircraftPosition.setFlightNum(adminAircraftPosition.getFlightNum());
|
|
|
- aircraftPosition.setFlightAfid(adminAircraftPosition.getFlightAfid());
|
|
|
+ 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(adminAircraftPosition.getId());
|
|
|
+ getAdminAircraftPositionService().dept(flidAircraftPosition.getId());
|
|
|
isChangeFlag = true;
|
|
|
} else {
|
|
|
|
|
@@ -122,95 +125,113 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
|
Object rstr = map.get("RSTR");
|
|
|
|
|
|
if (rstr != null) {
|
|
|
- log.info("判断flid:{}是否已经占用机位", adminDfdlList.getFlid());
|
|
|
+ log.info("判断flid:{}是否已经占用机位", stlsDfdlList.getFlid());
|
|
|
|
|
|
Object rend = map.get("REND");
|
|
|
if (rend != null) {
|
|
|
- log.info("flid:{},有实际结束占用时间{}", adminDfdlList.getFlid(), String.valueOf(rend).replace("null", ""));
|
|
|
+ log.info("flid:{},有实际结束占用时间{}", stlsDfdlList.getFlid(), String.valueOf(rend).replace("null", ""));
|
|
|
|
|
|
Date rendDate = strToDate(String.valueOf(rend).replace("null", ""));
|
|
|
if (rendDate.before(now)) {
|
|
|
- log.info("flid:{},有实际结束占用时间{}, 且小于当前时间, 清空机位", adminDfdlList.getFlid(), String.valueOf(rend).replace("null", ""));
|
|
|
+ log.info("flid:{},有实际结束占用时间{}, 且小于当前时间, 清空机位", stlsDfdlList.getFlid(), String.valueOf(rend).replace("null", ""));
|
|
|
|
|
|
- getAdminAircraftPositionService().dept(aircraftPosition.getId());
|
|
|
- adminDfdlList.setArrival(1);
|
|
|
- updateAdminDfdl(adminDfdlList);
|
|
|
+ getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
|
|
|
+ stlsDfdlList.setArrival(1);
|
|
|
+ updateAdminDfdl(stlsDfdlList);
|
|
|
|
|
|
return;
|
|
|
} else {
|
|
|
|
|
|
- log.info("flid:{},有实际结束占用时间{},且大于当前时间", adminDfdlList.getFlid(), rendDate);
|
|
|
+ log.info("flid:{},有实际结束占用时间{},且大于当前时间", stlsDfdlList.getFlid(), rendDate);
|
|
|
}
|
|
|
} else {
|
|
|
|
|
|
- log.info("flid:{},没有实际结束占用时间,判断是否有实际开始占用时间", adminDfdlList.getFlid());
|
|
|
+ log.info("flid:{},没有实际结束占用时间,判断是否有实际开始占用时间", stlsDfdlList.getFlid());
|
|
|
|
|
|
Date rstrDate = strToDate(String.valueOf(rstr).replace("null", ""));
|
|
|
if (rstrDate != null) {
|
|
|
- log.info("flid:{},有实际开始占用时间{},应占用机位", rstrDate, adminDfdlList.getFlid());
|
|
|
-
|
|
|
- aircraftPosition.setType("使用中");
|
|
|
- adminDfdlList.setArrival(1);
|
|
|
- setStlsDate(adminDfdlList);
|
|
|
- if (!isChangeFlag) {
|
|
|
- log.info("flid:{},copy", adminDfdlList.getFlid());
|
|
|
- adminDfdlCopyToAirPosition(adminDfdlList, aircraftPosition);
|
|
|
- }
|
|
|
-
|
|
|
- getAdminAircraftPositionService().updateById(aircraftPosition);
|
|
|
-
|
|
|
- updateAdminDfdl(adminDfdlList);
|
|
|
-
|
|
|
+ log.info("flid:{},有实际开始占用时间{},应占用机位", rstrDate, stlsDfdlList.getFlid());
|
|
|
+ setUsePosition(codeAircraftPosition, stlsDfdlList, isChangeFlag);
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
-
|
|
|
- log.info("flid:{},没有实际占用时间", adminDfdlList.getFlid());
|
|
|
+
|
|
|
+ log.info("flid:{},没有实际占用时间", stlsDfdlList.getFlid());
|
|
|
}
|
|
|
|
|
|
- if (adminAircraftPosition == null) {
|
|
|
- log.info("此航班【{}】未在机位表中被发现,判断是否有结束时间,有直接占用,没有判断机位上航班【{}】是否结束占用没结束就不占用", FLID, aircraftPosition.getFlightSole());
|
|
|
+
|
|
|
+ if (flidAircraftPosition == null) {
|
|
|
+ log.info("此航班【{}】未在机位表中被发现,判断机位上航班【{}】是否结束占用没结束就不占用", FLID, codeAircraftPosition.getFlightSole());
|
|
|
|
|
|
- if (aircraftPosition.getFlightSole() != null && !FLID.equals(aircraftPosition.getFlightSole())) {
|
|
|
+ if (codeAircraftPosition.getFlightSole() != null && !FLID.equals(codeAircraftPosition.getFlightSole())) {
|
|
|
|
|
|
-
|
|
|
- AdminDfdlList byId = getAdminDfdlListService().getById(aircraftPosition.getFlightSole());
|
|
|
- if (byId != null) {
|
|
|
- log.info("机位【{}】上的航班flid:{}在计划中", CODE, byId.getFlid());
|
|
|
- if (byId.getArrival() > 0) {
|
|
|
- log.info("当前机位【{}】的航班到站FLID:{}", CODE, byId.getFlid());
|
|
|
+
|
|
|
+ AdminDfdlList codeDfdlList = getAdminDfdlListService().getById(codeAircraftPosition.getFlightSole());
|
|
|
+ if (codeDfdlList != null) {
|
|
|
+ log.info("机位【{}】上的航班flid:{}在计划中", CODE, codeDfdlList.getFlid());
|
|
|
+ if (codeDfdlList.getArrival() > 0) {
|
|
|
+ log.info("当前机位【{}】的航班到站FLID:{}", CODE, codeDfdlList.getFlid());
|
|
|
|
|
|
- if (isArrival(CODE, now, byId)) return;
|
|
|
+ if (isArrival(CODE, now, codeDfdlList)) {
|
|
|
+
|
|
|
+ if ("空置".equals(codeAircraftPosition.getType())){
|
|
|
+
|
|
|
+ log.info("空置状态,改为占用");
|
|
|
+ setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+
|
|
|
+ if ("使用中".equals(codeAircraftPosition.getType())){
|
|
|
+
|
|
|
+ log.info("使用状态改为空置");
|
|
|
+ getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
- log.info("当前机位【{}】的航班未到站FLID:{}", CODE, byId.getFlid());
|
|
|
+ log.info("当前机位【{}】的航班未到站FLID:{},状态:{}", CODE, codeDfdlList.getFlid(), codeAircraftPosition.getType());
|
|
|
|
|
|
-
|
|
|
- if (!isArrival(CODE, now, adminDfdlList)) {
|
|
|
+
|
|
|
+ if (!isArrival(CODE, now, codeDfdlList)) {
|
|
|
log.info("不需要占用");
|
|
|
+ if ("使用中".equals(codeAircraftPosition.getType())){
|
|
|
+ log.info("使用状态改为空置");
|
|
|
+ getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
|
|
|
+
|
|
|
+ AdminAircraftPosition adminAircraftPosition = new AdminAircraftPosition();
|
|
|
+ adminAircraftPosition.setId(codeAircraftPosition.getId());
|
|
|
+ adminAircraftPosition.setFlightSole(codeAircraftPosition.getFlightSole());
|
|
|
+ getAdminAircraftPositionService().updateById(adminAircraftPosition);
|
|
|
+ }
|
|
|
return;
|
|
|
} else {
|
|
|
- log.info("需要占用,设置到站值为1");
|
|
|
- adminDfdlList.setArrival(1);
|
|
|
+ log.info("需要占用");
|
|
|
+ if ("空置".equals(codeAircraftPosition.getType())){
|
|
|
+ log.info("空置状态,改为占用");
|
|
|
+
|
|
|
+ setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
|
|
|
+ }
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
- log.info("机位【{}】上的航班flid:{}不在计划中", CODE, aircraftPosition.getFlightSole());
|
|
|
+ log.info("机位【{}】上的航班flid:{}不在计划中", CODE, codeAircraftPosition.getFlightSole());
|
|
|
|
|
|
- log.error("判断机位冲突时发现此航班【{}】,没有计划", adminAircraftPosition.getFlightSole());
|
|
|
+ log.error("判断机位冲突时发现此航班【{}】,没有计划", flidAircraftPosition.getFlightSole());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
- aircraftPosition.setFlightSole(FLID);
|
|
|
- getAdminAircraftPositionService().updateById(aircraftPosition);
|
|
|
+ codeAircraftPosition.setFlightSole(FLID);
|
|
|
+ getAdminAircraftPositionService().updateById(codeAircraftPosition);
|
|
|
|
|
|
- updateAdminDfdl(adminDfdlList);
|
|
|
- log.info("最终更新计划数据:{}", adminDfdlList);
|
|
|
- log.info("最终更新机位数据:{}", aircraftPosition);
|
|
|
+ updateAdminDfdl(stlsDfdlList);
|
|
|
+ log.info("最终更新计划数据:{}", stlsDfdlList);
|
|
|
+ log.info("最终更新机位数据:{}", codeAircraftPosition);
|
|
|
} else {
|
|
|
log.error("未找到对应机位【{}】", CODE);
|
|
|
}
|
|
@@ -218,6 +239,28 @@ public class StlsImfMsg extends ImfMsgAbstract {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ * 占用机位
|
|
|
+ * @param codeAircraftPosition
|
|
|
+ * @param dfdlList
|
|
|
+ * @param isChangeFlag
|
|
|
+ */
|
|
|
+ private void setUsePosition(AdminAircraftPosition codeAircraftPosition, AdminDfdlList dfdlList, boolean isChangeFlag) {
|
|
|
+
|
|
|
+ codeAircraftPosition.setType("使用中");
|
|
|
+ dfdlList.setArrival(1);
|
|
|
+ setStlsDate(dfdlList);
|
|
|
+ if (!isChangeFlag) {
|
|
|
+ log.info("flid:{},copy", dfdlList.getFlid());
|
|
|
+ adminDfdlCopyToAirPosition(dfdlList, codeAircraftPosition);
|
|
|
+ }
|
|
|
+
|
|
|
+ getAdminAircraftPositionService().updateById(codeAircraftPosition);
|
|
|
+
|
|
|
+ updateAdminDfdl(dfdlList);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
* 判断已经到站的飞机是否需要占用机位
|
|
|
* 需要返回 true
|
|
|
* 不需要返回 false
|