Commit cffc76ca LN

接口修改

1 个父辈 29e7db1e
...@@ -672,7 +672,7 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -672,7 +672,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
boolean result=HikApi.scheduleTaskApi(task.getOperator(),taskInfo ); boolean result=HikApi.scheduleTaskApi(task.getOperator(),taskInfo );
}else { }else {
//出库完成,调用 ,7.6出库下架过账接口 //出库完成,调用 ,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()));
} }
//从队列里面移除操作 //从队列里面移除操作
......
...@@ -282,7 +282,7 @@ public class NLShelfHandler extends BaseDeviceHandler { ...@@ -282,7 +282,7 @@ public class NLShelfHandler extends BaseDeviceHandler {
taskService.addTaskToFinished(inPos, null, loginUser); taskService.addTaskToFinished(inPos, null, loginUser);
opPosLight("close", inPos, null); opPosLight("close", inPos, null);
log.info(barcode.getBarcode() + " 出库完成, 库位[" + inPos.getPosName() + "]灭灯"); log.info(barcode.getBarcode() + " 出库完成, 库位[" + inPos.getPosName() + "]灭灯");
return ResultBean.newErrorResult(1, "smfcore.shelf.msg.outConfirm", "出库完成, 库位[{0}]灭灯", new String[]{inPos.getPosName()} ); return ResultBean.newOkResult( "smfcore.shelf.msg.outConfirm", "出库完成, 库位[{0}]灭灯", new String[]{inPos.getPosName()} );
} }
} }
return ResultBean.newErrorResult(1, "smfcore.shelf.msg.noTask", "操作失败,已在库位[{0}]中,未找到对应的出库任务", new String[]{inPos.getPosName()}); return ResultBean.newErrorResult(1, "smfcore.shelf.msg.noTask", "操作失败,已在库位[{0}]中,未找到对应的出库任务", new String[]{inPos.getPosName()});
......
...@@ -79,7 +79,7 @@ public class HikApi { ...@@ -79,7 +79,7 @@ public class HikApi {
return ""; return "";
} }
/** /**
*接口名 转储单接口 *7.1接口名 转储单接口 不需要重发
* 功能说明 针对亮灯货架的转储出库,SMF系统根据业务类型调用MES接口,推送转储单信息给SMF * 功能说明 针对亮灯货架的转储出库,SMF系统根据业务类型调用MES接口,推送转储单信息给SMF
* 提供方 MES * 提供方 MES
* 调用方 SMF * 调用方 SMF
...@@ -111,19 +111,17 @@ public class HikApi { ...@@ -111,19 +111,17 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap); // String data = JsonUtil.toJsonStr(dataMap);
RequestParam info = new RequestParam(getReqCode(), userName, 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()); log.info(apiName+" 发送 " + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
boolean needResend=false;
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈");
needResend=true;
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; needResend=true;
log.info(apiName+"返回code=" + responseInfo.getCode() + ",message="+responseInfo.getMessage()+",需要重发," + JsonUtil.toJsonStr(responseInfo)); log.info(apiName+"返回code=" + responseInfo.getCode() + ",message="+responseInfo.getMessage()+"," + JsonUtil.toJsonStr(responseInfo));
ApiResult apiResult=new ApiResult(responseInfo.getCode(),responseInfo.getMessage(),new ArrayList<>()); ApiResult apiResult=new ApiResult(responseInfo.getCode(),responseInfo.getMessage(),new ArrayList<>());
return apiResult; return apiResult;
} else { } else {
...@@ -133,17 +131,17 @@ public class HikApi { ...@@ -133,17 +131,17 @@ public class HikApi {
ApiResult apiResult=new ApiResult(0,"",list); ApiResult apiResult=new ApiResult(0,"",list);
return apiResult; return apiResult;
} }
if(needResend){
HikApiCache.addFailedRequest(request,responseInfo);
}
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+" 出错", e); log.error(apiName+" 出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return new ApiResult(-1,"获取转储入库单失败",""); return new ApiResult(-1,"获取转储入库单失败","");
} }
/** /**
* 7.2转储单入库过账接口 * 7.2转储单入库过账接口 需要重发
* @param userName * @param userName
* @param inInfo * @param inInfo
* @return 返回记录转储过账信息 是否成功,true=成功 * @return 返回记录转储过账信息 是否成功,true=成功
...@@ -163,15 +161,15 @@ public class HikApi { ...@@ -163,15 +161,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap); // String data = JsonUtil.toJsonStr(dataMap);
RequestParam info = new RequestParam(getReqCode(), userName, 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()); log.info(apiName+" 发送 " + info.getData());
boolean needResend = false;
try { try {
boolean needResend = false;
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true; needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈,需要重发");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; needResend = true;
...@@ -180,17 +178,17 @@ public class HikApi { ...@@ -180,17 +178,17 @@ public class HikApi {
log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo));
return true; return true;
} }
if(needResend){
HikApiCache.addFailedRequest(request,responseInfo);
}
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return false; return false;
} }
/** /**
* 7.3排程发料过账接口 * 7.3排程发料过账接口 需要重发
* @param userName * @param userName
* @param param * @param param
* @return 返回保存备料信息是否成功,true=成功 * @return 返回保存备料信息是否成功,true=成功
...@@ -221,15 +219,15 @@ public class HikApi { ...@@ -221,15 +219,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap); // String data = JsonUtil.toJsonStr(dataMap);
RequestParam info = new RequestParam(getReqCode(), userName, 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()); log.info(apiName+" 发送 " + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
boolean needResend = false;
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true; needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈,需要重发");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; needResend = true;
...@@ -238,13 +236,13 @@ public class HikApi { ...@@ -238,13 +236,13 @@ public class HikApi {
log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo));
return true; return true;
} }
if(needResend){
HikApiCache.addFailedRequest(request,responseInfo);
}
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return false; return false;
} }
...@@ -269,19 +267,16 @@ public class HikApi { ...@@ -269,19 +267,16 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap); // String data = JsonUtil.toJsonStr(dataMap);
// data String 41 是 料盘ID // data String 41 是 料盘ID
RequestParam info = new RequestParam(getReqCode(), userName, dataMap); 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()); log.info(apiName+" 发送" + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } 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 { } else {
log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo));
Map<String,Object> rdataMap= JsonUtil.toMap(responseInfo.getDataStr()); Map<String,Object> rdataMap= JsonUtil.toMap(responseInfo.getDataStr());
...@@ -293,15 +288,12 @@ public class HikApi { ...@@ -293,15 +288,12 @@ public class HikApi {
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return -1; return -1;
} }
/** /**
* 7.5 入库上架过账接口 * 7.5 入库上架过账接口 需要重发
* @param userName * @param userName
* @param param * @param param
* @return 入库上架过账 是否成功,true=成功 * @return 入库上架过账 是否成功,true=成功
...@@ -345,15 +337,15 @@ public class HikApi { ...@@ -345,15 +337,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap); // String data = JsonUtil.toJsonStr(dataMap);
RequestParam info = new RequestParam(getReqCode(), userName, 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()); log.info(apiName+" 发送 " + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
boolean needResend = false;
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true; needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈,需要重发");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; needResend = true;
...@@ -362,18 +354,18 @@ public class HikApi { ...@@ -362,18 +354,18 @@ public class HikApi {
log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo));
return true; return true;
} }
if(needResend){
HikApiCache.addFailedRequest(request,responseInfo);
}
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return false; return false;
} }
/** /**
* 7.6 出库下架过账接口 * 7.6 出库下架过账接口 需要重发
* @param userName * @param userName
* @param param * @param param
* @return 保存下架过账信息 是否成功,true=成功 * @return 保存下架过账信息 是否成功,true=成功
...@@ -388,8 +380,9 @@ public class HikApi { ...@@ -388,8 +380,9 @@ public class HikApi {
if(ObjectUtil.isEmpty(param.getLgort())&&ObjectUtil.isNotEmpty(config.lgort)){ if(ObjectUtil.isEmpty(param.getLgort())&&ObjectUtil.isNotEmpty(config.lgort)){
param.setLgort(config.lgort); param.setLgort(config.lgort);
} }
// warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库) // warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库 3线边仓间转储出库 4预留单出库)
// trayId String 41 是 料盘ID/唯一码 // trayId String 41 是 料盘ID/唯一码
// docNo String 否 单据号,备注:如果出库类型为3,4则填写预留单号,必填,其他非必填
// qty Integer 是 数量 // qty Integer 是 数量
// baseCode String 16 是 基地 // baseCode String 16 是 基地
// lgort String 16 是 库位 // lgort String 16 是 库位
...@@ -399,22 +392,23 @@ public class HikApi { ...@@ -399,22 +392,23 @@ public class HikApi {
dataMap.put("qty", param.getQty());//数量 dataMap.put("qty", param.getQty());//数量
dataMap.put("baseCode", param.getBaseCode());//基地 dataMap.put("baseCode", param.getBaseCode());//基地
dataMap.put("lgort", param.getLgort());//库位 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); // String data = JsonUtil.toJsonStr(dataMap);
RequestParam info = new RequestParam(getReqCode(), userName, 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()); log.info(apiName+" 发送 " + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
boolean needResend = false;
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true; needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈,需要重发");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; needResend = true;
...@@ -423,13 +417,13 @@ public class HikApi { ...@@ -423,13 +417,13 @@ public class HikApi {
log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo));
return true; return true;
} }
if(needResend){
HikApiCache.addFailedRequest(request,responseInfo);
}
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return false; return false;
} }
...@@ -440,23 +434,20 @@ public class HikApi { ...@@ -440,23 +434,20 @@ public class HikApi {
* @return 保存下架过账信息 是否成功,true=成功 * @return 保存下架过账信息 是否成功,true=成功
*/ */
public static ApiResult updateOrderApi(String userName, String orderNo){ public static ApiResult updateOrderApi(String userName, String orderNo){
boolean needResend = false;
String apiName="Hik 工单发料状态查询接口 (updateOrderApi): "; String apiName="Hik 工单发料状态查询接口 (updateOrderApi): ";
String url = getUrl( config.addr_7_updateOrderApi,"updateOrderApi"); String url = getUrl( config.addr_7_updateOrderApi,"updateOrderApi");
// data String 16 是 工单号/合单号 // data String 16 是 工单号/合单号
RequestParam info = new RequestParam(getReqCode(), userName, orderNo); 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<>(); // List<Object> resultList=new ArrayList<>();
log.info(apiName+" 发送" + info.getData()); log.info(apiName+" 发送" + info.getData());
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } 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)){ else if(responseInfo.getCode().equals(33)){
...@@ -464,26 +455,17 @@ public class HikApi { ...@@ -464,26 +455,17 @@ public class HikApi {
//工单已关闭 //工单已关闭
log.info(apiName+"返回code=" + responseInfo.getCode() + ",工单已关闭,无法出库" ); log.info(apiName+"返回code=" + responseInfo.getCode() + ",工单已关闭,无法出库" );
return new ApiResult(33,"工单已关闭,无法出库",new ArrayList<>()); return new ApiResult(33,"工单已关闭,无法出库",new ArrayList<>());
// resultList.add(33);
// resultList.add(new ArrayList<>());
// return resultList;
} }
else { else {
log.info(apiName + "返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName + "返回" + JsonUtil.toJsonStr(responseInfo));
String dataStr = responseInfo.getDataStr(); String dataStr = responseInfo.getDataStr();
List<HikOrderInfo> list = JsonUtil.toList(dataStr, HikOrderInfo .class); List<HikOrderInfo> list = JsonUtil.toList(dataStr, HikOrderInfo .class);
return new ApiResult(responseInfo.getCode(),responseInfo.getMessage(),new ArrayList<>()); return new ApiResult(responseInfo.getCode(),responseInfo.getMessage(),new ArrayList<>());
// resultList.add(responseInfo.getCode());
// resultList.add(list);
// return resultList;
} }
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return null; return null;
} }
...@@ -518,19 +500,15 @@ public class HikApi { ...@@ -518,19 +500,15 @@ public class HikApi {
// String data = JsonUtil.toJsonStr(dataMap); // String data = JsonUtil.toJsonStr(dataMap);
RequestParam info = new RequestParam(getReqCode(), userName, 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()); log.info(apiName+" 发送 " + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } 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 { } else {
return responseInfo; return responseInfo;
} }
...@@ -538,9 +516,6 @@ public class HikApi { ...@@ -538,9 +516,6 @@ public class HikApi {
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return null; return null;
} }
...@@ -556,45 +531,38 @@ public class HikApi { ...@@ -556,45 +531,38 @@ public class HikApi {
// List<Object> resultList=new ArrayList<>(); // List<Object> resultList=new ArrayList<>();
// data String 41 是 补料单号 // data String 41 是 补料单号
RequestParam info = new RequestParam(getReqCode(), userName, replenishmentNo); 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()); log.info(apiName+" 发送" + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
boolean needResend = false;
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true; // needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; 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)){ } else if(responseInfo.getCode().equals(33)){
// code Integer 结果码(33关闭) // code Integer 结果码(33关闭)
//工单已关闭 //工单已关闭
log.info(apiName+"返回code=" + responseInfo.getCode() + ",工单已关闭,无法出库" ); log.info(apiName+"返回code=" + responseInfo.getCode() + ",工单已关闭,无法出库" );
ApiResult apiResult=new ApiResult(33,"工单已关闭,无法出库",new ArrayList<>()); ApiResult apiResult=new ApiResult(33,"工单已关闭,无法出库",new ArrayList<>());
return apiResult; return apiResult;
// resultList.add(33);
// resultList.add(new ArrayList<>());
// return resultList;
} else { } else {
log.info(apiName + "返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName + "返回" + JsonUtil.toJsonStr(responseInfo));
String dataStr = responseInfo.getDataStr(); String dataStr = responseInfo.getDataStr();
List<HikOrderInfo> list = JsonUtil.toList(dataStr, HikOrderInfo .class); List<HikOrderInfo> list = JsonUtil.toList(dataStr, HikOrderInfo .class);
ApiResult apiResult=new ApiResult(responseInfo.getCode(),responseInfo.getMessage(),list); ApiResult apiResult=new ApiResult(responseInfo.getCode(),responseInfo.getMessage(),list);
return apiResult; return apiResult;
// resultList.add(responseInfo.getCode());
// resultList.add(list);
// return resultList;
} }
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){ // if(needResend){
HikApiCache.addFailedRequest(request); // HikApiCache.addFailedRequest(request);
} // }
return null; return null;
} }
...@@ -619,18 +587,18 @@ public class HikApi { ...@@ -619,18 +587,18 @@ public class HikApi {
// String data=JsonUtil.toJsonStr(dataMap); // String data=JsonUtil.toJsonStr(dataMap);
RequestParam info = new RequestParam(getReqCode(), userName, 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()); log.info(apiName+" 发送 " + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
boolean needResend = false;
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true; // needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; 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<>()); return new ApiResult(responseInfo.getCode(), responseInfo.getMessage(), new ArrayList<>());
} else { } else {
log.info(apiName + "返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName + "返回" + JsonUtil.toJsonStr(responseInfo));
...@@ -642,13 +610,10 @@ public class HikApi { ...@@ -642,13 +610,10 @@ public class HikApi {
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return new ApiResult(-1,"获取转储出库单失败",""); return new ApiResult(-1,"获取转储出库单失败","");
} }
/** /**
* 7.11订单发料完成通知接口 * 7.11订单发料完成通知接口 需要重发
* @param userName * @param userName
* @param orderNo 工单号 * @param orderNo 工单号
* @return 返回备料列表 * @return 返回备料列表
...@@ -670,15 +635,14 @@ public class HikApi { ...@@ -670,15 +635,14 @@ public class HikApi {
String url = getUrl(config.addr_11_orderEndApi, "orderEndApi"); String url = getUrl(config.addr_11_orderEndApi, "orderEndApi");
// data String 41 是 补料单号 // data String 41 是 补料单号
RequestParam info = new RequestParam(getReqCode(), userName, orderNo); 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()); log.info(apiName+" 发送" + info.getData());
boolean needResend = false;
try { try {
ResponseParam responseInfo = HttpHelper.post(request); ResponseParam responseInfo = HttpHelper.post(request);
boolean needResend = false;
if (responseInfo == null || responseInfo.getCode().equals(-1)) { if (responseInfo == null || responseInfo.getCode().equals(-1)) {
// needResend = true; needResend = true;
log.info(apiName+"未收到反馈"); log.info(apiName+"未收到反馈 ,需要重发");
} else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) { } else if (responseInfo.getCode().equals(CODE_PARAMERROR) || responseInfo.getCode().equals(CODE_REPEAT)) {
needResend = true; needResend = true;
...@@ -687,13 +651,13 @@ public class HikApi { ...@@ -687,13 +651,13 @@ public class HikApi {
log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo)); log.info(apiName+" 返回" + JsonUtil.toJsonStr(responseInfo));
return true; return true;
} }
if(needResend){
HikApiCache.addFailedRequest(request,responseInfo);
}
} catch (Exception e) { } catch (Exception e) {
log.error(apiName+"出错", e); log.error(apiName+"出错", e);
} }
if(needResend){
HikApiCache.addFailedRequest(request);
}
return false; return false;
} }
} }
package com.neotel.smfcore.hikvision; package com.neotel.smfcore.hikvision;
import com.neotel.smfcore.common.exception.ApiException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants; import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.hikvision.bean.api.HikApiRequest; import com.neotel.smfcore.hikvision.bean.api.HikApiRequest;
...@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import javax.annotation.PostConstruct;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
...@@ -30,6 +31,22 @@ public class HikApiCache { ...@@ -30,6 +31,22 @@ public class HikApiCache {
private static boolean isProcessTimer = false; 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秒执行一次 * 定时器,每10秒执行一次
*/ */
...@@ -37,7 +54,7 @@ public class HikApiCache { ...@@ -37,7 +54,7 @@ public class HikApiCache {
if (!isProcessTimer) { if (!isProcessTimer) {
isProcessTimer = true; isProcessTimer = true;
try { try {
sendFailedRequest(); // sendFailedRequest();
} catch (Exception e) { } catch (Exception e) {
log.error("发送失败请求定时器执行出错:" + e.getMessage()); log.error("发送失败请求定时器执行出错:" + e.getMessage());
} finally { } finally {
...@@ -46,13 +63,24 @@ public class HikApiCache { ...@@ -46,13 +63,24 @@ public class HikApiCache {
} }
} }
public static void addFailedRequest(HikApiRequest apiRequest) { public static List<HikApiRequest> getAllRequestList(){
// String mapKey = apiRequest.getParam().getReqCode(); return new ArrayList<>(failedRequestMap.values());
// if (failedRequestMap.get(mapKey) == null) { }
// log.info(mapKey + "通知指令发送到Hik失败,加入到缓存"); public static HikApiRequest getRequest(String req){
// failedRequestMap.put(apiRequest.getParam().getReqCode(), apiRequest); return failedRequestMap.get(req);
// dataCache.updateCache(Constants.CACHE_failedRequestMap, failedRequestMap); }
// }
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) { public static void removeFailedRequest(HikApiRequest apiRequest) {
...@@ -64,26 +92,14 @@ public class HikApiCache { ...@@ -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);
}
}
}
/** /**
* 获取失败列表,进行定时发送 * 获取失败列表,进行定时发送
*/ */
private static void sendFailedRequest() throws ApiException { public static void sendFailedRequest() {
if(failedRequestMap==null){ if (failedRequestMap == null) {
initApiRequestMap(); initApiRequestMap();
} }
...@@ -97,21 +113,36 @@ public class HikApiCache { ...@@ -97,21 +113,36 @@ public class HikApiCache {
}); });
for (HikApiRequest apiRequest : failedList) { 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; boolean needResend = false;
if (responseParam == null || responseParam.getCode().equals(-1)) { if (responseParam == null || responseParam.getCode().equals(-1)) {
needResend = true; needResend = true;
log.info("Hik 转储单接口 (transferOrderThread): 未收到返回值,需要重发"); log.info(interName + ",需要重发");
} else if (responseParam.getCode().equals(HikApi.CODE_PARAMERROR) || responseParam.getCode().equals(HikApi.CODE_REPEAT)) { } else if (responseParam.getCode().equals(HikApi.CODE_PARAMERROR) || responseParam.getCode().equals(HikApi.CODE_REPEAT)) {
needResend = true; needResend = true;
log.info("Hik 转储单接口 (transferOrderThread): 返回code=" + responseParam.getCode() + ",需要重发," + JsonUtil.toJsonStr(responseParam)); log.info(interName + ", 返回code=" + responseParam.getCode() + ",需要重发," + JsonUtil.toJsonStr(responseParam));
} else { } else {
log.info("Hik 转储单接口 (transferOrderThread): 返回" + JsonUtil.toJsonStr(responseParam)); if (responseParam.getCode().equals(0)) {
// Map<String, Object> result = JsonUtil.toMap(responseParam.getData()); log.info(interName + ",发送成功,删除接口异常,返回" + JsonUtil.toJsonStr(responseParam));
// return result; 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()});
} }
} }
} }
...@@ -21,22 +21,23 @@ public class InOutApiInfo { ...@@ -21,22 +21,23 @@ public class InOutApiInfo {
// baseCode String 16 是 基地 // baseCode String 16 是 基地
// lgort String 16 是 库位 // lgort String 16 是 库位
// warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库) // warehousingType Integer 是 出库类型(0普通出库1并盘出库 2湿敏出库 3线边仓间转储出库 4预留单出库)
// trayId String 41 是 料盘ID/唯一码 // trayId String 41 是 料盘ID/唯一码
// docNo String 否 单据号,备注:如果出库类型为3,4则填写预留单号,必填,其他非必填
// qty Integer 是 数量 // qty Integer 是 数量
// baseCode String 16 是 基地 // baseCode String 16 是 基地
// lgort String 16 是 库位 // lgort String 16 是 库位
public static InOutApiInfo inputInfo(int inType,String trayId,int qty) 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) 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){ 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,""); return new InOutApiInfo(0,outType,trayId,qty,baseCode,lgort,"",docNo);
} }
/** /**
...@@ -68,4 +69,8 @@ public class InOutApiInfo { ...@@ -68,4 +69,8 @@ public class InOutApiInfo {
* 入库类型为退料入库的需要提供工单号 * 入库类型为退料入库的需要提供工单号
*/ */
private String jobNo; private String jobNo;
/**
* docNo String 否 单据号,备注:如果出库类型为3,4则填写预留单号,必填,其他非必填
*/
private String docNo;
} }
...@@ -13,8 +13,23 @@ import java.util.Map; ...@@ -13,8 +13,23 @@ import java.util.Map;
@NoArgsConstructor @NoArgsConstructor
public class HikApiRequest implements Serializable { 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; private int apiType=0;
...@@ -43,6 +58,17 @@ public class HikApiRequest implements Serializable { ...@@ -43,6 +58,17 @@ public class HikApiRequest implements Serializable {
*/ */
private Date createTime; private Date createTime;
/**
* 最后更新时间
*/
private Date updatetime;
/**
* 最后一次接口返回值
*/
private ResponseParam responseParam;
public String getParamJson(){ public String getParamJson(){
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("reqCode", param.getReqCode()); params.put("reqCode", param.getReqCode());
...@@ -52,4 +78,8 @@ public class HikApiRequest implements Serializable { ...@@ -52,4 +78,8 @@ public class HikApiRequest implements Serializable {
String jsonStr = JsonUtil.toJsonStr(params); String jsonStr = JsonUtil.toJsonStr(params);
return jsonStr; return jsonStr;
} }
public String getParamDataStr(){
return JsonUtil.toJsonStr(param.getData());
}
} }
...@@ -72,10 +72,16 @@ public class HttpHelper { ...@@ -72,10 +72,16 @@ public class HttpHelper {
log.info("[" + url + "][" + key + "][" + secret + "]发送 " + jsonStr + ",返回值:" + result); log.info("[" + url + "][" + key + "][" + secret + "]发送 " + jsonStr + ",返回值:" + result);
} }
return responseInfo; 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); 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 { public static String postJson(String url, Map<String, Object> params,String key,String secret ) throws ApiException {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!