FFMInfoHandle.java
5.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.tianbo.analysis.task;
import com.netflix.discovery.converters.Auto;
import com.tianbo.analysis.dao.FWBINFOMapper;
import com.tianbo.analysis.dao.ORIGINMANIFESTMASTERMapper;
import com.tianbo.analysis.dao.OriginmanifestsecondaryMapper;
import com.tianbo.analysis.model.FFMInfo;
import com.tianbo.analysis.model.FWBINFO;
import com.tianbo.analysis.model.ORIGINMANIFESTMASTER;
import com.tianbo.analysis.model.Originmanifestsecondary;
import com.tianbo.analysis.service.FFMInfoService;
import com.tianbo.analysis.service.FWBInfoService;
import com.tianbo.analysis.service.ManifestMasterService;
import com.tianbo.analysis.service.ManifestSecondService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
/**
* ffm临时业务表处理入业务库
*
*/
@Component
public class FFMInfoHandle {
@Autowired
FFMInfoService ffmInfoService;
@Autowired
ORIGINMANIFESTMASTERMapper originmanifestmasterMapper;
@Autowired
ManifestMasterService manifestMasterService;
@Autowired
FWBInfoService fwbInfoService;
@Autowired
OriginmanifestsecondaryMapper originmanifestsecondaryMapper;
@Autowired
ManifestSecondService secondService;
public boolean dealFFMInfo(){
boolean result =false;
try {
//1.处理板箱非空的数据
List<FFMInfo> ffmInfoList = ffmInfoService.getDistinctFlightWithPallet(false);
if (ffmInfoList!=null && !ffmInfoList.isEmpty()){
for (FFMInfo item_f:ffmInfoList) {
//针对补发报文处理,补发的报文: FFM_INFOB表数据,存储的报文批次01对应标识是LAST
List<FFMInfo> ffmlist_reportorder_1 = ffmInfoService.getFFMLastReportOrderByPallet(item_f,false);
/**
* 判断列表是否为空
* 不为空则说明 FFM只有一份,第一份报文包含LAST标识
*/
if (ffmlist_reportorder_1 !=null && !ffmlist_reportorder_1.isEmpty()){
for (FFMInfo item:ffmlist_reportorder_1) {
//1.1 查看舱单运单业务表是否已存在运单数据,不存在则插入业务表,存在则更新临时表的数据为已处理
int Flag = 0;
Flag = manifestMasterService.insertManifestWithMaster(item);
if (Flag>0){
result = true;
//业务数据入库成功后,更新舱单待处理表的数据状态为 1,根据航班号+航班日期+主单号
ffmInfoService.setDealstatusSuccess(item);
//舱单报文入库后, 更新FWB信息,将FWB临时表的信息更新到 舱单业务表
fwbInfoService.updateFwbToManifest(item.getWaybillnomaster());
//分单挂主单
int i = secondService.setManifestMaster(item);
}
}
}
/**
*FFM文件多份处理
*/
else
{
//首先确定带有LAST的ffm的最批次大序号
//根据航班号+航班日期 判断LAST报对应的报文批次
List<FFMInfo> _last = ffmInfoService.getLastReportOrder(item_f,false);
List<FFMInfo> _last_count = ffmInfoService.getLastCountByPallet(item_f,false);
if (_last != null && _last.size() > 0 && _last_count != null && _last_count.size() > 0){
int mm = Integer.parseInt(_last.get(0).getReportorder());
int nn = Integer.parseInt(_last_count.get(0).getReportorder());
if (mm > 0 && nn > 0 && mm == nn){
// 业务数据 开始入库
List<FFMInfo> ffmlist = ffmInfoService.getFFMinfoByPallet(item_f,false);
if (ffmlist != null && ffmlist.size() > 0){
for (FFMInfo item:ffmlist) {
int Flag = 0;
Flag = manifestMasterService.insertManifestWithMaster(item);
if (Flag>0){
result = true;
//业务数据入库成功后,更新舱单待处理表的数据状态为 1,根据航班号+航班日期+主单号
ffmInfoService.setDealstatusSuccess(item);
//舱单报文入库后, 更新FWB信息,将FWB临时表的信息更新到 舱单业务表
fwbInfoService.updateFwbToManifest(item.getWaybillnomaster());
//分单挂主单
int i = secondService.setManifestMaster(item);
}
}
}
}
}
}
}
}
}catch (Exception e){
e.printStackTrace();
}
return true;
}
}