正在显示
7 个修改的文件
包含
186 行增加
和
51 行删除
| 1 | +package com.sy.feign; | ||
| 2 | + | ||
| 3 | +import feign.RequestInterceptor; | ||
| 4 | +import feign.RequestTemplate; | ||
| 5 | +import org.springframework.context.annotation.Bean; | ||
| 6 | +import org.springframework.context.annotation.Configuration; | ||
| 7 | +import org.springframework.web.context.request.RequestContextHolder; | ||
| 8 | +import org.springframework.web.context.request.ServletRequestAttributes; | ||
| 9 | + | ||
| 10 | +import javax.servlet.http.HttpServletRequest; | ||
| 11 | + | ||
| 12 | +@Configuration | ||
| 13 | +public class NmmsInterceptor { | ||
| 14 | + | ||
| 15 | + @Bean | ||
| 16 | + public RequestInterceptor requestInterceptor() { | ||
| 17 | + return new RequestInterceptor() { | ||
| 18 | + @Override | ||
| 19 | + public void apply(RequestTemplate template) { | ||
| 20 | + //给新请求同步老请求的cookie | ||
| 21 | + template.header("Cookie", "username=admin;userid=1903e605-a2e1-404d-a1a6-a749752fb030;"); | ||
| 22 | + System.out.println("我进入了远程feign"); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + }; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + | ||
| 29 | + | ||
| 30 | + public void apply(RequestTemplate requestTemplate) { | ||
| 31 | + | ||
| 32 | + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();//拿到当前的所有请求属性 | ||
| 33 | + HttpServletRequest request = attributes.getRequest();//获取到当前请求 | ||
| 34 | + if (request != null) { | ||
| 35 | + //同步请求头数据,cookie | ||
| 36 | + String cookie = request.getHeader("Cookie"); | ||
| 37 | + //给新请求同步老请求的cookie | ||
| 38 | + requestTemplate.header("Cookie", "username=admin;userid=1903e605-a2e1-404d-a1a6-a749752fb030;"); | ||
| 39 | + System.out.println("我进入了远程feign"); | ||
| 40 | + return; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + requestTemplate.header("Cookie", | ||
| 44 | + "username=admin;userid=1903e605-a2e1-404d-a1a6-a749752fb030;"); | ||
| 45 | + | ||
| 46 | + requestTemplate.query("Cookie", | ||
| 47 | + "username=admin; Path=/;", | ||
| 48 | + "userid=1903e605-a2e1-404d-a1a6-a749752fb030; Path=/;"); | ||
| 49 | +// requestTemplate.query("cookie", | ||
| 50 | +// "username=admin; Path=/;", | ||
| 51 | +// "userid=1903e605-a2e1-404d-a1a6-a749752fb030; Path=/;"); | ||
| 52 | + } | ||
| 53 | +} |
| @@ -98,8 +98,6 @@ class BillAllocateCheck extends Script implements ChannelCheckScript { | @@ -98,8 +98,6 @@ class BillAllocateCheck extends Script implements ChannelCheckScript { | ||
| 98 | waybill = waybill.replace(",", ","); | 98 | waybill = waybill.replace(",", ","); |
| 99 | String[] maifest = waybill.split(","); | 99 | String[] maifest = waybill.split(","); |
| 100 | logger.info("运单列表:" + waybill); | 100 | logger.info("运单列表:" + waybill); |
| 101 | - boolean flag = false; | ||
| 102 | - | ||
| 103 | for (String awb : maifest) { | 101 | for (String awb : maifest) { |
| 104 | Map map= nmmsAllocate(awb); | 102 | Map map= nmmsAllocate(awb); |
| 105 | if (map.containsKey("reslut")){ | 103 | if (map.containsKey("reslut")){ |
| @@ -110,9 +108,9 @@ class BillAllocateCheck extends Script implements ChannelCheckScript { | @@ -110,9 +108,9 @@ class BillAllocateCheck extends Script implements ChannelCheckScript { | ||
| 110 | JSONObject awbinfo = ds.getJSONObject(0); | 108 | JSONObject awbinfo = ds.getJSONObject(0); |
| 111 | if (awbinfo.containsKey("RECEIPTINFORMATION")){ | 109 | if (awbinfo.containsKey("RECEIPTINFORMATION")){ |
| 112 | if (awbinfo.getString("RECEIPTINFORMATION").contains("39301") || awbinfo.getString("RECEIPTINFORMATION").contains("39103")){ | 110 | if (awbinfo.getString("RECEIPTINFORMATION").contains("39301") || awbinfo.getString("RECEIPTINFORMATION").contains("39103")){ |
| 113 | - log.info("运单:{},分拨回执查询结果:{}",awb,awbinfo.getString("RECEIPTINFORMATION")); | 111 | + logger.info("运单:{},分拨回执查询结果:{}",awb,awbinfo.getString("RECEIPTINFORMATION")); |
| 114 | }else { | 112 | }else { |
| 115 | - log.info("运单{}分拨申请回执不正常:{}",awb,awbinfo.getString("RECEIPTINFORMATION")); | 113 | + logger.info("运单{}分拨申请回执不正常:{}",awb,awbinfo.getString("RECEIPTINFORMATION")); |
| 116 | return false; | 114 | return false; |
| 117 | } | 115 | } |
| 118 | } | 116 | } |
| @@ -117,6 +117,7 @@ class LockNoticeCheck extends Script implements ChannelCheckScript { | @@ -117,6 +117,7 @@ class LockNoticeCheck extends Script implements ChannelCheckScript { | ||
| 117 | }else { | 117 | }else { |
| 118 | CommandClient.Client(info,"流转业务-未申请关锁号"); | 118 | CommandClient.Client(info,"流转业务-未申请关锁号"); |
| 119 | record(info,false,"业务异常:流转业务-未申请关锁号",null); | 119 | record(info,false,"业务异常:流转业务-未申请关锁号",null); |
| 120 | + log.error("[LockNoticeCheck-ERR]:流转业务-未申请关锁号"); | ||
| 120 | //这里需要返回true,是关锁业务,但是中断,不抬杆不放行,给予关锁业务异常通知 | 121 | //这里需要返回true,是关锁业务,但是中断,不抬杆不放行,给予关锁业务异常通知 |
| 121 | return false; | 122 | return false; |
| 122 | } | 123 | } |
| 1 | package com.sy.service; | 1 | package com.sy.service; |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | +import com.sy.feign.NmmsInterceptor; | ||
| 4 | import com.sy.model.Feign_Allocate_Search; | 5 | import com.sy.model.Feign_Allocate_Search; |
| 5 | import com.sy.model.NmmsPrepaidMasterSearch; | 6 | import com.sy.model.NmmsPrepaidMasterSearch; |
| 6 | import com.sy.service.impl.NmmsServiceHystrix; | 7 | import com.sy.service.impl.NmmsServiceHystrix; |
| @@ -15,7 +16,7 @@ import java.util.Map; | @@ -15,7 +16,7 @@ import java.util.Map; | ||
| 15 | * todo:生产要把这里改成内网舱单地址,已更新为在配置文件改 | 16 | * todo:生产要把这里改成内网舱单地址,已更新为在配置文件改 |
| 16 | */ | 17 | */ |
| 17 | @Component | 18 | @Component |
| 18 | -@FeignClient(name = "nmmsFeign",url = "${nmms.site.host}",fallback = NmmsServiceHystrix.class) | 19 | +@FeignClient(name = "nmmsFeign",url = "${nmms.site.host}",fallback = NmmsServiceHystrix.class,configuration = NmmsInterceptor.class) |
| 19 | public interface NmmsService { | 20 | public interface NmmsService { |
| 20 | 21 | ||
| 21 | @ResponseBody | 22 | @ResponseBody |
| @@ -67,54 +67,59 @@ public class EnginCheckServiceImpl implements EnginCheckService { | @@ -67,54 +67,59 @@ public class EnginCheckServiceImpl implements EnginCheckService { | ||
| 67 | @Override | 67 | @Override |
| 68 | public Boolean enginCheckByGatherInfo(GatherInfo gatherInfo,ExecuteParams executeParams) { | 68 | public Boolean enginCheckByGatherInfo(GatherInfo gatherInfo,ExecuteParams executeParams) { |
| 69 | 69 | ||
| 70 | - //获取申请信息 | ||
| 71 | - LandBusinessTypeList chanelFormInfo = (LandBusinessTypeList) executeParams.get("ChanelFormInfo"); | ||
| 72 | - if (chanelFormInfo!=null){ | ||
| 73 | - //查询验放配置参数生成 | ||
| 74 | - RuleChannelConfig ruleChannelConfig = new RuleChannelConfig(); | ||
| 75 | - ruleChannelConfig.setBusinessType(chanelFormInfo.getBusinesstype()); | ||
| 76 | - ruleChannelConfig.setGoodsType(chanelFormInfo.getCocode()); | ||
| 77 | - ruleChannelConfig.setChannelNum(gatherInfo.getChnlno()); | ||
| 78 | - List<RuleChannelConfig> ruleChannelConfigs = ruleChannelConfigDao.selectByChannelAndBusiTypeAndGoodsType(ruleChannelConfig); | ||
| 79 | - | ||
| 80 | - if (ruleChannelConfigs!=null && !ruleChannelConfigs.isEmpty()){ | ||
| 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 | - } | ||
| 88 | - // 执行脚本中指定的方法 changeProduct | ||
| 89 | - EngineExecutorResult executorResult = engineExecutor.execute( | ||
| 90 | - ruleChannelConfigs.get(i).ruleConfig.getScriptMethodName(), new ScriptQuery(ruleChannelConfigs.get(i).ruleConfig.getScriptKey()), executeParams); | ||
| 91 | - log.info("验证脚本名称:{},验证KEY-NAME:{}", ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey()); | ||
| 92 | - log.info("使用groovy脚本来验证过卡判定放行结果=========>>>>>>>>>>>执行结果:{}", executorResult); | ||
| 93 | - if (executorResult.getExecutionStatus().equals(ExecutionStatus.SUCCESS)){ | ||
| 94 | - if (executorResult.getContext() instanceof Boolean){ | ||
| 95 | - Boolean execResult = (Boolean) executorResult.getContext(); | ||
| 96 | - if (execResult) { | ||
| 97 | - log.info("验证脚本名称:{},验证KEY-NAME:{}-[验放成功]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey()); | ||
| 98 | - }else { | ||
| 99 | - log.info("验放失败"); | ||
| 100 | - return false; | 70 | + try { |
| 71 | + //获取申请信息 | ||
| 72 | + LandBusinessTypeList chanelFormInfo = (LandBusinessTypeList) executeParams.get("ChanelFormInfo"); | ||
| 73 | + if (chanelFormInfo!=null){ | ||
| 74 | + //查询验放配置参数生成 | ||
| 75 | + RuleChannelConfig ruleChannelConfig = new RuleChannelConfig(); | ||
| 76 | + ruleChannelConfig.setBusinessType(chanelFormInfo.getBusinesstype()); | ||
| 77 | + ruleChannelConfig.setGoodsType(chanelFormInfo.getCocode()); | ||
| 78 | + ruleChannelConfig.setChannelNum(gatherInfo.getChnlno()); | ||
| 79 | + List<RuleChannelConfig> ruleChannelConfigs = ruleChannelConfigDao.selectByChannelAndBusiTypeAndGoodsType(ruleChannelConfig); | ||
| 80 | + | ||
| 81 | + if (ruleChannelConfigs!=null && !ruleChannelConfigs.isEmpty()){ | ||
| 82 | + for (int i = 0; i < ruleChannelConfigs.size(); i++) { | ||
| 83 | + /** | ||
| 84 | + * 核销判定需要另外执行.这里需要跳过. | ||
| 85 | + */ | ||
| 86 | + if (ruleChannelConfigs.get(i).ruleConfig != null && "核销判定".equals(ruleChannelConfigs.get(i).ruleConfig.getRuleType())){ | ||
| 87 | + return true; | ||
| 88 | + } | ||
| 89 | + // 执行脚本中指定的方法 changeProduct | ||
| 90 | + EngineExecutorResult executorResult = engineExecutor.execute( | ||
| 91 | + ruleChannelConfigs.get(i).ruleConfig.getScriptMethodName(), new ScriptQuery(ruleChannelConfigs.get(i).ruleConfig.getScriptKey()), executeParams); | ||
| 92 | + log.info("验证脚本名称:{},验证KEY-NAME:{},执行结果:{}", ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey(),executorResult); | ||
| 93 | + if (executorResult.getExecutionStatus().equals(ExecutionStatus.SUCCESS)){ | ||
| 94 | + if (executorResult.getContext() instanceof Boolean){ | ||
| 95 | + Boolean execResult = (Boolean) executorResult.getContext(); | ||
| 96 | + if (execResult) { | ||
| 97 | + log.info("[ENGIN-CHECK-SUCCESS] - 验证脚本名称:{},验证KEY-NAME:{}-[验放成功]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey()); | ||
| 98 | + }else { | ||
| 99 | + log.info("[ENGIN-CHECK-FAILD]验放失败"); | ||
| 100 | + return false; | ||
| 101 | + } | ||
| 101 | } | 102 | } |
| 103 | + }else { | ||
| 104 | + log.error("[ENGIN-CHECK-FAILD]-验证脚本名称:{},验证KEY-NAME:{}-[验放失败]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey()); | ||
| 105 | + return false; | ||
| 102 | } | 106 | } |
| 103 | - }else { | ||
| 104 | - log.error("验证脚本名称:{},验证KEY-NAME:{}-[验放失败]",ruleChannelConfigs.get(i).ruleConfig.getRuleName(),ruleChannelConfigs.get(i).ruleConfig.getScriptKey()); | ||
| 105 | - return false; | ||
| 106 | } | 107 | } |
| 108 | + return true; | ||
| 109 | + }else { | ||
| 110 | + log.error("[ENGIN-CHECK-FAILD]-[{}]-通道未配置规则,不支持此业务",gatherInfo.getChnlno()); | ||
| 111 | + sendBw(gatherInfo,false,"通道未配置规则,不支持此业务",executeParams); | ||
| 112 | + return false; | ||
| 107 | } | 113 | } |
| 108 | - return true; | ||
| 109 | - }else { | ||
| 110 | - log.error("[{}]-通道未配置规则,不支持此业务",gatherInfo.getChnlno()); | ||
| 111 | - sendBw(gatherInfo,false,"通道未配置规则,不支持此业务",executeParams); | ||
| 112 | - return false; | ||
| 113 | } | 114 | } |
| 115 | + sendBw(gatherInfo,false,"未找到流转申请信息",executeParams); | ||
| 116 | + log.error("[ENGIN-CHECK-FAILD]-未找到流转申请信息"); | ||
| 117 | + return false; | ||
| 118 | + }catch (Exception e){ | ||
| 119 | + log.error("[ENGIN-CHECK-ERR]",e); | ||
| 120 | + return false; | ||
| 114 | } | 121 | } |
| 115 | - sendBw(gatherInfo,false,"未找到流转申请信息",executeParams); | ||
| 116 | - log.error("未找到流转申请信息"); | ||
| 117 | - return false; | 122 | + |
| 118 | } | 123 | } |
| 119 | 124 | ||
| 120 | @Override | 125 | @Override |
| @@ -80,7 +80,7 @@ public class CommandClient { | @@ -80,7 +80,7 @@ public class CommandClient { | ||
| 80 | OutputStream op = null; | 80 | OutputStream op = null; |
| 81 | try { | 81 | try { |
| 82 | //ip+端口 | 82 | //ip+端口 |
| 83 | - socket = new Socket("10.50.7.10", 9003); | 83 | + socket = new Socket("10.50.7.10", 9998); |
| 84 | log.info("socket通讯创建连接成功"); | 84 | log.info("socket通讯创建连接成功"); |
| 85 | op = socket.getOutputStream(); | 85 | op = socket.getOutputStream(); |
| 86 | //xml字节流 | 86 | //xml字节流 |
| @@ -91,7 +91,7 @@ public class CommandClient { | @@ -91,7 +91,7 @@ public class CommandClient { | ||
| 91 | head[1]=(byte)0x5C; | 91 | head[1]=(byte)0x5C; |
| 92 | head[2]=(byte)0x4B; | 92 | head[2]=(byte)0x4B; |
| 93 | head[3]=(byte)0x89; | 93 | head[3]=(byte)0x89; |
| 94 | - //消息类型 | 94 | + //消息类型,0x21为gatherInfo 0x22为commandInfo |
| 95 | byte[] mType = new byte[1]; | 95 | byte[] mType = new byte[1]; |
| 96 | mType[0] = (byte)0x22; | 96 | mType[0] = (byte)0x22; |
| 97 | //场站号 | 97 | //场站号 |
| @@ -130,6 +130,63 @@ public class CommandClient { | @@ -130,6 +130,63 @@ public class CommandClient { | ||
| 130 | log.info("文件发送失败"+e.getMessage()); | 130 | log.info("文件发送失败"+e.getMessage()); |
| 131 | } | 131 | } |
| 132 | } | 132 | } |
| 133 | + | ||
| 134 | + private static void sendWithSocket_x21(GatherInfo info,String xmlBody){ | ||
| 135 | + Socket socket =null; | ||
| 136 | + OutputStream op = null; | ||
| 137 | + try { | ||
| 138 | + //ip+端口 | ||
| 139 | + socket = new Socket("10.50.7.10", 9998); | ||
| 140 | + log.info("socket通讯创建连接成功"); | ||
| 141 | + op = socket.getOutputStream(); | ||
| 142 | + //xml字节流 | ||
| 143 | + byte[]xBody =xmlBody.getBytes("GB2312"); | ||
| 144 | + //包头 | ||
| 145 | + byte[] head = new byte[4]; | ||
| 146 | + head[0]=(byte)0xE2; | ||
| 147 | + head[1]=(byte)0x5C; | ||
| 148 | + head[2]=(byte)0x4B; | ||
| 149 | + head[3]=(byte)0x89; | ||
| 150 | + //消息类型,0x21为gatherInfo 0x22为commandInfo | ||
| 151 | + byte[] mType = new byte[1]; | ||
| 152 | + mType[0] = (byte)0x21; | ||
| 153 | + //场站号 | ||
| 154 | + byte[]station =info.getAreaid().getBytes("ASCII"); | ||
| 155 | + //通道号 | ||
| 156 | + byte[]aisle =info.getChnlno().getBytes("ASCII"); | ||
| 157 | + //进出标识 | ||
| 158 | + byte[]eType =info.getIetype().getBytes("ASCII"); | ||
| 159 | + //标识符 | ||
| 160 | + byte[] bwFlag = new byte[4]; | ||
| 161 | + bwFlag[0]=(byte)0x00; | ||
| 162 | + bwFlag[1]=(byte)0x00; | ||
| 163 | + bwFlag[2]=(byte)0x00; | ||
| 164 | + bwFlag[3]=(byte)0x00; | ||
| 165 | + //xml字节流长度 | ||
| 166 | + byte[]xmlLength = intToByte4(xBody.length); | ||
| 167 | + //包尾 | ||
| 168 | + byte[]end = new byte[2]; | ||
| 169 | + end[0]=(byte)0xFF; | ||
| 170 | + end[1]=(byte)0xFF; | ||
| 171 | + System.out.println(); | ||
| 172 | + //总长 4为总长的length | ||
| 173 | + byte [] packge = intToByte4((head.length+xBody.length+mType.length+station.length+aisle.length+eType | ||
| 174 | + .length+bwFlag.length+xmlLength.length+end.length+4)); | ||
| 175 | + byte[]allByte = byteMergerAll(head,packge,mType,station,aisle,eType,bwFlag,xmlLength,xBody,end); | ||
| 176 | + op.write(allByte); | ||
| 177 | + op.flush(); | ||
| 178 | + op.close(); | ||
| 179 | + log.info("发送完毕"); | ||
| 180 | + socket.close(); | ||
| 181 | + } catch (UnknownHostException e) { | ||
| 182 | + e.printStackTrace(); | ||
| 183 | + log.info("创建连接失败"+e.getMessage()); | ||
| 184 | + } catch (IOException e) { | ||
| 185 | + e.printStackTrace(); | ||
| 186 | + log.info("文件发送失败"+e.getMessage()); | ||
| 187 | + } | ||
| 188 | + } | ||
| 189 | + | ||
| 133 | /** | 190 | /** |
| 134 | * @Param info 卡口采集信息 | 191 | * @Param info 卡口采集信息 |
| 135 | * @Param flag 放行标识 | 192 | * @Param flag 放行标识 |
| @@ -185,7 +242,7 @@ public class CommandClient { | @@ -185,7 +242,7 @@ public class CommandClient { | ||
| 185 | //给三宝的去掉BARCODE,todo:不去掉做个测试 | 242 | //给三宝的去掉BARCODE,todo:不去掉做个测试 |
| 186 | .replace("${BAR_CODE}",info.getBarcode()); | 243 | .replace("${BAR_CODE}",info.getBarcode()); |
| 187 | 244 | ||
| 188 | - sendWithSocket(info,gatherXML); | 245 | + sendWithSocket_x21(info,gatherXML); |
| 189 | } | 246 | } |
| 190 | 247 | ||
| 191 | 248 |
| @@ -28,6 +28,26 @@ class WeightCheckHandleServiceImplTest { | @@ -28,6 +28,26 @@ class WeightCheckHandleServiceImplTest { | ||
| 28 | 28 | ||
| 29 | @Test | 29 | @Test |
| 30 | void checkAllocateOrDispatch(){ | 30 | void checkAllocateOrDispatch(){ |
| 31 | - weightCheckHandleService.checkAllocateOrDispatch(12740,10500,2200+4630,14960); | 31 | + weightCheckHandleService.checkAllocateOrDispatch(10560,10500,175.6,10310); |
| 32 | + } | ||
| 33 | + | ||
| 34 | + @Test | ||
| 35 | + void checkResult() { | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + @Test | ||
| 39 | + void checkImportAtCheckIN() { | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + @Test | ||
| 43 | + void checkEmpty() { | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + @Test | ||
| 47 | + void checkFlag() { | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + @Test | ||
| 51 | + void valueDob() { | ||
| 32 | } | 52 | } |
| 33 | } | 53 | } |
-
请 注册 或 登录 后发表评论