正在显示
8 个修改的文件
包含
81 行增加
和
10 行删除
| @@ -77,7 +77,9 @@ feign.httpclient.enabled=true | @@ -77,7 +77,9 @@ feign.httpclient.enabled=true | ||
| 77 | # 是否启用hystrix | 77 | # 是否启用hystrix | 
| 78 | feign.hystrix.enabled=true | 78 | feign.hystrix.enabled=true | 
| 79 | # 请求连接超时时间(毫秒) | 79 | # 请求连接超时时间(毫秒) | 
| 80 | -feign.httpclient.connection-timeout=3000 | 80 | +feign.httpclient.connection-timeout=5000 | 
| 81 | +# 设置 Hystrix 的超时时间为 5000 毫秒 | ||
| 82 | +hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000 | ||
| 81 | 83 | ||
| 82 | #logback日志配置 | 84 | #logback日志配置 | 
| 83 | 85 | 
| @@ -2,6 +2,7 @@ package com.sy.feign; | @@ -2,6 +2,7 @@ package com.sy.feign; | ||
| 2 | 2 | ||
| 3 | import feign.RequestInterceptor; | 3 | import feign.RequestInterceptor; | 
| 4 | import feign.RequestTemplate; | 4 | import feign.RequestTemplate; | 
| 5 | +import feign.Retryer; | ||
| 5 | import org.springframework.context.annotation.Bean; | 6 | import org.springframework.context.annotation.Bean; | 
| 6 | import org.springframework.context.annotation.Configuration; | 7 | import org.springframework.context.annotation.Configuration; | 
| 7 | import org.springframework.web.context.request.RequestContextHolder; | 8 | import org.springframework.web.context.request.RequestContextHolder; | 
| @@ -12,6 +13,17 @@ import javax.servlet.http.HttpServletRequest; | @@ -12,6 +13,17 @@ import javax.servlet.http.HttpServletRequest; | ||
| 12 | @Configuration | 13 | @Configuration | 
| 13 | public class NmmsInterceptor { | 14 | public class NmmsInterceptor { | 
| 14 | 15 | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 设置feign重试次数 | ||
| 19 | + * @return | ||
| 20 | + */ | ||
| 21 | + @Bean | ||
| 22 | + public Retryer feignRetryer() { | ||
| 23 | + // 设置最大重试次数为3次 | ||
| 24 | + return new Retryer.Default(1000, 5000, 3); | ||
| 25 | + } | ||
| 26 | + | ||
| 15 | @Bean | 27 | @Bean | 
| 16 | public RequestInterceptor requestInterceptor() { | 28 | public RequestInterceptor requestInterceptor() { | 
| 17 | return new RequestInterceptor() { | 29 | return new RequestInterceptor() { | 
| @@ -9,6 +9,7 @@ import com.sy.model.LandBusinessTypeList | @@ -9,6 +9,7 @@ import com.sy.model.LandBusinessTypeList | ||
| 9 | import com.sy.model.LandRoadVe | 9 | import com.sy.model.LandRoadVe | 
| 10 | import com.sy.response.ResultJson | 10 | import com.sy.response.ResultJson | 
| 11 | import com.sy.service.CommandLogService | 11 | import com.sy.service.CommandLogService | 
| 12 | +import com.sy.service.EnginCheckService | ||
| 12 | import com.sy.service.RedisService | 13 | import com.sy.service.RedisService | 
| 13 | import com.sy.service.feigin.G2X81FeignService | 14 | import com.sy.service.feigin.G2X81FeignService | 
| 14 | import com.sy.service.feigin.StationManageFeignService | 15 | import com.sy.service.feigin.StationManageFeignService | 
| @@ -47,9 +48,19 @@ class G2X81Notice extends Script implements ChannelCheckScript{ | @@ -47,9 +48,19 @@ class G2X81Notice extends Script implements ChannelCheckScript{ | ||
| 47 | */ | 48 | */ | 
| 48 | GatherInfo info = (GatherInfo) executeParams.get("GatherInfo"); | 49 | GatherInfo info = (GatherInfo) executeParams.get("GatherInfo"); | 
| 49 | LandRoadVe ve = (LandRoadVe) executeParams.get("LandRoadVe"); | 50 | LandRoadVe ve = (LandRoadVe) executeParams.get("LandRoadVe"); | 
| 51 | + | ||
| 50 | ApplicationContext context = getContext(); | 52 | ApplicationContext context = getContext(); | 
| 51 | G2X81FeignService g2X81FeignService = context.getBean(G2X81FeignService.class); | 53 | G2X81FeignService g2X81FeignService = context.getBean(G2X81FeignService.class); | 
| 52 | 54 | ||
| 55 | + EnginCheckService enginCheckService = context.getBean(EnginCheckService.class); | ||
| 56 | + | ||
| 57 | + /** | ||
| 58 | + * 写入本地验放通过信息 | ||
| 59 | + */ | ||
| 60 | + enginCheckService.commandlog(info,true,"双验放:本地验放通过:等待金二验放指令",executeParams); | ||
| 61 | + | ||
| 62 | + | ||
| 63 | + | ||
| 53 | if (info!=null){ | 64 | if (info!=null){ | 
| 54 | //缓存X21 的 seqn 需要作为异步X82回执验放时用到的信息 | 65 | //缓存X21 的 seqn 需要作为异步X82回执验放时用到的信息 | 
| 55 | cacheWithSeqno(info); | 66 | cacheWithSeqno(info); | 
| @@ -92,6 +103,8 @@ class G2X81Notice extends Script implements ChannelCheckScript{ | @@ -92,6 +103,8 @@ class G2X81Notice extends Script implements ChannelCheckScript{ | ||
| 92 | commandLogService.commandlog(info,result,reason,landBusinessTypeList,null,0.0,0.0,0.0,0.0); | 103 | commandLogService.commandlog(info,result,reason,landBusinessTypeList,null,0.0,0.0,0.0,0.0); | 
| 93 | } | 104 | } | 
| 94 | 105 | ||
| 106 | + | ||
| 107 | + | ||
| 95 | String x22TransToX81(GatherInfo gatherInfo,LandRoadVe ve){ | 108 | String x22TransToX81(GatherInfo gatherInfo,LandRoadVe ve){ | 
| 96 | log.info("[SEQN]-处理X21报文:{}",gatherInfo.getSeqno()); | 109 | log.info("[SEQN]-处理X21报文:{}",gatherInfo.getSeqno()); | 
| 97 | //当前时间作为X81申报时间 | 110 | //当前时间作为X81申报时间 | 
| @@ -115,15 +128,15 @@ class G2X81Notice extends Script implements ChannelCheckScript{ | @@ -115,15 +128,15 @@ class G2X81Notice extends Script implements ChannelCheckScript{ | ||
| 115 | JSONObject yard = chanel.getJSONObject("yard"); | 128 | JSONObject yard = chanel.getJSONObject("yard"); | 
| 116 | String stationG2 = yard.getString("stationIdG2"); | 129 | String stationG2 = yard.getString("stationIdG2"); | 
| 117 | log.info("[G2-YARD]-{}",stationG2); | 130 | log.info("[G2-YARD]-{}",stationG2); | 
| 131 | + log.info("[VE-RFID-NO]:车辆电子车牌号:{}",ve.getVeCustomsNo()); | ||
| 118 | 132 | ||
| 119 | - log.info("[G2-TEMPLATE]-{}",G2X81Template.template) | ||
| 120 | String x81XML= G2X81Template.template.replace("#{ie_flag}",gatherInfo.getIetype()) | 133 | String x81XML= G2X81Template.template.replace("#{ie_flag}",gatherInfo.getIetype()) | 
| 121 | .replace("#{area_id}",stationG2) | 134 | .replace("#{area_id}",stationG2) | 
| 122 | .replace("#{chnl_no}",channelG2) | 135 | .replace("#{chnl_no}",channelG2) | 
| 123 | .replace("#{session_id}",gatherInfo.getSeqno()) | 136 | .replace("#{session_id}",gatherInfo.getSeqno()) | 
| 124 | .replace("#{ve_license_no}",gatherInfo.getVename()) | 137 | .replace("#{ve_license_no}",gatherInfo.getVename()) | 
| 125 | .replace("#{gross_wt}",gatherInfo.getGrosswt().toString()) | 138 | .replace("#{gross_wt}",gatherInfo.getGrosswt().toString()) | 
| 126 | - .replace("#{rfid_id}",gatherInfo.getCarecno()) | 139 | + .replace("#{rfid_id}",ve.getVeCustomsNo()) | 
| 127 | .replace("#{ve_wt}",ve.getSelfWt()) | 140 | .replace("#{ve_wt}",ve.getSelfWt()) | 
| 128 | .replace("#{operate_time}",startTime); | 141 | .replace("#{operate_time}",startTime); | 
| 129 | log.info("[X21-TO-X81]-{}",x81XML); | 142 | log.info("[X21-TO-X81]-{}",x81XML); | 
| @@ -5,11 +5,9 @@ import com.sy.model.GatherInfo; | @@ -5,11 +5,9 @@ import com.sy.model.GatherInfo; | ||
| 5 | import com.sy.model.X82Feedback; | 5 | import com.sy.model.X82Feedback; | 
| 6 | import com.sy.service.X82Service; | 6 | import com.sy.service.X82Service; | 
| 7 | import com.sy.service.router.MessageRouterG2; | 7 | import com.sy.service.router.MessageRouterG2; | 
| 8 | -import com.sy.socket.CommandClient; | ||
| 9 | import com.sy.utils.Base64Tool; | 8 | import com.sy.utils.Base64Tool; | 
| 10 | import lombok.extern.slf4j.Slf4j; | 9 | import lombok.extern.slf4j.Slf4j; | 
| 11 | import org.apache.commons.lang.StringUtils; | 10 | import org.apache.commons.lang.StringUtils; | 
| 12 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 13 | import org.springframework.stereotype.Component; | 11 | import org.springframework.stereotype.Component; | 
| 14 | 12 | ||
| 15 | @Component | 13 | @Component | 
| @@ -121,6 +121,14 @@ public class LandRoadVe { | @@ -121,6 +121,14 @@ public class LandRoadVe { | ||
| 121 | 121 | ||
| 122 | private Date updateDate; | 122 | private Date updateDate; | 
| 123 | 123 | ||
| 124 | + private String veState; | ||
| 125 | + | ||
| 126 | + private String veCustomsNo; | ||
| 127 | + | ||
| 128 | + private String icCode; | ||
| 129 | + | ||
| 130 | + private String lockNum; | ||
| 131 | + | ||
| 124 | public String getVeState() { | 132 | public String getVeState() { | 
| 125 | return veState; | 133 | return veState; | 
| 126 | } | 134 | } | 
| @@ -129,8 +137,6 @@ public class LandRoadVe { | @@ -129,8 +137,6 @@ public class LandRoadVe { | ||
| 129 | this.veState = veState; | 137 | this.veState = veState; | 
| 130 | } | 138 | } | 
| 131 | 139 | ||
| 132 | - private String veState; | ||
| 133 | - | ||
| 134 | public String getId() { | 140 | public String getId() { | 
| 135 | return id; | 141 | return id; | 
| 136 | } | 142 | } | 
| @@ -602,4 +608,28 @@ public class LandRoadVe { | @@ -602,4 +608,28 @@ public class LandRoadVe { | ||
| 602 | public void setUpdateDate(Date updateDate) { | 608 | public void setUpdateDate(Date updateDate) { | 
| 603 | this.updateDate = updateDate; | 609 | this.updateDate = updateDate; | 
| 604 | } | 610 | } | 
| 611 | + | ||
| 612 | + public String getVeCustomsNo() { | ||
| 613 | + return veCustomsNo; | ||
| 614 | + } | ||
| 615 | + | ||
| 616 | + public void setVeCustomsNo(String veCustomsNo) { | ||
| 617 | + this.veCustomsNo = veCustomsNo; | ||
| 618 | + } | ||
| 619 | + | ||
| 620 | + public String getIcCode() { | ||
| 621 | + return icCode; | ||
| 622 | + } | ||
| 623 | + | ||
| 624 | + public void setIcCode(String icCode) { | ||
| 625 | + this.icCode = icCode; | ||
| 626 | + } | ||
| 627 | + | ||
| 628 | + public String getLockNum() { | ||
| 629 | + return lockNum; | ||
| 630 | + } | ||
| 631 | + | ||
| 632 | + public void setLockNum(String lockNum) { | ||
| 633 | + this.lockNum = lockNum; | ||
| 634 | + } | ||
| 605 | } | 635 | } | 
| @@ -84,7 +84,7 @@ public class EnginCheckServiceImpl implements EnginCheckService { | @@ -84,7 +84,7 @@ public class EnginCheckServiceImpl implements EnginCheckService { | ||
| 84 | * 核销判定需要另外执行.这里需要跳过. | 84 | * 核销判定需要另外执行.这里需要跳过. | 
| 85 | */ | 85 | */ | 
| 86 | if (ruleChannelConfigs.get(i).ruleConfig != null && "核销判定".equals(ruleChannelConfigs.get(i).ruleConfig.getRuleType())){ | 86 | if (ruleChannelConfigs.get(i).ruleConfig != null && "核销判定".equals(ruleChannelConfigs.get(i).ruleConfig.getRuleType())){ | 
| 87 | - return true; | 87 | + continue; | 
| 88 | } | 88 | } | 
| 89 | // 执行脚本中指定的方法 changeProduct | 89 | // 执行脚本中指定的方法 changeProduct | 
| 90 | EngineExecutorResult executorResult = engineExecutor.execute( | 90 | EngineExecutorResult executorResult = engineExecutor.execute( | 
| @@ -62,6 +62,9 @@ | @@ -62,6 +62,9 @@ | ||
| 62 | <result column="UPDATE_BY" jdbcType="VARCHAR" property="updateBy" /> | 62 | <result column="UPDATE_BY" jdbcType="VARCHAR" property="updateBy" /> | 
| 63 | <result column="UPDATE_DATE" jdbcType="TIMESTAMP" property="updateDate" /> | 63 | <result column="UPDATE_DATE" jdbcType="TIMESTAMP" property="updateDate" /> | 
| 64 | <result column="VE_STATE" jdbcType="VARCHAR" property="veState" /> | 64 | <result column="VE_STATE" jdbcType="VARCHAR" property="veState" /> | 
| 65 | + <result column="VE_CUSTOMS_NO" jdbcType="VARCHAR" property="veCustomsNo" /> | ||
| 66 | + <result column="IC_CODE" jdbcType="VARCHAR" property="icCode" /> | ||
| 67 | + <result column="LOCK_NUM" jdbcType="VARCHAR" property="lockNum" /> | ||
| 65 | </resultMap> | 68 | </resultMap> | 
| 66 | <sql id="Base_Column_List"> | 69 | <sql id="Base_Column_List"> | 
| 67 | ID, EPORT_ID, MAIN_PORT, CO_CODE, VE_TARGET_NO, DOMESTIC_LISENCE_NO, DOMESTIC_LICENSE_COLOR, | 70 | ID, EPORT_ID, MAIN_PORT, CO_CODE, VE_TARGET_NO, DOMESTIC_LISENCE_NO, DOMESTIC_LICENSE_COLOR, | 
| @@ -73,7 +76,7 @@ | @@ -73,7 +76,7 @@ | ||
| 73 | FRONT_45C_PIC, BACK_45C_PIC, OIL_BOX_PIC, VE_BOTTOM_PIC, MEMO, PROPOSER, PROPOSE_TIME, | 76 | FRONT_45C_PIC, BACK_45C_PIC, OIL_BOX_PIC, VE_BOTTOM_PIC, MEMO, PROPOSER, PROPOSE_TIME, | 
| 74 | VE_CLASS_FLAG, OPERATION_TYPE, TRAILER_LICENSE_NO, TRAILER_FRAME_NO, APPRO_NO_PIC, | 77 | VE_CLASS_FLAG, OPERATION_TYPE, TRAILER_LICENSE_NO, TRAILER_FRAME_NO, APPRO_NO_PIC, | 
| 75 | VE_FRAME_NO_PIC, MOTOR_NO_PIC, FOREIGN_LICENSE_PIC, NATIONALITY, RETURNMESSAGE, CREATE_BY, | 78 | VE_FRAME_NO_PIC, MOTOR_NO_PIC, FOREIGN_LICENSE_PIC, NATIONALITY, RETURNMESSAGE, CREATE_BY, | 
| 76 | - CREATE_DATE, UPDATE_BY, UPDATE_DATE,VE_STATE | 79 | + CREATE_DATE, UPDATE_BY, UPDATE_DATE,VE_STATE,VE_CUSTOMS_NO,IC_CODE,LOCK_NUM | 
| 77 | </sql> | 80 | </sql> | 
| 78 | <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> | 81 | <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> | 
| 79 | select | 82 | select | 
| @@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
| 47 | - rule_config、 | 47 | - rule_config、 | 
| 48 | - rule_channel_config、 | 48 | - rule_channel_config、 | 
| 49 | - land_business_type_config | 49 | - land_business_type_config | 
| 50 | - 3. 打开二维码正式环境获取接口,申请接口\取消申请接口\异常处理接口 | 50 | + 3. 打开二维码正式环境获取接口,申请接口\取消申请接口\异常处理接口\车辆备案接口 | 
| 51 | 4. 打包编译 | 51 | 4. 打包编译 | 
| 52 | 5. 上传正式服务器 | 52 | 5. 上传正式服务器 | 
| 53 | 7. 备份正在运行版本 | 53 | 7. 备份正在运行版本 | 
| @@ -73,3 +73,16 @@ | @@ -73,3 +73,16 @@ | ||
| 73 | - 配置业务类型管理权限 | 73 | - 配置业务类型管理权限 | 
| 74 | - 重新配置验放端规则信息到redis | 74 | - 重新配置验放端规则信息到redis | 
| 75 | 75 | ||
| 76 | + | ||
| 77 | +# VER 6.1 Date:2023-08-21 周三 | ||
| 78 | + - 功能 | ||
| 79 | + ## 新增金二验放规则 | ||
| 80 | + ## 新增金二回执处理接口 | ||
| 81 | + ## 针对双验放规则进行升级改造 | ||
| 82 | + ## 做一线进出口业务的需要备案电子车牌信息 | ||
| 83 | + - 数据库 | ||
| 84 | + 1. 车辆备案表新增电子车牌字段 | ||
| 85 | + - 验放服务 | ||
| 86 | + 1. 增加熔断器配置项 | ||
| 87 | + # 设置 Hystrix 的超时时间为 5000 毫秒 | ||
| 88 | + hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000 | 
- 
请 注册 或 登录 后发表评论