BaseFormCacheCheck.groovy
3.1 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
package com.sy.groovy
import com.sy.model.GatherInfo
import com.sy.model.LandBusinessTypeList
import com.sy.service.LandBusListService
import com.sy.service.impl.GatherInfoHandle
import com.sy.service.impl.LandBusListServiceImpl
import org.basis.enhance.groovy.entity.ExecuteParams
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.context.ApplicationContext
/**
* 基本验放
* 流转申请信息验放
*/
class BaseFormCacheCheck extends Script implements ChannelCheckScript {
private final Logger logger = LoggerFactory.getLogger(getClass());
private final String CHANEL_ERR= "无对应通道流转申请,走错通道";
private final String IEPORSE = "无相对应进出场申请";
private final String REPEAT_ERR = "禁止重复进出通道";
/**x21指令判定
* 传入gatherInfo
*
* 传入从redis读取的申请表体实体,验证
* 进行通道比对
*/
Boolean check(ExecuteParams executeParams) {
try{
// 获取product对象
GatherInfo gatherInfo = (GatherInfo) executeParams.get("GatherInfo");
LandBusinessTypeList chanelFormInfo = (LandBusinessTypeList) executeParams.get("ChanelFormInfo");
// 调用方法
ApplicationContext context = getContext();
// 获取容器中的bean
GatherInfoHandle gatherInfoHandle = context.getBean(GatherInfoHandle.class);
LandBusListService landBusListService = context.getBean(LandBusListServiceImpl.class);
if (chanelFormInfo==null){
logger.error("[FORM-CHECK-ERR]:车辆-{}的流转申请校验失败,无对应通道流转申请信息",gatherInfo.getVename());
gatherInfoHandle.sendBw(gatherInfo,false, gatherInfo.getVename()+IEPORSE,null,null);
return false;
}
logger.info("[FORM-CHECK]:车辆-{}的流转申请校验通过",gatherInfo.getVename());
/**
* 车辆重复进出通道判定
*/
LandBusinessTypeList his = landBusListService.selectForOne(gatherInfo.getVename(), gatherInfo.getBarcode(), gatherInfo.getAreaid(), gatherInfo.getChnlno(), gatherInfo.getIetype());
if (his!=null){
// 存在已进出记录,禁止再次进出
logger.error("[FORM-CHECK-ERR]:车辆-{}禁止重复进出[{}]通道",gatherInfo.getVename(),gatherInfo.getChnlno());
gatherInfoHandle.sendBw(gatherInfo,false, REPEAT_ERR,null,null);
return false;
}else {
logger.info("[FORM-CHECK]:车辆-{}通道重复流转验放通过",gatherInfo.getVename());
}
return true;
}catch (Exception e){
e.printStackTrace();
logger.error("[CACHE-PARSE-ERROR]:",e);
return false;
}
}
@Override
Object run() {
return false;
}
// 获取spring容器
ApplicationContext getContext() {
// 获取spring IOC容器
ApplicationContext context = applicationContext;
return context;
}
}