FFMResolveImpl.java
2.6 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
package com.tianbo.analysis.service.imp;
import com.tianbo.analysis.dao.FFMInfoDao;
import com.tianbo.analysis.dao.TBBaseAirportInfoDao;
import com.tianbo.analysis.exception.FFMResolveException;
import com.tianbo.analysis.model.FFMInfo;
import com.tianbo.analysis.model.TBBaseAirportInfo;
import com.tianbo.analysis.service.FFMResolve;
import com.tianbo.util.Date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.text.ParseException;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Slf4j
@Service
public class FFMResolveImpl implements FFMResolve {
@Resource
TBBaseAirportInfoDao airportInfoDao;
@Resource
FFMInfoDao ffmInfoDao;
@Override
public boolean resolve(FFMInfo ffmInfo) {
try{
ffmInfo.textToStringList();
ffmInfo.resolveFFMPart();
List<FFMInfo> ffmInfoList = ffmInfo.resolve_ULD_Waybill();
if (!ffmInfoList.isEmpty()){
log.info("解析了{}个舱单",ffmInfoList.size());
for (FFMInfo ffm : ffmInfoList) {
//todo:国际转运判定,需要维护机场代码静态表
List<TBBaseAirportInfo> airportInfoList= airportInfoDao.checkInternal(ffm.getOriginatingstationBill(),ffm.getDestinationstationBill());
if (!airportInfoList.isEmpty() && airportInfoList.size()>1){
if (airportInfoList.get(0).getInternal().equals(airportInfoList.get(1).getInternal()) && "1".equals(airportInfoList.get(1).getInternal())){
ffm.setCustomsstatus("002");
log.info("运单{}为国际转运货物",ffm.getWaybillnomaster());
}
}else {
log.error("{}{}机场代码未备案",ffm.getOriginatingstationBill(),ffm.getDestinationstationBill());
}
int result = ffmInfoDao.insertSelective(ffm);
if (result <=0){
log.error("{}入库失败",ffm.getWaybillnomaster());
}
//todo:重复报文入库逻辑将以删除旧报文插入新报文为准
}
return true;
}
} catch (Exception e){
e.printStackTrace();
log.error(e.toString());
}
return false;
}
}