BaseVeCheck.groovy
3.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
package com.sy.groovy
import com.sy.model.GatherInfo
import com.sy.model.LandRoadVe
import com.sy.service.LandRoadVeService
import com.sy.service.impl.GatherInfoHandle
import org.apache.commons.lang3.StringUtils
import org.basis.enhance.groovy.entity.ExecuteParams
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.context.ApplicationContext
/**
* 基本验放
* 车辆备案验放
*/
class BaseVeCheck extends Script implements ChannelCheckScript {
private final Logger logger = LoggerFactory.getLogger(getClass());
private final String NORECORD = "车辆未备案或者识别错误,车牌号:";
private final String VE_RECORD_WEIGHT_ERR = "车辆备案信息异常";
private final String BLACKLIST= "车辆已被拉进黑名单,不允许出区";
/**x21指令判定
* 传入gatherInfo,三大属性验证,二维码/车牌/过卡重量
* 车辆备案实体
* 从redis读取的申请表体实体
*/
Boolean check(ExecuteParams executeParams) {
try{
GatherInfo gatherInfo = (GatherInfo) executeParams.get("gatherInfo");
LandRoadVe ve = (LandRoadVe) executeParams.get("LandRoadVe");
//3.车辆备案验证
// 调用方法
ApplicationContext context = getContext();
// 获取容器中的bean
GatherInfoHandle gatherInfoHandle = context.getBean(GatherInfoHandle.class);
//若无备案信息或者黑名单,返回车辆未备案或者识别错误,
if (ve == null) {
logger.error(NORECORD+gatherInfo.getVename());
gatherInfoHandle.sendBw(gatherInfo,false,NORECORD + gatherInfo.getVename(),null,null);
return false;
}
logger.info("[VE-CHECK-SUCCESS]:{}:备案验证通过",gatherInfo.getVename());
//车辆备案重量
Double selfWt=Double.parseDouble(ve.getSelfWt());
if (!(selfWt>0)){
logger.error(VE_RECORD_WEIGHT_ERR+gatherInfo.getVename());
gatherInfoHandle.sendBw(gatherInfo,false,gatherInfo.getVename()+VE_RECORD_WEIGHT_ERR,null,null);
return false;
}
logger.info("[VE-CHECK-SUCCESS]:{}备案重量[{}]验证通过",gatherInfo.getVename(),selfWt)
//车辆黑名单校验
if (!veBlackListCheck(ve)){
logger.error(BLACKLIST+gatherInfo.getVename());
gatherInfoHandle.sendBw(gatherInfo,false,gatherInfo.getVename()+BLACKLIST,null,null);
return false;
}
logger.info("[VE-CHECK-SUCCESS]:{}黑名单验证通过",gatherInfo.getVename());
//todo:车辆备案信息缓存,在哪里做申请提运单列表缓存?
logger.info("[VE-CHECK-SUCCESS]:{}车辆信息验证通过",gatherInfo.getVename());
return true;
}catch (Exception e){
e.printStackTrace();
logger.error("[VE-CHECK-ERROR]:",e);
return false;
}
}
@Override
Object run() {
return null
}
// 获取spring容器
ApplicationContext getContext() {
// 获取spring IOC容器
ApplicationContext context = applicationContext;
return context;
}
Boolean veBlackListCheck(LandRoadVe ve){
//Y 是拉黑了
if("Y".equals(ve.getVeState())){
return false;
}
return true;
}
}