作者 朱兆平

优化关锁在动态验放中的逻辑以及流转申请核销的逻辑

  1 +package com.sy.bean;
  2 +
  3 +
  4 +import org.springframework.beans.factory.annotation.Value;
  5 +import org.springframework.context.annotation.Bean;
  6 +import org.springframework.context.annotation.Configuration;
  7 +
  8 +@Configuration
  9 +public class DEVDEBUG {
  10 +
  11 + @Value("${devdebug}")
  12 + private Boolean debug;
  13 +
  14 + @Bean("devdebug")
  15 + public Boolean getDebug(){
  16 + System.out.println("devdebug:"+debug);
  17 + return debug;
  18 + }
  19 +
  20 +}
@@ -9,6 +9,7 @@ import com.sy.model.NoticeLock; @@ -9,6 +9,7 @@ import com.sy.model.NoticeLock;
9 import com.sy.response.ResultJson; 9 import com.sy.response.ResultJson;
10 import com.sy.service.CommandLogService; 10 import com.sy.service.CommandLogService;
11 import com.sy.service.CustomsLockService; 11 import com.sy.service.CustomsLockService;
  12 +import com.sy.service.EnginCheckService;
12 import lombok.extern.slf4j.Slf4j; 13 import lombok.extern.slf4j.Slf4j;
13 import org.apache.commons.lang.StringUtils; 14 import org.apache.commons.lang.StringUtils;
14 import org.springframework.beans.factory.annotation.Autowired; 15 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +31,9 @@ public class CustomsLockController { @@ -30,6 +31,9 @@ public class CustomsLockController {
30 @Autowired 31 @Autowired
31 CommandLogService commandLogService; 32 CommandLogService commandLogService;
32 33
  34 + @Autowired
  35 + EnginCheckService enginCheckService;
  36 +
33 @PostMapping("response") 37 @PostMapping("response")
34 public ResultJson lockResponse(@RequestBody LockFeedBack feedBack){ 38 public ResultJson lockResponse(@RequestBody LockFeedBack feedBack){
35 try{ 39 try{
@@ -73,7 +77,8 @@ public class CustomsLockController { @@ -73,7 +77,8 @@ public class CustomsLockController {
73 sb.append("成功"); 77 sb.append("成功");
74 if (gatherInfo!=null){ 78 if (gatherInfo!=null){
75 commandLogService.commandlog(gatherInfo,true,sb.toString(),null,null,0.0,0.0,0.0,0.0); 79 commandLogService.commandlog(gatherInfo,true,sb.toString(),null,null,0.0,0.0,0.0,0.0);
76 - customsLockService.localGatherInfoHandle(gatherInfo); 80 +// customsLockService.localGatherInfoHandle(gatherInfo);
  81 + enginCheckService.lockNoticeContinueCheck(gatherInfo);
77 }else { 82 }else {
78 sb.append("关锁缓存信息读取失败"); 83 sb.append("关锁缓存信息读取失败");
79 gatherInfo = new GatherInfo(); 84 gatherInfo = new GatherInfo();
  1 +package com.sy.controller;
  2 +
  3 +import com.sy.model.GatherInfo;
  4 +import com.sy.service.EnginCheckService;
  5 +import lombok.extern.slf4j.Slf4j;
  6 +import org.basis.enhance.groovy.entity.EngineExecutorResult;
  7 +import org.basis.enhance.groovy.entity.ExecuteParams;
  8 +import org.basis.enhance.groovy.entity.ScriptQuery;
  9 +import org.basis.enhance.groovy.executor.EngineExecutor;
  10 +import org.basis.enhance.groovy.helper.RefreshScriptHelper;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.web.bind.annotation.*;
  13 +
  14 +import java.math.BigDecimal;
  15 +
  16 +@RestController
  17 +@Slf4j
  18 +@RequestMapping("/chanel")
  19 +public class EnginChanelController {
  20 +
  21 + @Autowired
  22 + EnginCheckService enginCheckService;
  23 +
  24 + @PostMapping("/check")
  25 + public String x21Check(@RequestBody GatherInfo gatherInfo) {
  26 +
  27 + ExecuteParams executeParams = enginCheckService.makeParaByGagherInfo(gatherInfo);
  28 + Boolean check = enginCheckService.enginCheckByGatherInfo(gatherInfo,executeParams);
  29 + if (check){
  30 + log.info("脚本验放测试通过");
  31 + //放行
  32 + enginCheckService.pass(gatherInfo,executeParams);
  33 +
  34 + enginCheckService.formRelease(gatherInfo,executeParams);
  35 + }else {
  36 + log.error("脚本验放测试失败或等待关锁施解封");
  37 + }
  38 + return "ok";
  39 + }
  40 +}
@@ -8,6 +8,8 @@ import com.sy.model.LockFeignResponse @@ -8,6 +8,8 @@ import com.sy.model.LockFeignResponse
8 import com.sy.model.NoticeLock 8 import com.sy.model.NoticeLock
9 import com.sy.service.CommandLogService 9 import com.sy.service.CommandLogService
10 import com.sy.service.CustomsLockService 10 import com.sy.service.CustomsLockService
  11 +import com.sy.service.LandBusListService
  12 +import com.sy.service.RedisService
11 import com.sy.service.feigin.LockFeignService 13 import com.sy.service.feigin.LockFeignService
12 import com.sy.socket.CommandClient 14 import com.sy.socket.CommandClient
13 import org.apache.commons.lang.StringUtils 15 import org.apache.commons.lang.StringUtils
@@ -22,6 +24,18 @@ import org.springframework.context.ApplicationContext @@ -22,6 +24,18 @@ import org.springframework.context.ApplicationContext
22 */ 24 */
23 class LockNoticeCheck extends Script implements ChannelCheckScript { 25 class LockNoticeCheck extends Script implements ChannelCheckScript {
24 private final Logger log = LoggerFactory.getLogger(getClass()); 26 private final Logger log = LoggerFactory.getLogger(getClass());
  27 + /**
  28 + * 需要通知
  29 + */
  30 + private final String NEED_NOTICE = "Y";
  31 + /**
  32 + * 不需要通知
  33 + */
  34 + private final String DOT_NOTICE = "N";
  35 + /**
  36 + * 验证失败
  37 + */
  38 + private final String FAIL_NOTICE = "F";
25 @Override 39 @Override
26 Object run() { 40 Object run() {
27 return null 41 return null
@@ -46,8 +60,9 @@ class LockNoticeCheck extends Script implements ChannelCheckScript { @@ -46,8 +60,9 @@ class LockNoticeCheck extends Script implements ChannelCheckScript {
46 LandListDao landListDao = context.getBean(LandListDao.class); 60 LandListDao landListDao = context.getBean(LandListDao.class);
47 LockFeignService lockFeignService = context.getBean(LockFeignService.class); 61 LockFeignService lockFeignService = context.getBean(LockFeignService.class);
48 62
49 - //需要关锁业务通知  
50 - if (customsLockService.lockNoticeCheck(info)){ 63 + //判定是否需要关锁业务通知
  64 + String checkResult = lockNoticeCheck(info,executeParams);
  65 + if (NEED_NOTICE.equals(checkResult)){
51 /** 66 /**
52 * 关锁号申请检查 67 * 关锁号申请检查
53 * 根据二维码查申请是否有关锁信息,没有查到实体返回null 68 * 根据二维码查申请是否有关锁信息,没有查到实体返回null
@@ -72,7 +87,13 @@ class LockNoticeCheck extends Script implements ChannelCheckScript { @@ -72,7 +87,13 @@ class LockNoticeCheck extends Script implements ChannelCheckScript {
72 LockFeignResponse lockFeignResponse = lockFeignService.noticeLock(noticeLock); 87 LockFeignResponse lockFeignResponse = lockFeignService.noticeLock(noticeLock);
73 log.info("[LOCK-API-RSP]-关锁通知接口返回,code:{},message:{},success:{}",lockFeignResponse.code,lockFeignResponse.message,lockFeignResponse.success); 88 log.info("[LOCK-API-RSP]-关锁通知接口返回,code:{},message:{},success:{}",lockFeignResponse.code,lockFeignResponse.message,lockFeignResponse.success);
74 record(info,false,"关锁施封通知中,等待下一步指令",null); 89 record(info,false,"关锁施封通知中,等待下一步指令",null);
75 - return true; 90 +
  91 + /**
  92 + * 因为关锁业务为异步,实际上这里的返回是进行关锁通知成功
  93 + * 但是要返回false,抬杆指令判定才能中断
  94 + * 后续等待关锁服务从接口进行通知并抬杆验放
  95 + */
  96 + return false;
76 }else { 97 }else {
77 if (IN_TYPE.equals(info.getIetype()) && customsLockService.unLockCheck(info)) { 98 if (IN_TYPE.equals(info.getIetype()) && customsLockService.unLockCheck(info)) {
78 customsLockService.cacheWrite(info); 99 customsLockService.cacheWrite(info);
@@ -83,16 +104,31 @@ class LockNoticeCheck extends Script implements ChannelCheckScript { @@ -83,16 +104,31 @@ class LockNoticeCheck extends Script implements ChannelCheckScript {
83 LockFeignResponse lockFeignResponse = lockFeignService.noticeLock(noticeLock); 104 LockFeignResponse lockFeignResponse = lockFeignService.noticeLock(noticeLock);
84 log.info("[LOCK-API-RSP]-关锁通知接口返回,code:{},message:{},success:{}",lockFeignResponse.code,lockFeignResponse.message,lockFeignResponse.success); 105 log.info("[LOCK-API-RSP]-关锁通知接口返回,code:{},message:{},success:{}",lockFeignResponse.code,lockFeignResponse.message,lockFeignResponse.success);
85 record(info,false,"关锁解封通知中,等待下一步指令",null); 106 record(info,false,"关锁解封通知中,等待下一步指令",null);
86 - return true; 107 + return false;
87 } 108 }
88 } 109 }
  110 +
  111 + /**
  112 + * 无需上锁,无需解锁,则返回true
  113 + * 继续抬杆指令判定.
  114 + */
  115 + return true;
  116 +
89 }else { 117 }else {
90 CommandClient.Client(info,"流转业务-未申请关锁号"); 118 CommandClient.Client(info,"流转业务-未申请关锁号");
91 record(info,false,"业务异常:流转业务-未申请关锁号",null); 119 record(info,false,"业务异常:流转业务-未申请关锁号",null);
92 //这里需要返回true,是关锁业务,但是中断,不抬杆不放行,给予关锁业务异常通知 120 //这里需要返回true,是关锁业务,但是中断,不抬杆不放行,给予关锁业务异常通知
93 - return true; 121 + return false;
  122 + }
94 } 123 }
  124 + if (DOT_NOTICE.equals(checkResult)){
  125 + /**
  126 + * 不进行关锁通知,
  127 + * 所以可以继续走验放流程,进行自动抬杆
  128 + */
  129 + return true;
95 } 130 }
  131 + //关锁通知验放失败
96 return false; 132 return false;
97 }catch (Exception e){ 133 }catch (Exception e){
98 e.printStackTrace(); 134 e.printStackTrace();
@@ -113,4 +149,72 @@ class LockNoticeCheck extends Script implements ChannelCheckScript { @@ -113,4 +149,72 @@ class LockNoticeCheck extends Script implements ChannelCheckScript {
113 CommandLogService commandLogService = context.getBean(CommandLogService.class); 149 CommandLogService commandLogService = context.getBean(CommandLogService.class);
114 commandLogService.commandlog(info,result,reason,landBusinessTypeList,null,0.0,0.0,0.0,0.0); 150 commandLogService.commandlog(info,result,reason,landBusinessTypeList,null,0.0,0.0,0.0,0.0);
115 } 151 }
  152 +
  153 + String lockNoticeCheck(GatherInfo info,ExecuteParams executeParams) {
  154 + if (info!=null && StringUtils.isNotEmpty(info.getBarcode())) {
  155 +
  156 + //todo:这里后期判定可以复用场站白名单验证
  157 +// FileTool.readProperties("station").contains(info.getAreaid());
  158 + /**
  159 + * 申请业务类型检查
  160 + * 调拨业务及分拨业务装载货物为单证的,必须有关锁号
  161 + * 就算申请信息里面没关锁号也要通知
  162 + */
  163 + LandBusinessTypeList landBusinessTypeList = (LandBusinessTypeList) executeParams.get("ChanelFormInfo");
  164 + if (landBusinessTypeList!=null){
  165 + if ("调拨业务".equals(landBusinessTypeList.getBusinesstype()) || "分拨业务".equals(landBusinessTypeList.getBusinesstype())) {
  166 +
  167 + String sfAreaid = "4600541001";
  168 + String zbqAreaid = "4600329012";
  169 + String zbqN3Areaid = "4612199001";
  170 +
  171 + ApplicationContext context = getContext();
  172 + // 获取容器中的bean
  173 + RedisService redisService = context.getBean(RedisService.class);
  174 +
  175 + String carEndstationList = redisService.get(info.getVename() + "_endstationList");
  176 + if (StringUtils.isNotEmpty(info.getVename()) && StringUtils.isNotEmpty(carEndstationList)){
  177 +
  178 + //涉及综保区场站的申请不核验关锁业务.
  179 + if (carEndstationList.contains(zbqAreaid)) {
  180 + log.info("[LOCK-CHECK]-申报场站列表包含综保区,不处理关锁业务,当前场站:{}",landBusinessTypeList.getEndstation());
  181 + return DOT_NOTICE;
  182 + }
  183 +
  184 + //综保区场站及内三不通知,顺丰场站不通知
  185 + if (zbqAreaid.equals(landBusinessTypeList.getEndstation())
  186 + || zbqN3Areaid.equals(landBusinessTypeList.getEndstation())
  187 + || sfAreaid.equals(landBusinessTypeList.getEndstation())
  188 + ) {
  189 + log.info("[LOCK-CHECK]-综保区及内三场站,顺丰场站,不处理关锁业务,当前场站:{}",landBusinessTypeList.getEndstation());
  190 + return DOT_NOTICE;
  191 + }else {
  192 + return NEED_NOTICE;
  193 + /**
  194 + * 单证验证-取消
  195 + */
  196 +// List<LAND_BUSINEESTYPE_LIST_INFO> land_busineestype_list_infos = landBusinessTypeList.getLandBusineestypeListInfoList();
  197 +// if (!land_busineestype_list_infos.isEmpty()){
  198 +// LAND_BUSINEESTYPE_LIST_INFO list_info = land_busineestype_list_infos.stream().parallel()
  199 +// .filter(item -> "B".equals(item.getExt4()))
  200 +// .findAny().orElse(null);
  201 +//
  202 +// //包含单证
  203 +// if (list_info!=null){
  204 +// log.info("[LOCK-CHECK]-包含单证,开始关锁通知");
  205 +// return true;
  206 +// }
  207 +// }
  208 + }
  209 + }else {
  210 + return FAIL_NOTICE;
  211 + }
  212 + }
  213 + }else {
  214 + log.info("[LOCK-CHECK]-无对应进出场申请");
  215 + return FAIL_NOTICE;
  216 + }
  217 + }
  218 + return FAIL_NOTICE;
  219 + }
116 } 220 }
@@ -10,6 +10,8 @@ import org.slf4j.Logger @@ -10,6 +10,8 @@ import org.slf4j.Logger
10 import org.slf4j.LoggerFactory 10 import org.slf4j.LoggerFactory
11 import org.springframework.context.ApplicationContext 11 import org.springframework.context.ApplicationContext
12 12
  13 +import java.text.DecimalFormat
  14 +
13 /** 15 /**
14 * 重量验放 16 * 重量验放
15 * 提货验放 17 * 提货验放
@@ -43,7 +45,7 @@ class WeightCheckImportDlv extends Script implements ChannelCheckScript { @@ -43,7 +45,7 @@ class WeightCheckImportDlv extends Script implements ChannelCheckScript {
43 WeightCheckHandleService weightCheckHandleService = context.getBean(WeightCheckHandleService.class); 45 WeightCheckHandleService weightCheckHandleService = context.getBean(WeightCheckHandleService.class);
44 46
45 logger.info("[进出场申请]-业务类型为:{}-{}",landBusinessTypeList.getCocode(),landBusinessTypeList.getBusinesstype()); 47 logger.info("[进出场申请]-业务类型为:{}-{}",landBusinessTypeList.getCocode(),landBusinessTypeList.getBusinesstype());
46 - if (weightCheckHandleService.checkImportDlv(gatherInfo.getGrosswt(), selfWt, goodsWt,inAisleWT)){ 48 + if (checkImportDlv(gatherInfo.getGrosswt(), selfWt, goodsWt,inAisleWT)){
47 return true; 49 return true;
48 }else { 50 }else {
49 logger.error("[进口提货]-出场重量未通过校验:"+GROWSSEXCETION); 51 logger.error("[进口提货]-出场重量未通过校验:"+GROWSSEXCETION);
@@ -52,7 +54,7 @@ class WeightCheckImportDlv extends Script implements ChannelCheckScript { @@ -52,7 +54,7 @@ class WeightCheckImportDlv extends Script implements ChannelCheckScript {
52 } 54 }
53 }catch (Exception e){ 55 }catch (Exception e){
54 e.printStackTrace(); 56 e.printStackTrace();
55 - logger.error("[VE-CHECK-ERROR]:",e); 57 + logger.error("[DLV_WEIGHT-CHECK-ERROR]:",e);
56 return false; 58 return false;
57 } 59 }
58 } 60 }
@@ -68,4 +70,59 @@ class WeightCheckImportDlv extends Script implements ChannelCheckScript { @@ -68,4 +70,59 @@ class WeightCheckImportDlv extends Script implements ChannelCheckScript {
68 ApplicationContext context = applicationContext; 70 ApplicationContext context = applicationContext;
69 return context; 71 return context;
70 } 72 }
  73 +
  74 + boolean checkImportDlv(double grossWt, double wt, double goodsWt,double inWt){
  75 +
  76 + // 调用方法
  77 + ApplicationContext context = getContext();
  78 +
  79 + //重量校验算法
  80 + WeightCheckHandleService weightCheckHandleService = context.getBean(WeightCheckHandleService.class);
  81 +
  82 + DecimalFormat df = new DecimalFormat("0.00");
  83 + boolean flag = false;
  84 + double result= 0.00;
  85 + double result1= 0.00;
  86 + double result2= 0.00;
  87 + double emptyOut= 0.00;
  88 + double goodCheckResult= 0.00;
  89 + if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){
  90 + //进场过磅重量+带货重量 = 出场过磅重量
  91 +// result = Double.parseDouble(df.format(Math.abs((inWt + goodsWt - grossWt)) / grossWt));
  92 + result = Double.parseDouble(df.format(Math.abs((grossWt-wt-goodsWt)) / goodsWt));
  93 +
  94 + //带货提货,不提货判定,非空车离场
  95 + result2 = Double.parseDouble(df.format(Math.abs((inWt - grossWt)) / grossWt));
  96 +
  97 + //个别原因不提货了,空车离场
  98 + emptyOut = Double.parseDouble(df.format(Math.abs((wt - grossWt)) / grossWt));
  99 +
  100 + //车辆备案重量+货物重量 = 出场过磅重量,测试用,生产关闭
  101 + result1 = Double.parseDouble(df.format(Math.abs((wt + goodsWt - grossWt)) / grossWt));
  102 +
  103 + //带货提货,货重误差
  104 + goodCheckResult = Double.parseDouble(df.format(Math.abs((grossWt-inWt-goodsWt)) / goodsWt));
  105 +
  106 + double range = weightCheckHandleService.valueDob();
  107 + logger.info("[WEIGHT-CHECK]-实际离场拉货重量:{},申请离场拉货重量:{},货重差值:{},货重误差:{}",grossWt-inWt,goodsWt,grossWt-inWt-goodsWt,goodCheckResult);
  108 + logger.info("[WEIGHT-CHECK]-进出场比对差值:{},提货离场差值:{},进出场比对重量差:{}",result,result1,Math.abs(inWt - grossWt));
  109 +
  110 + if (goodCheckResult<=range
  111 +// || result <= range
  112 + ) {
  113 +
  114 + flag = true;
  115 + }
  116 +
  117 +// //车辆备案重量+货物重量 = 出场过磅重量,测试用,生产关闭
  118 +// if (result1 <= range || result2 <= range || emptyOut <= range) {
  119 +//
  120 +// return true;
  121 +// }
  122 +
  123 +
  124 + }
  125 + return flag;
  126 + }
  127 +
71 } 128 }
1 package com.sy.groovy 1 package com.sy.groovy
2 2
  3 +import com.sy.crossDomain.BuildBarCode
  4 +import com.sy.mapper.LandListDao
3 import com.sy.model.GatherInfo 5 import com.sy.model.GatherInfo
4 import com.sy.model.LandBusinessTypeList 6 import com.sy.model.LandBusinessTypeList
  7 +import com.sy.service.CommandLogService
  8 +import com.sy.service.LandBusListService
  9 +import com.sy.service.RedisService
5 import com.sy.service.impl.GatherInfoHandle 10 import com.sy.service.impl.GatherInfoHandle
6 import org.basis.enhance.groovy.entity.ExecuteParams 11 import org.basis.enhance.groovy.entity.ExecuteParams
7 import org.slf4j.Logger 12 import org.slf4j.Logger
@@ -73,7 +78,7 @@ class X21FormReleaseCheck extends Script { @@ -73,7 +78,7 @@ class X21FormReleaseCheck extends Script {
73 //todo:流转申请状态核销 78 //todo:流转申请状态核销
74 logger.info("[进出场申请]-流转申请开始核销:"+gatherInfo.getVename()); 79 logger.info("[进出场申请]-流转申请开始核销:"+gatherInfo.getVename());
75 //二维码核销 80 //二维码核销
76 -// gatherInfoHandle.releaseBarCode(); 81 + releaseBarCode(gatherInfo,executeParams);
77 logger.info("[进出场申请]-流转申请已核销:"+gatherInfo.getVename()); 82 logger.info("[进出场申请]-流转申请已核销:"+gatherInfo.getVename());
78 } 83 }
79 }catch (Exception e){ 84 }catch (Exception e){
@@ -94,4 +99,61 @@ class X21FormReleaseCheck extends Script { @@ -94,4 +99,61 @@ class X21FormReleaseCheck extends Script {
94 return context; 99 return context;
95 } 100 }
96 101
  102 + void releaseBarCode(GatherInfo info,ExecuteParams executeParams){
  103 + ApplicationContext context = getContext();
  104 + // 获取容器中的bean
  105 + LandBusListService listService = context.getBean(LandBusListService.class);
  106 + LandListDao landListDao = context.getBean(LandListDao.class);
  107 + Boolean devdebug = (Boolean)context.getBean("devdebug");
  108 +
  109 + //是否有未驶离的流转记录二维码判定
  110 + int count=listService.selectlaststation(info.getVename(),info.getBarcode());
  111 + //二维码失效通知,已进入场站的与缓存比较.
  112 + if(count==0){
  113 + //todo:测试注释掉,二维码释放
  114 + if (!devdebug){
  115 + BuildBarCode.cancleBarCode(info.getVename());
  116 + logger.info("[流转申请]-二维码已释放:"+info.getVename());
  117 + }
  118 +
  119 + int rc = landListDao.releaseBarcode(info.getBarcode());
  120 + if (rc>0) {
  121 + logger.info("[进出场核销]-{}流转已核销:{}",info.getVename(),info.getBarcode());
  122 + }else{
  123 + logger.error("[进出场核销-ERROR]-{}流转未核销成功:{}",info.getVename(),info.getBarcode());
  124 + }
  125 + //车辆流转申请缓存删除
  126 + releaseCache(info,executeParams);
  127 + }else{
  128 + logger.error("[进出场核销-ERROR]-{}二维码应该核销,但是不符合核销条件:{}",info.getVename(),info.getBarcode());
  129 + }
  130 + }
  131 +
  132 + void releaseCache(GatherInfo info,ExecuteParams executeParams){
  133 +
  134 + ApplicationContext context = getContext();
  135 + // 获取容器中的bean
  136 + RedisService redisService = context.getBean(RedisService.class);
  137 +
  138 + //车辆流转申请缓存删除
  139 + redisService.del(info.getVename());
  140 + //流转申请时生成的临时核碰场站代码列表
  141 + redisService.del(info.getVename()+"_endstationList");
  142 + //车辆过卡信息缓存删除-X22金二判定时候生成的这个缓存
  143 + redisService.del(info.getSeqno());
  144 + logger.info("[流转缓存]-{}缓存已核销",info.getVename());
  145 + //核销记录
  146 + releaseRecord(info,executeParams);
  147 + }
  148 +
  149 + /**
  150 + * 核销记录
  151 + */
  152 + void releaseRecord(GatherInfo info,ExecuteParams executeParams){
  153 + LandBusinessTypeList chanelFormInfo = (LandBusinessTypeList) executeParams.get("ChanelFormInfo");
  154 + ApplicationContext context = getContext();
  155 + CommandLogService commandLogService = context.getBean(CommandLogService.class);
  156 + commandLogService.commandlog(info,true,"流转核销",chanelFormInfo,null,0.0,0.0,0.0,0.0);
  157 + }
  158 +
97 } 159 }
@@ -56,6 +56,10 @@ public interface EnginCheckService { @@ -56,6 +56,10 @@ public interface EnginCheckService {
56 */ 56 */
57 void commandlog(GatherInfo info, boolean check, String reason,ExecuteParams executeParams); 57 void commandlog(GatherInfo info, boolean check, String reason,ExecuteParams executeParams);
58 58
  59 + void formRelease(GatherInfo info,ExecuteParams executeParams);
  60 +
  61 + void lockNoticeContinueCheck(GatherInfo info);
  62 +
59 63
60 64
61 } 65 }
@@ -68,4 +68,11 @@ public interface WeightCheckHandleService { @@ -68,4 +68,11 @@ public interface WeightCheckHandleService {
68 * @return 返回校验结果 true 通过,false 不通过 68 * @return 返回校验结果 true 通过,false 不通过
69 */ 69 */
70 boolean checkEmpty(double grossWt,double wt); 70 boolean checkEmpty(double grossWt,double wt);
  71 +
  72 +
  73 + /**
  74 + * 误差配置获取
  75 + * @return
  76 + */
  77 + double valueDob();
71 } 78 }
@@ -77,7 +77,14 @@ public class EnginCheckServiceImpl implements EnginCheckService { @@ -77,7 +77,14 @@ public class EnginCheckServiceImpl implements EnginCheckService {
77 ruleChannelConfig.setChannelNum(gatherInfo.getChnlno()); 77 ruleChannelConfig.setChannelNum(gatherInfo.getChnlno());
78 List<RuleChannelConfig> ruleChannelConfigs = ruleChannelConfigDao.selectByChannelAndBusiTypeAndGoodsType(ruleChannelConfig); 78 List<RuleChannelConfig> ruleChannelConfigs = ruleChannelConfigDao.selectByChannelAndBusiTypeAndGoodsType(ruleChannelConfig);
79 79
  80 + if (ruleChannelConfigs!=null && !ruleChannelConfigs.isEmpty()){
80 for (int i = 0; i < ruleChannelConfigs.size(); i++) { 81 for (int i = 0; i < ruleChannelConfigs.size(); i++) {
  82 + /**
  83 + * 核销判定需要另外执行.这里需要跳过.
  84 + */
  85 + if (ruleChannelConfigs.get(i).ruleConfig != null && "核销判定".equals(ruleChannelConfigs.get(i).ruleConfig.getRuleType())){
  86 + return true;
  87 + }
81 // 执行脚本中指定的方法 changeProduct 88 // 执行脚本中指定的方法 changeProduct
82 EngineExecutorResult executorResult = engineExecutor.execute( 89 EngineExecutorResult executorResult = engineExecutor.execute(
83 ruleChannelConfigs.get(i).ruleConfig.getScriptMethodName(), new ScriptQuery(ruleChannelConfigs.get(i).ruleConfig.getScriptKey()), executeParams); 90 ruleChannelConfigs.get(i).ruleConfig.getScriptMethodName(), new ScriptQuery(ruleChannelConfigs.get(i).ruleConfig.getScriptKey()), executeParams);
@@ -93,18 +100,19 @@ public class EnginCheckServiceImpl implements EnginCheckService { @@ -93,18 +100,19 @@ public class EnginCheckServiceImpl implements EnginCheckService {
93 return false; 100 return false;
94 } 101 }
95 } 102 }
96 -  
97 - //核销判定  
98 - if (executorResult.getContext()==null && "void".equals(ruleChannelConfigs.get(i).ruleConfig.getScriptMethodReturn())){  
99 - log.info("核销判定");  
100 - }  
101 }else { 103 }else {
102 log.error("验证脚本名称:{},验证KEY-NAME:{}-[验放失败]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey()); 104 log.error("验证脚本名称:{},验证KEY-NAME:{}-[验放失败]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey());
103 return false; 105 return false;
104 } 106 }
105 } 107 }
106 return true; 108 return true;
  109 + }else {
  110 + log.error("[{}]-通道未配置规则,不支持此业务",gatherInfo.getChnlno());
  111 + sendBw(gatherInfo,false,"通道未配置规则,不支持此业务",executeParams);
  112 + return false;
107 } 113 }
  114 + }
  115 + sendBw(gatherInfo,false,"未找到流转申请信息",executeParams);
108 log.error("未找到流转申请信息"); 116 log.error("未找到流转申请信息");
109 return false; 117 return false;
110 } 118 }
@@ -192,6 +200,7 @@ public class EnginCheckServiceImpl implements EnginCheckService { @@ -192,6 +200,7 @@ public class EnginCheckServiceImpl implements EnginCheckService {
192 redisService.incr("kako-total",1); 200 redisService.incr("kako-total",1);
193 } 201 }
194 commandlog(info,check,reason,executeParams); 202 commandlog(info,check,reason,executeParams);
  203 + return;
195 } 204 }
196 205
197 log.info(String.format("开始发送指令:车牌%s,场站%s,通道%s,重量%s",info.getVename(),info.getAreaid(),info.getChnlno(),info.getGrosswt())); 206 log.info(String.format("开始发送指令:车牌%s,场站%s,通道%s,重量%s",info.getVename(),info.getAreaid(),info.getChnlno(),info.getGrosswt()));
@@ -302,4 +311,107 @@ public class EnginCheckServiceImpl implements EnginCheckService { @@ -302,4 +311,107 @@ public class EnginCheckServiceImpl implements EnginCheckService {
302 } 311 }
303 commandLogService.insert(command); 312 commandLogService.insert(command);
304 } 313 }
  314 +
  315 +
  316 + @Override
  317 + public void formRelease(GatherInfo gatherInfo, ExecuteParams executeParams) {
  318 + //获取申请信息
  319 + LandBusinessTypeList chanelFormInfo = (LandBusinessTypeList) executeParams.get("ChanelFormInfo");
  320 + if (chanelFormInfo!=null) {
  321 + //查询验放配置参数生成
  322 + RuleChannelConfig ruleChannelConfig = new RuleChannelConfig();
  323 + ruleChannelConfig.setBusinessType(chanelFormInfo.getBusinesstype());
  324 + ruleChannelConfig.setGoodsType(chanelFormInfo.getCocode());
  325 + ruleChannelConfig.setChannelNum(gatherInfo.getChnlno());
  326 + List<RuleChannelConfig> ruleChannelConfigs = ruleChannelConfigDao.selectByChannelAndBusiTypeAndGoodsType(ruleChannelConfig);
  327 +
  328 + if (ruleChannelConfigs!=null && !ruleChannelConfigs.isEmpty()){
  329 + for (int i = 0; i < ruleChannelConfigs.size(); i++) {
  330 + //核销判定
  331 + if (ruleChannelConfigs.get(i).ruleConfig != null && "核销判定".equals(ruleChannelConfigs.get(i).ruleConfig.getRuleType())){
  332 + // 执行脚本中指定的方法 changeProduct
  333 + EngineExecutorResult executorResult = engineExecutor.execute(
  334 + ruleChannelConfigs.get(i).ruleConfig.getScriptMethodName(), new ScriptQuery(ruleChannelConfigs.get(i).ruleConfig.getScriptKey()), executeParams);
  335 + log.info("核销判定验证脚本名称:{},验证KEY-NAME:{}", ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey());
  336 + log.info("核销判定判定放行结果=========>>>>>>>>>>>{}", executorResult);
  337 + }
  338 + }
  339 + }
  340 + }else {
  341 + log.error("核销判定通道申请信息无效");
  342 + }
  343 + }
  344 +
  345 + @Override
  346 + public void lockNoticeContinueCheck(GatherInfo gatherInfo) {
  347 +
  348 + ExecuteParams executeParams = makeParaByGagherInfo(gatherInfo);
  349 + Boolean check = enginCheckByLockNotice(gatherInfo,executeParams);
  350 + if (check){
  351 + log.info("脚本验放测试通过");
  352 + //放行
  353 + pass(gatherInfo,executeParams);
  354 +
  355 + formRelease(gatherInfo,executeParams);
  356 + }else {
  357 + log.error("脚本验放测试失败");
  358 + }
  359 + }
  360 +
  361 + private Boolean enginCheckByLockNotice(GatherInfo gatherInfo,ExecuteParams executeParams) {
  362 +
  363 + //获取申请信息
  364 + LandBusinessTypeList chanelFormInfo = (LandBusinessTypeList) executeParams.get("ChanelFormInfo");
  365 + if (chanelFormInfo!=null){
  366 + //查询验放配置参数生成
  367 + RuleChannelConfig ruleChannelConfig = new RuleChannelConfig();
  368 + ruleChannelConfig.setBusinessType(chanelFormInfo.getBusinesstype());
  369 + ruleChannelConfig.setGoodsType(chanelFormInfo.getCocode());
  370 + ruleChannelConfig.setChannelNum(gatherInfo.getChnlno());
  371 + List<RuleChannelConfig> ruleChannelConfigs = ruleChannelConfigDao.selectByChannelAndBusiTypeAndGoodsType(ruleChannelConfig);
  372 +
  373 + if (ruleChannelConfigs!=null && !ruleChannelConfigs.isEmpty()){
  374 + for (int i = 0; i < ruleChannelConfigs.size(); i++) {
  375 + /**
  376 + * 核销判定需要另外执行.这里需要跳过.
  377 + */
  378 + if (ruleChannelConfigs.get(i).ruleConfig != null && "核销判定".equals(ruleChannelConfigs.get(i).ruleConfig.getRuleType())){
  379 + continue;
  380 + }
  381 +
  382 + if (ruleChannelConfigs.get(i).ruleConfig != null && ruleChannelConfigs.get(i).ruleConfig.getRuleType().contains("关锁")){
  383 + continue;
  384 + }
  385 +
  386 + // 执行脚本中指定的方法 changeProduct
  387 + EngineExecutorResult executorResult = engineExecutor.execute(
  388 + ruleChannelConfigs.get(i).ruleConfig.getScriptMethodName(), new ScriptQuery(ruleChannelConfigs.get(i).ruleConfig.getScriptKey()), executeParams);
  389 + log.info("验证脚本名称:{},验证KEY-NAME:{}", ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey());
  390 + log.info("使用groovy脚本来验证过卡判定放行结果=========>>>>>>>>>>>执行结果:{}", executorResult);
  391 + if (executorResult.getExecutionStatus().equals(ExecutionStatus.SUCCESS)){
  392 + if (executorResult.getContext() instanceof Boolean){
  393 + Boolean execResult = (Boolean) executorResult.getContext();
  394 + if (execResult) {
  395 + log.info("验证脚本名称:{},验证KEY-NAME:{}-[验放成功]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey());
  396 + }else {
  397 + log.info("验放失败");
  398 + return false;
  399 + }
  400 + }
  401 + }else {
  402 + log.error("验证脚本名称:{},验证KEY-NAME:{}-[验放失败]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey());
  403 + return false;
  404 + }
  405 + }
  406 + return true;
  407 + }else {
  408 + log.error("[{}]-通道未配置规则,不支持此业务",gatherInfo.getChnlno());
  409 + sendBw(gatherInfo,false,"通道未配置规则,不支持此业务",executeParams);
  410 + return false;
  411 + }
  412 + }
  413 + sendBw(gatherInfo,false,"未找到流转申请信息",executeParams);
  414 + log.error("未找到流转申请信息");
  415 + return false;
  416 + }
305 } 417 }
@@ -58,7 +58,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -58,7 +58,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
58 * @param wt 车辆自重 58 * @param wt 车辆自重
59 * @param goodsWt 货物总重 59 * @param goodsWt 货物总重
60 * @param inWt 进场过磅重量 60 * @param inWt 进场过磅重量
61 - * 误差计算方式 (应该出场重量 - 出场重量) / 出场重量 与 误差比对,超过误差则不放行 61 + * 误差计算方式 (应该出场重量 - 出场重量) / 出场重量 与 误差比对,超过误差则不放行(规则取消)
  62 + * 误差计算方式 (应该出场重量 - 出场重量) / 货物重量 与 误差比对,超过误差则不放行(新规)
62 * @return 返回校验结果 true 通过,false 不通过 63 * @return 返回校验结果 true 通过,false 不通过
63 */ 64 */
64 @Override 65 @Override
@@ -83,7 +84,7 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -83,7 +84,7 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
83 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){ 84 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){
84 result = Double.parseDouble(df.format(Math.abs((inWt - goodsWt - grossWt)) / grossWt)); 85 result = Double.parseDouble(df.format(Math.abs((inWt - goodsWt - grossWt)) / grossWt));
85 86
86 - result2 = Double.parseDouble(df.format(Math.abs((grossWt-wt)) / grossWt)); 87 + result2 = Double.parseDouble(df.format(Math.abs((grossWt-wt)) / wt));
87 88
88 log.info("[WEIGHT-CHECK]-进出场比对差值:{},空车出场差值:{},进出场比对重量差:{},空车比对重量差:{}",result,result2,Math.abs(inWt - goodsWt - grossWt),Math.abs(grossWt-wt)); 89 log.info("[WEIGHT-CHECK]-进出场比对差值:{},空车出场差值:{},进出场比对重量差:{},空车比对重量差:{}",result,result2,Math.abs(inWt - goodsWt - grossWt),Math.abs(grossWt-wt));
89 } 90 }
@@ -107,7 +108,7 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -107,7 +108,7 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
107 DecimalFormat df = new DecimalFormat("0.00"); 108 DecimalFormat df = new DecimalFormat("0.00");
108 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){ 109 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){
109 //空车入场判定,入场重量-车辆备案重量 110 //空车入场判定,入场重量-车辆备案重量
110 - emptyIN = Double.parseDouble(df.format(Math.abs((wt - grossWt)) / grossWt)); 111 + emptyIN = Double.parseDouble(df.format(Math.abs((wt - grossWt)) / wt));
111 112
112 double range = valueDob(); 113 double range = valueDob();
113 114
@@ -141,7 +142,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -141,7 +142,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
141 double goodCheckResult= 0.00; 142 double goodCheckResult= 0.00;
142 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){ 143 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){
143 //进场过磅重量+带货重量 = 出场过磅重量 144 //进场过磅重量+带货重量 = 出场过磅重量
144 - result = Double.parseDouble(df.format(Math.abs((inWt + goodsWt - grossWt)) / grossWt)); 145 +// result = Double.parseDouble(df.format(Math.abs((inWt + goodsWt - grossWt)) / grossWt));
  146 + result = Double.parseDouble(df.format(Math.abs((grossWt-wt-goodsWt)) / goodsWt));
145 147
146 //带货提货,不提货判定,非空车离场 148 //带货提货,不提货判定,非空车离场
147 result2 = Double.parseDouble(df.format(Math.abs((inWt - grossWt)) / grossWt)); 149 result2 = Double.parseDouble(df.format(Math.abs((inWt - grossWt)) / grossWt));
@@ -159,8 +161,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -159,8 +161,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
159 log.info("[WEIGHT-CHECK]-实际离场拉货重量:{},申请离场拉货重量:{},货重差值:{},货重误差:{}",grossWt-inWt,goodsWt,grossWt-inWt-goodsWt,goodCheckResult); 161 log.info("[WEIGHT-CHECK]-实际离场拉货重量:{},申请离场拉货重量:{},货重差值:{},货重误差:{}",grossWt-inWt,goodsWt,grossWt-inWt-goodsWt,goodCheckResult);
160 log.info("[WEIGHT-CHECK]-进出场比对差值:{},提货离场差值:{},进出场比对重量差:{}",result,result1,Math.abs(inWt - grossWt)); 162 log.info("[WEIGHT-CHECK]-进出场比对差值:{},提货离场差值:{},进出场比对重量差:{}",result,result1,Math.abs(inWt - grossWt));
161 163
162 - if (result <= range  
163 -// || goodCheckResult<=range 164 + if (goodCheckResult<=range
  165 +// || result <= range
164 ) { 166 ) {
165 167
166 flag = true; 168 flag = true;
@@ -205,20 +207,26 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -205,20 +207,26 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
205 207
206 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){ 208 if(Double.doubleToLongBits(grossWt)>Double.doubleToLongBits(0)){
207 //带货出,入场重量+带货重量 = 离场重量 209 //带货出,入场重量+带货重量 = 离场重量
208 - result = Double.parseDouble(df.format(Math.abs((inWt + goodsWt - grossWt)) / grossWt)); 210 + result = Double.parseDouble(df.format(Math.abs((grossWt-inWt-goodsWt)) / goodsWt));
209 //带货出,用车辆备案重量对碰,车辆备案重量+带货重量 = 离场重量 211 //带货出,用车辆备案重量对碰,车辆备案重量+带货重量 = 离场重量
210 - result4 = Double.parseDouble(df.format(Math.abs((wt + goodsWt - grossWt)) / grossWt)); 212 +// result4 = Double.parseDouble(df.format(Math.abs((wt + goodsWt - grossWt)) / grossWt));
  213 + result4 = Double.parseDouble(df.format(Math.abs((grossWt-wt-goodsWt)) / goodsWt));
211 //空车出,过磅重量 = 车辆备案重量 214 //空车出,过磅重量 = 车辆备案重量
212 - result2 = Double.parseDouble(df.format(Math.abs((grossWt-wt)) / grossWt)); 215 + result2 = Double.parseDouble(df.format(Math.abs((grossWt-wt)) / wt));
213 //卸货出,入场重量-卸货重量 = 离场重量 216 //卸货出,入场重量-卸货重量 = 离场重量
214 - result3 = Double.parseDouble(df.format(Math.abs((inWt - goodsWt - grossWt)) / grossWt)); 217 + result3 = Double.parseDouble(df.format(Math.abs((inWt - goodsWt - grossWt)) / goodsWt));
  218 +
215 System.out.println("进场提货离场差值:"+result); 219 System.out.println("进场提货离场差值:"+result);
216 System.out.println("空车离场差值:"+result2); 220 System.out.println("空车离场差值:"+result2);
217 System.out.println("进场卸货离场差值:"+result3); 221 System.out.println("进场卸货离场差值:"+result3);
218 System.out.println("备案重量进场装载货物离场差值:"+result4); 222 System.out.println("备案重量进场装载货物离场差值:"+result4);
219 } 223 }
220 double range = valueDob(); 224 double range = valueDob();
221 - if (result <= range || result2 <= range || result3 <= range || result4 <= range) { 225 + if (result2 <= range
  226 + || result <= range
  227 + || result3 <= range
  228 + || result4 <= range
  229 + ) {
222 flag = true; 230 flag = true;
223 } 231 }
224 return flag; 232 return flag;
@@ -234,7 +242,7 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -234,7 +242,7 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
234 public boolean checkEmpty(double grossWt, double wt) { 242 public boolean checkEmpty(double grossWt, double wt) {
235 DecimalFormat df = new DecimalFormat("0.00"); 243 DecimalFormat df = new DecimalFormat("0.00");
236 boolean flag=false; 244 boolean flag=false;
237 - double reult = Double.parseDouble(df.format(Math.abs((grossWt - wt)) / grossWt)); 245 + double reult = Double.parseDouble(df.format(Math.abs((grossWt - wt)) / wt));
238 if (reult <= valueDob()) { 246 if (reult <= valueDob()) {
239 flag = true; 247 flag = true;
240 } 248 }
@@ -259,7 +267,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService { @@ -259,7 +267,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
259 } 267 }
260 268
261 //将获取的checkWt进行小数转化 269 //将获取的checkWt进行小数转化
262 - private double valueDob() { 270 + @Override
  271 + public double valueDob() {
263 NumberFormat nf = NumberFormat.getPercentInstance(); 272 NumberFormat nf = NumberFormat.getPercentInstance();
264 Number m = null; 273 Number m = null;
265 try { 274 try {
@@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
17 <result column="script_method_name" jdbcType="VARCHAR" property="scriptMethodName" /> 17 <result column="script_method_name" jdbcType="VARCHAR" property="scriptMethodName" />
18 <result column="script_method_return" jdbcType="VARCHAR" property="scriptMethodReturn" /> 18 <result column="script_method_return" jdbcType="VARCHAR" property="scriptMethodReturn" />
19 <result column="rule_name" jdbcType="VARCHAR" property="ruleName" /> 19 <result column="rule_name" jdbcType="VARCHAR" property="ruleName" />
  20 + <result column="rule_type" jdbcType="VARCHAR" property="ruleType" />
20 </association> 21 </association>
21 </resultMap> 22 </resultMap>
22 <sql id="Base_Column_List"> 23 <sql id="Base_Column_List">
@@ -39,7 +40,8 @@ @@ -39,7 +40,8 @@
39 rule.script_key, 40 rule.script_key,
40 rule.script_method_name, 41 rule.script_method_name,
41 rule.script_method_return, 42 rule.script_method_return,
42 - rule.rule_name 43 + rule.rule_name,
  44 + rule.rule_type
43 FROM 45 FROM
44 ( 46 (
45 SELECT 47 SELECT
@@ -54,12 +56,12 @@ @@ -54,12 +56,12 @@
54 channel_num = #{channelNum,jdbcType=VARCHAR} 56 channel_num = #{channelNum,jdbcType=VARCHAR}
55 AND business_type = #{businessType,jdbcType=VARCHAR} 57 AND business_type = #{businessType,jdbcType=VARCHAR}
56 AND goods_type = #{goodsType,jdbcType=VARCHAR} 58 AND goods_type = #{goodsType,jdbcType=VARCHAR}
57 - ORDER BY config_order  
58 ) conf 59 ) conf
59 LEFT JOIN 60 LEFT JOIN
60 rule_config rule 61 rule_config rule
61 ON 62 ON
62 conf.rule_id = rule.rule_id 63 conf.rule_id = rule.rule_id
  64 + ORDER BY config_order
63 </select> 65 </select>
64 <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> 66 <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
65 delete from rule_channel_config 67 delete from rule_channel_config
@@ -30,6 +30,7 @@ public class EnginTest { @@ -30,6 +30,7 @@ public class EnginTest {
30 30
31 private static String IEPORSE = "无相对应进出场申请"; 31 private static String IEPORSE = "无相对应进出场申请";
32 private static String CHANEL_ERR= "无对应通道流转申请,走错通道"; 32 private static String CHANEL_ERR= "无对应通道流转申请,走错通道";
  33 + private final static String PERMITTHOUGH = "直接放行";
33 34
34 35
35 @Autowired 36 @Autowired
@@ -202,9 +203,9 @@ public class EnginTest { @@ -202,9 +203,9 @@ public class EnginTest {
202 public void enginTest(){ 203 public void enginTest(){
203 GatherInfo gatherInfo = new GatherInfo(); 204 GatherInfo gatherInfo = new GatherInfo();
204 gatherInfo.setAreaid("4604600000"); 205 gatherInfo.setAreaid("4604600000");
205 - gatherInfo.setChnlno("4604600010");  
206 - gatherInfo.setBarcode("681-43e2-925c-7b1e1054fbef");  
207 - gatherInfo.setGrosswt(new BigDecimal("6000")); 206 + gatherInfo.setChnlno("4604601010");
  207 + gatherInfo.setBarcode("bd4-4ee7-8cae-dbc2d6bc75b2");
  208 + gatherInfo.setGrosswt(new BigDecimal("2000"));
208 gatherInfo.setSeqno("20220630184441000028"); 209 gatherInfo.setSeqno("20220630184441000028");
209 gatherInfo.setIetype("I"); 210 gatherInfo.setIetype("I");
210 gatherInfo.setVename("豫A61CR7"); 211 gatherInfo.setVename("豫A61CR7");
@@ -213,6 +214,7 @@ public class EnginTest { @@ -213,6 +214,7 @@ public class EnginTest {
213 Boolean check = enginCheckService.enginCheckByGatherInfo(gatherInfo,executeParams); 214 Boolean check = enginCheckService.enginCheckByGatherInfo(gatherInfo,executeParams);
214 if (check){ 215 if (check){
215 log.info("脚本验放测试通过"); 216 log.info("脚本验放测试通过");
  217 + //放行
216 enginCheckService.pass(gatherInfo,executeParams); 218 enginCheckService.pass(gatherInfo,executeParams);
217 }else { 219 }else {
218 log.error("脚本验放测试失败"); 220 log.error("脚本验放测试失败");