切换导航条
此项目
正在载入...
登录
zhangFan
/
analysis_imf
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
朱兆平
2 years ago
提交
a312aee6b928f2f5afa41bb87a4d075d8d7d5a58
1 个父辈
16a33caa
国内转运验放脚本
显示空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
159 行增加
和
0 行删除
src/main/java/com/sy/groovy/BillDomTransportCheck.groovy
src/main/java/com/sy/groovy/BillDomTransportCheck.groovy
0 → 100644
查看文件 @
a312aee
package
com.sy.groovy
import
com.alibaba.fastjson.JSON
import
com.alibaba.fastjson.JSONArray
import
com.alibaba.fastjson.JSONObject
import
com.sy.model.GatherInfo
import
com.sy.model.LAND_BUSINEESTYPE_LIST_INFO
import
com.sy.model.LandBusinessTypeList
import
com.sy.response.ResultJson
import
com.sy.service.impl.GatherInfoHandle
;
import
feign.Feign
import
feign.Headers
import
feign.Param
;
import
feign.Request
import
feign.RequestLine
;
import
feign.hystrix.FallbackFactory
;
import
groovy.lang.Script
;
import
org.basis.enhance.groovy.entity.ExecuteParams
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
import
org.springframework.context.ApplicationContext
import
java.util.stream.Collectors
;
/**
* 单证验放
* 放行验放
*/
class
BillDomTransportCheck
extends
Script
implements
ChannelCheckScript
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Override
Boolean
check
(
ExecuteParams
executeParams
)
{
try
{
String
cookieUserName
=
"admin"
String
cookieUserId
=
"1903e605-a2e1-404d-a1a6-a749752fb030"
String
ServiceAdr
=
"http://192.168.1.63:10001"
GatherInfo
gatherInfo
=
(
GatherInfo
)
executeParams
.
get
(
"GatherInfo"
);
LandBusinessTypeList
landBusinessTypeList
=
(
LandBusinessTypeList
)
executeParams
.
get
(
"ChanelFormInfo"
);
List
<
LAND_BUSINEESTYPE_LIST_INFO
>
listinfos
=
(
List
<
LAND_BUSINEESTYPE_LIST_INFO
>)
executeParams
.
get
(
"ChanelFormBillLists"
);
// 调用方法
ApplicationContext
context
=
getContext
();
// 获取容器中的bean
GatherInfoHandle
gatherInfoHandle
=
context
.
getBean
(
GatherInfoHandle
.
class
);
if
(
listinfos
!=
null
&&
!
listinfos
.
isEmpty
()){
//数组过滤,只要单证,不要其他 板箱之类
List
<
LAND_BUSINEESTYPE_LIST_INFO
>
list_infos
=
listinfos
.
stream
().
filter
({
listInfo
->
if
(
"B"
.
equals
(
listInfo
.
getExt4
()))
{
return
true
;
}
else
{
return
false
;
}
}).
collect
(
Collectors
.
toList
());
list_infos
.
forEach
({
bill
->
// 创建 Feign Client
//https://nmms.zzcargo.com:8443/api/wlpt-nmms-manage/trans/dom?originFlightno=&originFlightdate=&originFlightdateEnd=&originMasterwaybill=ML66158691&agentName=&transType=dom&pageNum=1&pageSize=10
MyFeignClient
myFeignClient
=
createFeignClient
(
MyFeignClient
,
ServiceAdr
,
cookieUserName
,
cookieUserId
);
// 调用第三方接口
String
response
=
myFeignClient
.
callThirdPartyApi
(
bill
.
getAwba
(),
cookieUserName
,
cookieUserId
);
logger
.
info
(
"[TRANS-API-RESPONSE]-{}"
,
response
)
// 处理响应结果...
//返回的ResultJson实体类
JSONObject
jo
=
JSONObject
.
parseObject
(
response
);
StringBuilder
sb
=
new
StringBuilder
(
""
);
if
(
"200"
.
equals
(
jo
.
getString
(
"code"
))){
//获取返回列表 data->list
JSONObject
rData
=
jo
.
getJSONObject
(
"data"
)
if
(
rData
!=
null
){
JSONArray
rList
=
rData
.
getJSONArray
(
"list"
)
if
(
rList
!=
null
&&
!
rList
.
isEmpty
()){
rList
.
forEach
({
item
->
JSONObject
jsonObject
=
(
JSONObject
)
item
;
Integer
status
=
jsonObject
.
getInteger
(
"status"
)
String
oBill
=
jsonObject
.
getString
(
"originMasterwaybill"
)
logger
.
info
(
"[TRANS-API-RESPONSE]-单证:{},状态:{}"
,
oBill
,
status
)
if
(
status
>
0
){
// return true
}
else
{
sb
.
append
(
"转运单证["
).
append
(
bill
.
getAwba
()).
append
(
"]核验失败,未审核通过"
)
gatherInfoHandle
.
sendBw
(
gatherInfo
,
false
,
sb
.
toString
(),
landBusinessTypeList
,
listinfos
);
return
false
}
})
}
}
}
else
{
logger
.
info
(
"[TRANS-CHECK-FAILD]-转运单证{}核验失败"
,
bill
.
getAwba
())
sb
.
append
(
"转运单证["
).
append
(
bill
.
getAwba
()).
append
(
"]核验失败,API-FAILD"
)
gatherInfoHandle
.
sendBw
(
gatherInfo
,
false
,
sb
.
toString
(),
landBusinessTypeList
,
listinfos
);
return
false
;
}
})
//这里返回验放成功,验放失败从上面返回
return
true
;
}
else
{
return
false
;
}
}
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
;
}
private
<
T
>
T
createFeignClient
(
Class
<
T
>
clientClass
,
String
url
,
String
username
,
String
userid
)
{
return
Feign
.
builder
()
.
options
(
new
Request
.
Options
(
5000
,
5000
))
.
requestInterceptor
({
requestTemplate
->
String
cookieValue
=
"username="
+
username
+
"; userid="
+
userid
;
requestTemplate
.
header
(
"Cookie"
,
cookieValue
);
})
.
target
(
clientClass
,
url
);
}
interface
MyFeignClient
{
@RequestLine
(
"GET /trans/dom?originMasterwaybill={originMasterwaybill}"
)
@Headers
(
"Cookie: username={username}; userid={userid}"
)
String
callThirdPartyApi
(
@Param
(
"originMasterwaybill"
)
String
originMasterwaybill
,
@Param
(
"username"
)
String
username
,
@Param
(
"userid"
)
String
userid
);
}
class
MyFallbackFactory
implements
FallbackFactory
<
MyFeignClient
>
{
@Override
public
MyFeignClient
create
(
Throwable
throwable
)
{
return
new
MyFeignClient
()
{
@Override
public
String
callThirdPartyApi
(
String
originMasterwaybill
,
String
username
,
String
userid
)
{
// 处理 fallback 逻辑...
ResultJson
resultJson
=
new
ResultJson
(
"400"
,
"访问接口出错"
);
return
JSON
.
toJSONString
(
resultJson
);
}
};
}
}
}
...
...
请
注册
或
登录
后发表评论