Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit cffc76ca
由
LN
编写于
2022-05-13 17:52:01 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
接口修改
1 个父辈
29e7db1e
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
187 行增加
和
151 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLShelfHandler.java
src/main/java/com/neotel/smfcore/hikvision/HikApi.java
src/main/java/com/neotel/smfcore/hikvision/HikApiCache.java
src/main/java/com/neotel/smfcore/hikvision/bean/InOutApiInfo.java
src/main/java/com/neotel/smfcore/hikvision/bean/api/HikApiRequest.java
src/main/java/com/neotel/smfcore/hikvision/util/HttpHelper.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
cffc76c
...
...
@@ -672,7 +672,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
boolean
result
=
HikApi
.
scheduleTaskApi
(
task
.
getOperator
(),
taskInfo
);
}
else
{
//出库完成,调用 ,7.6出库下架过账接口
boolean
result
=
HikApi
.
checkOutApi
(
task
.
getOperator
(),
InOutApiInfo
.
outInfo
(
task
.
getOutType
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getBaseCode
(),
task
.
getLgort
()));
boolean
result
=
HikApi
.
checkOutApi
(
task
.
getOperator
(),
InOutApiInfo
.
outInfo
(
task
.
getOutType
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getBaseCode
(),
task
.
getLgort
()
,
task
.
getSourceName
()
));
}
//从队列里面移除操作
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLShelfHandler.java
查看文件 @
cffc76c
...
...
@@ -282,7 +282,7 @@ public class NLShelfHandler extends BaseDeviceHandler {
taskService
.
addTaskToFinished
(
inPos
,
null
,
loginUser
);
opPosLight
(
"close"
,
inPos
,
null
);
log
.
info
(
barcode
.
getBarcode
()
+
" 出库完成, 库位["
+
inPos
.
getPosName
()
+
"]灭灯"
);
return
ResultBean
.
new
ErrorResult
(
1
,
"smfcore.shelf.msg.outConfirm"
,
"出库完成, 库位[{0}]灭灯"
,
new
String
[]{
inPos
.
getPosName
()}
);
return
ResultBean
.
new
OkResult
(
"smfcore.shelf.msg.outConfirm"
,
"出库完成, 库位[{0}]灭灯"
,
new
String
[]{
inPos
.
getPosName
()}
);
}
}
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.shelf.msg.noTask"
,
"操作失败,已在库位[{0}]中,未找到对应的出库任务"
,
new
String
[]{
inPos
.
getPosName
()});
...
...
src/main/java/com/neotel/smfcore/hikvision/HikApi.java
查看文件 @
cffc76c
...
...
@@ -79,7 +79,7 @@ public class HikApi {
return
""
;
}
/**
*
接口名 转储单接口
*
7.1接口名 转储单接口 不需要重发
* 功能说明 针对亮灯货架的转储出库,SMF系统根据业务类型调用MES接口,推送转储单信息给SMF
* 提供方 MES
* 调用方 SMF
...
...
@@ -111,19 +111,17 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap);
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
1
,
url
,
config
.
key_1_transferOrderApi
,
config
.
secret_1_transferOrderApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
1
,
url
,
config
.
key_1_transferOrderApi
,
config
.
secret_1_transferOrderApi
,
info
);
log
.
info
(
apiName
+
" 发送 "
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
boolean
needResend
=
false
;
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
// needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
needResend
=
true
;
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",message="
+
responseInfo
.
getMessage
()+
",
需要重发,
"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",message="
+
responseInfo
.
getMessage
()+
","
+
JsonUtil
.
toJsonStr
(
responseInfo
));
ApiResult
apiResult
=
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
new
ArrayList
<>());
return
apiResult
;
}
else
{
...
...
@@ -133,17 +131,17 @@ public class HikApi {
ApiResult
apiResult
=
new
ApiResult
(
0
,
""
,
list
);
return
apiResult
;
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
,
responseInfo
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
" 出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
new
ApiResult
(-
1
,
"获取转储入库单失败"
,
""
);
}
/**
* 7.2转储单入库过账接口
* 7.2转储单入库过账接口
需要重发
* @param userName
* @param inInfo
* @return 返回记录转储过账信息 是否成功,true=成功
...
...
@@ -163,15 +161,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap);
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
2
,
url
,
config
.
key_2_transferOrderInApi
,
config
.
secret_2_transferOrderInApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
2
,
url
,
config
.
key_2_transferOrderInApi
,
config
.
secret_2_transferOrderInApi
,
info
);
log
.
info
(
apiName
+
" 发送 "
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
boolean
needResend
=
false
;
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
//
needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
needResend
=
true
;
log
.
info
(
apiName
+
"未收到反馈
,需要重发
"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
...
...
@@ -180,17 +178,17 @@ public class HikApi {
log
.
info
(
apiName
+
" 返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
return
true
;
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
,
responseInfo
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
false
;
}
/**
* 7.3排程发料过账接口
* 7.3排程发料过账接口
需要重发
* @param userName
* @param param
* @return 返回保存备料信息是否成功,true=成功
...
...
@@ -221,15 +219,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap);
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
3
,
url
,
config
.
key_3_scheduleTaskApi
,
config
.
secret_3_scheduleTaskApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
3
,
url
,
config
.
key_3_scheduleTaskApi
,
config
.
secret_3_scheduleTaskApi
,
info
);
log
.
info
(
apiName
+
" 发送 "
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
boolean
needResend
=
false
;
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
//
needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
needResend
=
true
;
log
.
info
(
apiName
+
"未收到反馈
,需要重发
"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
...
...
@@ -238,13 +236,13 @@ public class HikApi {
log
.
info
(
apiName
+
" 返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
return
true
;
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
,
responseInfo
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
false
;
}
...
...
@@ -269,19 +267,16 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap);
// data String 41 是 料盘ID
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
4
,
url
,
config
.
key_4_returnMaterialApi
,
config
.
secret_4_returnMaterialApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
4
,
url
,
config
.
key_4_returnMaterialApi
,
config
.
secret_4_returnMaterialApi
,
info
);
log
.
info
(
apiName
+
" 发送"
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
// needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",需要重发,"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
","
+
JsonUtil
.
toJsonStr
(
responseInfo
));
}
else
{
log
.
info
(
apiName
+
" 返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
Map
<
String
,
Object
>
rdataMap
=
JsonUtil
.
toMap
(
responseInfo
.
getDataStr
());
...
...
@@ -293,15 +288,12 @@ public class HikApi {
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
-
1
;
}
/**
* 7.5 入库上架过账接口
* 7.5 入库上架过账接口
需要重发
* @param userName
* @param param
* @return 入库上架过账 是否成功,true=成功
...
...
@@ -345,15 +337,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap);
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
5
,
url
,
config
.
key_5_putInApi
,
config
.
secret_5_putInApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
5
,
url
,
config
.
key_5_putInApi
,
config
.
secret_5_putInApi
,
info
);
log
.
info
(
apiName
+
" 发送 "
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
boolean
needResend
=
false
;
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
//
needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
needResend
=
true
;
log
.
info
(
apiName
+
"未收到反馈
,需要重发
"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
...
...
@@ -362,18 +354,18 @@ public class HikApi {
log
.
info
(
apiName
+
" 返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
return
true
;
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
,
responseInfo
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
false
;
}
/**
* 7.6 出库下架过账接口
* 7.6 出库下架过账接口
需要重发
* @param userName
* @param param
* @return 保存下架过账信息 是否成功,true=成功
...
...
@@ -388,8 +380,9 @@ public class HikApi {
if
(
ObjectUtil
.
isEmpty
(
param
.
getLgort
())&&
ObjectUtil
.
isNotEmpty
(
config
.
lgort
)){
param
.
setLgort
(
config
.
lgort
);
}
// warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库)
// warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库
3线边仓间转储出库 4预留单出库
)
// trayId String 41 是 料盘ID/唯一码
// docNo String 否 单据号,备注:如果出库类型为3,4则填写预留单号,必填,其他非必填
// qty Integer 是 数量
// baseCode String 16 是 基地
// lgort String 16 是 库位
...
...
@@ -399,22 +392,23 @@ public class HikApi {
dataMap
.
put
(
"qty"
,
param
.
getQty
());
//数量
dataMap
.
put
(
"baseCode"
,
param
.
getBaseCode
());
//基地
dataMap
.
put
(
"lgort"
,
param
.
getLgort
());
//库位
if
(
param
.
getOutType
().
equals
(
3
)||
param
.
getOutType
().
equals
(
4
))
{
dataMap
.
put
(
"docNo"
,
param
.
getDocNo
());
//如果出库类型为3,4则填写预留单号,必填,其他非必填
}
// String data = JsonUtil.toJsonStr(dataMap);
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
6
,
url
,
config
.
key_6_checkOutApi
,
config
.
secret_6_checkOutApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
6
,
url
,
config
.
key_6_checkOutApi
,
config
.
secret_6_checkOutApi
,
info
);
log
.
info
(
apiName
+
" 发送 "
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
boolean
needResend
=
false
;
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
//
needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
needResend
=
true
;
log
.
info
(
apiName
+
"未收到反馈
,需要重发
"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
...
...
@@ -423,13 +417,13 @@ public class HikApi {
log
.
info
(
apiName
+
" 返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
return
true
;
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
,
responseInfo
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
false
;
}
...
...
@@ -440,23 +434,20 @@ public class HikApi {
* @return 保存下架过账信息 是否成功,true=成功
*/
public
static
ApiResult
updateOrderApi
(
String
userName
,
String
orderNo
){
boolean
needResend
=
false
;
String
apiName
=
"Hik 工单发料状态查询接口 (updateOrderApi): "
;
String
url
=
getUrl
(
config
.
addr_7_updateOrderApi
,
"updateOrderApi"
);
// data String 16 是 工单号/合单号
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
orderNo
);
HikApiRequest
request
=
new
HikApiRequest
(
6
,
url
,
config
.
key_7_updateOrderApi
,
config
.
secret_7_updateOrderApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
6
,
url
,
config
.
key_7_updateOrderApi
,
config
.
secret_7_updateOrderApi
,
info
);
// List<Object> resultList=new ArrayList<>();
log
.
info
(
apiName
+
" 发送"
+
info
.
getData
());
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
// needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",需要重发,"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
}
else
if
(
responseInfo
.
getCode
().
equals
(
33
)){
...
...
@@ -464,26 +455,17 @@ public class HikApi {
//工单已关闭
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",工单已关闭,无法出库"
);
return
new
ApiResult
(
33
,
"工单已关闭,无法出库"
,
new
ArrayList
<>());
// resultList.add(33);
// resultList.add(new ArrayList<>());
// return resultList;
}
else
{
log
.
info
(
apiName
+
"返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
String
dataStr
=
responseInfo
.
getDataStr
();
List
<
HikOrderInfo
>
list
=
JsonUtil
.
toList
(
dataStr
,
HikOrderInfo
.
class
);
return
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
new
ArrayList
<>());
// resultList.add(responseInfo.getCode());
// resultList.add(list);
// return resultList;
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
null
;
}
...
...
@@ -518,19 +500,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap);
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
8
,
url
,
config
.
key_8_riCheckApi
,
config
.
secret_8_riCheckApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
8
,
url
,
config
.
key_8_riCheckApi
,
config
.
secret_8_riCheckApi
,
info
);
log
.
info
(
apiName
+
" 发送 "
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
// needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",需要重发,"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
","
+
JsonUtil
.
toJsonStr
(
responseInfo
));
}
else
{
return
responseInfo
;
}
...
...
@@ -538,9 +516,6 @@ public class HikApi {
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
null
;
}
...
...
@@ -556,45 +531,38 @@ public class HikApi {
// List<Object> resultList=new ArrayList<>();
// data String 41 是 补料单号
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
replenishmentNo
);
HikApiRequest
request
=
new
HikApiRequest
(
9
,
url
,
config
.
key_9_updateRepOrderApi
,
config
.
secret_9_updateRepOrderApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
9
,
url
,
config
.
key_9_updateRepOrderApi
,
config
.
secret_9_updateRepOrderApi
,
info
);
log
.
info
(
apiName
+
" 发送"
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
boolean
needResend
=
false
;
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
// needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",
需要重发,
"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
","
+
JsonUtil
.
toJsonStr
(
responseInfo
));
}
else
if
(
responseInfo
.
getCode
().
equals
(
33
)){
// code Integer 结果码(33关闭)
//工单已关闭
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",工单已关闭,无法出库"
);
ApiResult
apiResult
=
new
ApiResult
(
33
,
"工单已关闭,无法出库"
,
new
ArrayList
<>());
return
apiResult
;
// resultList.add(33);
// resultList.add(new ArrayList<>());
// return resultList;
}
else
{
log
.
info
(
apiName
+
"返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
String
dataStr
=
responseInfo
.
getDataStr
();
List
<
HikOrderInfo
>
list
=
JsonUtil
.
toList
(
dataStr
,
HikOrderInfo
.
class
);
ApiResult
apiResult
=
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
list
);
return
apiResult
;
// resultList.add(responseInfo.getCode());
// resultList.add(list);
// return resultList;
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
//
if(needResend){
//
HikApiCache.addFailedRequest(request);
//
}
return
null
;
}
...
...
@@ -619,18 +587,18 @@ public class HikApi {
// String data=JsonUtil.toJsonStr(dataMap);
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
dataMap
);
HikApiRequest
request
=
new
HikApiRequest
(
10
,
url
,
config
.
key_10_reservedOrderApi
,
config
.
secret_10_reservedOrderApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
10
,
url
,
config
.
key_10_reservedOrderApi
,
config
.
secret_10_reservedOrderApi
,
info
);
log
.
info
(
apiName
+
" 发送 "
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
boolean
needResend
=
false
;
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
// needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",
需要重发,
"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
","
+
JsonUtil
.
toJsonStr
(
responseInfo
));
return
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
new
ArrayList
<>());
}
else
{
log
.
info
(
apiName
+
"返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
...
...
@@ -642,13 +610,10 @@ public class HikApi {
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
new
ApiResult
(-
1
,
"获取转储出库单失败"
,
""
);
}
/**
* 7.11订单发料完成通知接口
* 7.11订单发料完成通知接口
需要重发
* @param userName
* @param orderNo 工单号
* @return 返回备料列表
...
...
@@ -670,15 +635,14 @@ public class HikApi {
String
url
=
getUrl
(
config
.
addr_11_orderEndApi
,
"orderEndApi"
);
// data String 41 是 补料单号
RequestParam
info
=
new
RequestParam
(
getReqCode
(),
userName
,
orderNo
);
HikApiRequest
request
=
new
HikApiRequest
(
11
,
url
,
config
.
key_11_orderEndApi
,
config
.
secret_11_orderEndApi
,
info
,
new
Date
()
);
HikApiRequest
request
=
new
HikApiRequest
(
11
,
url
,
config
.
key_11_orderEndApi
,
config
.
secret_11_orderEndApi
,
info
);
log
.
info
(
apiName
+
" 发送"
+
info
.
getData
());
boolean
needResend
=
false
;
try
{
ResponseParam
responseInfo
=
HttpHelper
.
post
(
request
);
boolean
needResend
=
false
;
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
//
needResend = true;
log
.
info
(
apiName
+
"未收到反馈"
);
needResend
=
true
;
log
.
info
(
apiName
+
"未收到反馈
,需要重发
"
);
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
))
{
needResend
=
true
;
...
...
@@ -687,13 +651,13 @@ public class HikApi {
log
.
info
(
apiName
+
" 返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
return
true
;
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
,
responseInfo
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
apiName
+
"出错"
,
e
);
}
if
(
needResend
){
HikApiCache
.
addFailedRequest
(
request
);
}
return
false
;
}
}
src/main/java/com/neotel/smfcore/hikvision/HikApiCache.java
查看文件 @
cffc76c
package
com
.
neotel
.
smfcore
.
hikvision
;
import
com.neotel.smfcore.common.exception.
Api
Exception
;
import
com.neotel.smfcore.common.exception.
Validate
Exception
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.hikvision.bean.api.HikApiRequest
;
...
...
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
javax.annotation.PostConstruct
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
...
...
@@ -30,6 +31,22 @@ public class HikApiCache {
private
static
boolean
isProcessTimer
=
false
;
@PostConstruct
public
void
Init
(){
initApiRequestMap
();
}
/**
* 加载请求指令信息
*/
private
static
void
initApiRequestMap
()
{
failedRequestMap
=
new
ConcurrentHashMap
<>();
Map
<
String
,
HikApiRequest
>
dbFailedRequestMap
=
dataCache
.
getCache
(
Constants
.
CACHE_failedRequestMap
);
if
(
dbFailedRequestMap
!=
null
)
{
failedRequestMap
.
putAll
(
dbFailedRequestMap
);
log
.
info
(
"共加载到接口异常:"
+
failedRequestMap
.
size
()
+
"条"
);
}
}
/**
* 定时器,每10秒执行一次
*/
...
...
@@ -37,7 +54,7 @@ public class HikApiCache {
if
(!
isProcessTimer
)
{
isProcessTimer
=
true
;
try
{
sendFailedRequest
();
//
sendFailedRequest();
}
catch
(
Exception
e
)
{
log
.
error
(
"发送失败请求定时器执行出错:"
+
e
.
getMessage
());
}
finally
{
...
...
@@ -46,13 +63,24 @@ public class HikApiCache {
}
}
public
static
void
addFailedRequest
(
HikApiRequest
apiRequest
)
{
// String mapKey = apiRequest.getParam().getReqCode();
// if (failedRequestMap.get(mapKey) == null) {
// log.info(mapKey + "通知指令发送到Hik失败,加入到缓存");
// failedRequestMap.put(apiRequest.getParam().getReqCode(), apiRequest);
// dataCache.updateCache(Constants.CACHE_failedRequestMap, failedRequestMap);
// }
public
static
List
<
HikApiRequest
>
getAllRequestList
(){
return
new
ArrayList
<>(
failedRequestMap
.
values
());
}
public
static
HikApiRequest
getRequest
(
String
req
){
return
failedRequestMap
.
get
(
req
);
}
public
static
void
addFailedRequest
(
HikApiRequest
apiRequest
,
ResponseParam
responseParam
)
{
String
mapKey
=
apiRequest
.
getParam
().
getReqCode
();
apiRequest
.
setResponseParam
(
responseParam
);
apiRequest
.
setUpdatetime
(
new
Date
());
if
(
failedRequestMap
.
get
(
mapKey
)
==
null
)
{
log
.
info
(
mapKey
+
"通知指令发送到Hik失败,加入到缓存"
);
}
failedRequestMap
.
put
(
apiRequest
.
getParam
().
getReqCode
(),
apiRequest
);
dataCache
.
updateCache
(
Constants
.
CACHE_failedRequestMap
,
failedRequestMap
);
}
public
static
void
removeFailedRequest
(
HikApiRequest
apiRequest
)
{
...
...
@@ -64,26 +92,14 @@ public class HikApiCache {
}
}
/**
* 加载请求指令信息
*/
private
static
void
initApiRequestMap
()
{
if
(
failedRequestMap
==
null
)
{
failedRequestMap
=
new
ConcurrentHashMap
<>();
Map
<
String
,
HikApiRequest
>
dbFailedRequestMap
=
dataCache
.
getCache
(
Constants
.
CACHE_failedRequestMap
);
if
(
dbFailedRequestMap
!=
null
)
{
failedRequestMap
.
putAll
(
dbFailedRequestMap
);
log
.
info
(
"当前发送通知失败指令:"
+
failedRequestMap
);
}
}
}
/**
* 获取失败列表,进行定时发送
*/
p
rivate
static
void
sendFailedRequest
()
throws
ApiException
{
p
ublic
static
void
sendFailedRequest
()
{
if
(
failedRequestMap
==
null
)
{
if
(
failedRequestMap
==
null
)
{
initApiRequestMap
();
}
...
...
@@ -97,21 +113,36 @@ public class HikApiCache {
});
for
(
HikApiRequest
apiRequest
:
failedList
)
{
ResponseParam
responseParam
=
HttpHelper
.
post
(
apiRequest
);
reSendRequest
(
apiRequest
);
}
}
public
static
ResponseParam
reSendRequest
(
HikApiRequest
apiRequest
)
{
ResponseParam
responseParam
=
null
;
try
{
String
interName
=
"Hik 接口"
+
apiRequest
.
getApiType
()
+
" 重发:"
;
responseParam
=
HttpHelper
.
post
(
apiRequest
);
boolean
needResend
=
false
;
if
(
responseParam
==
null
||
responseParam
.
getCode
().
equals
(-
1
))
{
needResend
=
true
;
log
.
info
(
"Hik 转储单接口 (transferOrderThread): 未收到返回值
,需要重发"
);
log
.
info
(
interName
+
"
,需要重发"
);
}
else
if
(
responseParam
.
getCode
().
equals
(
HikApi
.
CODE_PARAMERROR
)
||
responseParam
.
getCode
().
equals
(
HikApi
.
CODE_REPEAT
))
{
needResend
=
true
;
log
.
info
(
"Hik 转储单接口 (transferOrderThread):
返回code="
+
responseParam
.
getCode
()
+
",需要重发,"
+
JsonUtil
.
toJsonStr
(
responseParam
));
log
.
info
(
interName
+
",
返回code="
+
responseParam
.
getCode
()
+
",需要重发,"
+
JsonUtil
.
toJsonStr
(
responseParam
));
}
else
{
log
.
info
(
"Hik 转储单接口 (transferOrderThread): 返回"
+
JsonUtil
.
toJsonStr
(
responseParam
));
// Map<String, Object> result = JsonUtil.toMap(responseParam.getData());
// return result;
if
(
responseParam
.
getCode
().
equals
(
0
))
{
log
.
info
(
interName
+
",发送成功,删除接口异常,返回"
+
JsonUtil
.
toJsonStr
(
responseParam
));
removeFailedRequest
(
apiRequest
);
}
else
{
log
.
info
(
interName
+
",返回"
+
JsonUtil
.
toJsonStr
(
responseParam
));
}
}
addFailedRequest
(
apiRequest
,
responseParam
);
return
responseParam
;
}
catch
(
Exception
ex
)
{
throw
new
ValidateException
(
"smfcore.error"
,
"出错{0}"
,
new
String
[]{
ex
.
toString
()});
}
}
}
src/main/java/com/neotel/smfcore/hikvision/bean/InOutApiInfo.java
查看文件 @
cffc76c
...
...
@@ -21,22 +21,23 @@ public class InOutApiInfo {
// baseCode String 16 是 基地
// lgort String 16 是 库位
// warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库)
// warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库
3线边仓间转储出库 4预留单出库
)
// trayId String 41 是 料盘ID/唯一码
// docNo String 否 单据号,备注:如果出库类型为3,4则填写预留单号,必填,其他非必填
// qty Integer 是 数量
// baseCode String 16 是 基地
// lgort String 16 是 库位
public
static
InOutApiInfo
inputInfo
(
int
inType
,
String
trayId
,
int
qty
)
{
return
new
InOutApiInfo
(
inType
,
0
,
trayId
,
qty
,
""
,
""
,
""
);
return
new
InOutApiInfo
(
inType
,
0
,
trayId
,
qty
,
""
,
""
,
""
,
""
);
}
public
static
InOutApiInfo
inputInfo
(
int
inType
,
String
trayId
,
int
qty
,
String
jobNo
)
{
return
new
InOutApiInfo
(
inType
,
0
,
trayId
,
qty
,
""
,
""
,
jobNo
);
return
new
InOutApiInfo
(
inType
,
0
,
trayId
,
qty
,
""
,
""
,
jobNo
,
""
);
}
public
static
InOutApiInfo
outInfo
(
int
outType
,
String
trayId
,
int
qty
,
String
baseCode
,
String
lgort
){
return
new
InOutApiInfo
(
0
,
outType
,
trayId
,
qty
,
baseCode
,
lgort
,
""
);
public
static
InOutApiInfo
outInfo
(
int
outType
,
String
trayId
,
int
qty
,
String
baseCode
,
String
lgort
,
String
docNo
){
return
new
InOutApiInfo
(
0
,
outType
,
trayId
,
qty
,
baseCode
,
lgort
,
""
,
docNo
);
}
/**
...
...
@@ -68,4 +69,8 @@ public class InOutApiInfo {
* 入库类型为退料入库的需要提供工单号
*/
private
String
jobNo
;
/**
* docNo String 否 单据号,备注:如果出库类型为3,4则填写预留单号,必填,其他非必填
*/
private
String
docNo
;
}
src/main/java/com/neotel/smfcore/hikvision/bean/api/HikApiRequest.java
查看文件 @
cffc76c
...
...
@@ -13,8 +13,23 @@ import java.util.Map;
@NoArgsConstructor
public
class
HikApiRequest
implements
Serializable
{
public
HikApiRequest
(
int
apiType
,
String
url
,
String
key
,
String
secret
,
RequestParam
param
){
this
.
apiType
=
apiType
;
this
.
url
=
url
;
this
.
key
=
key
;
this
.
secret
=
secret
;
this
.
param
=
param
;
this
.
createTime
=
new
Date
();
this
.
updatetime
=
new
Date
();
}
/**
* 消息类型
* 2=7.2转储单入库过账接口
* 3=7.3排程发料过账接口
* 5=7.5 入库上架过账接口
* 6=7.6 出库下架过账接口
* 11=7.11订单发料完成通知接口
*/
private
int
apiType
=
0
;
...
...
@@ -43,6 +58,17 @@ public class HikApiRequest implements Serializable {
*/
private
Date
createTime
;
/**
* 最后更新时间
*/
private
Date
updatetime
;
/**
* 最后一次接口返回值
*/
private
ResponseParam
responseParam
;
public
String
getParamJson
(){
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"reqCode"
,
param
.
getReqCode
());
...
...
@@ -52,4 +78,8 @@ public class HikApiRequest implements Serializable {
String
jsonStr
=
JsonUtil
.
toJsonStr
(
params
);
return
jsonStr
;
}
public
String
getParamDataStr
(){
return
JsonUtil
.
toJsonStr
(
param
.
getData
());
}
}
src/main/java/com/neotel/smfcore/hikvision/util/HttpHelper.java
查看文件 @
cffc76c
...
...
@@ -72,10 +72,16 @@ public class HttpHelper {
log
.
info
(
"["
+
url
+
"]["
+
key
+
"]["
+
secret
+
"]发送 "
+
jsonStr
+
",返回值:"
+
result
);
}
return
responseInfo
;
}
catch
(
Exception
e
)
{
}
catch
(
ApiException
ex
){
log
.
error
(
"["
+
url
+
"]["
+
key
+
"]["
+
secret
+
"]发送 "
+
jsonStr
+
",出错:"
,
ex
);
return
new
ResponseParam
(
param
.
getReqCode
(),-
1
,
ex
.
getMessage
(),
ex
);
}
catch
(
Exception
e
)
{
log
.
error
(
"["
+
url
+
"]["
+
key
+
"]["
+
secret
+
"]发送 "
+
jsonStr
+
",出错:"
,
e
);
return
new
ResponseParam
(
param
.
getReqCode
(),-
1
,
e
.
getMessage
(),
e
);
}
return
null
;
}
public
static
String
postJson
(
String
url
,
Map
<
String
,
Object
>
params
,
String
key
,
String
secret
)
throws
ApiException
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论