Commit bfa85f11 zshaohui

1.增加安波福接口:出库状态是OUT_BOX或者是FINISHED通知

2.重写mimo出入库接口,OUT_FINISHED出库状态由FINISHED改成OUT_BOX
1 个父辈 ed542779
...@@ -10,7 +10,9 @@ import com.neotel.smfcore.common.utils.Constants; ...@@ -10,7 +10,9 @@ import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.JsonUtil; import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean; import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP; import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS; import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.storage.bean.InventoryItem; import com.neotel.smfcore.core.storage.bean.InventoryItem;
...@@ -84,6 +86,37 @@ public class MimoBoxHandler extends BaseDeviceHandler { ...@@ -84,6 +86,37 @@ public class MimoBoxHandler extends BaseDeviceHandler {
return statusBean; return statusBean;
} }
@Override
protected StatusBean handleInOutFinished(StatusBean statusBean) {
Map<String, BoxStatusBean> statusOfBoxes = statusBean.getBoxStatus();
if (statusOfBoxes != null) {
for (BoxStatusBean boxStatus : statusOfBoxes.values()) {
try {
//出库入库完成处理
int status = boxStatus.getStatus();
String posName = boxStatus.getPosId();
String barcode = boxStatus.getBarcode();
int executeTime = boxStatus.getExecuteTime();
if ((!Strings.isNullOrEmpty(posName)) || (!Strings.isNullOrEmpty(barcode))) {//客户端发一次完成之后,会发空的 posName,不需要处理
if (BOX_STATUS.IN_FINISHED == status) {//入仓完成
finishedPutIn(statusBean.getCid(), posName, barcode, executeTime);
} else if (BOX_STATUS.IN_FAILED == status) {//入库失败
//暂不处理
} else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成
finishedOutPos(statusBean.getCid(), posName,barcode,executeTime,OP_STATUS.OUT_BOX);
} else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口
endOutTask(statusBean.getCid(), posName, barcode);
}
}
} catch (ValidateException e) {
log.error("更新状态时出错" + e.getMessage());
}
}
}
return statusBean;
}
/** /**
* 出库紧急物料 * 出库紧急物料
*/ */
......
package com.neotel.smfcore.custom.aptiv1077;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.HttpHelper;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.core.api.bean.ApiResult;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.custom.neotel.NeotelApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
@Slf4j
public class AptivApi extends NeotelApi {
@Autowired
private ILiteOrderItemManager liteOrderItemManager;
@Override
public boolean isForThisApi(String apiName) {
return apiName != null && apiName.equalsIgnoreCase("aptiv");
}
@Override
public void outTaskStatusChange(String outNotifyUrl, DataLog task) {
String requestParams = "";
String responseInfo = "";
if (task.isOutBox() || task.isFinished()) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("reelId", task.getBarcode());
paramMap.put("partNum", task.getPartNumber());
paramMap.put("qty", task.getNum() + "");
paramMap.put("boxNo", task.getCid());
paramMap.put("location", task.getPosName());
String hSerial = "";
String so = "";
String slotNum = "";
String feederInfo = "";
String sourceId = task.getSourceId();
if (Strings.isNotBlank(sourceId)) {
LiteOrder liteOrder = liteOrderManager.get(task.getSourceId());
if (liteOrder != null) {
hSerial = liteOrder.getOrderNo();
so = liteOrder.getSo();
}
String subSourceId = task.getSubSourceId();
LiteOrderItem orderItem = liteOrderItemManager.get(subSourceId);
if (orderItem != null) {
slotNum = orderItem.getSlotNum() + "";
feederInfo = orderItem.getFeederInfo();
}
}
paramMap.put("hSerial", hSerial);
paramMap.put("so", so);
paramMap.put("slotNum", slotNum);
paramMap.put("feederInfo", feederInfo);
try {
requestParams = JsonUtil.toJsonStr(paramMap);
log.info(task.getBarcode() + "出库通知,参数" + requestParams);
responseInfo = HttpHelper.postJson(outNotifyUrl, paramMap);
log.info(task.getBarcode() + "出库通知返回" + responseInfo);
ApiResult apiResult = JsonUtil.toObj(responseInfo, ApiResult.class);
} catch (Exception e) {
log.error("出库通知接口出错:" + e.getMessage());
}
}
}
@Override
public void inTaskStatusChange(String inNotifyUrl, DataLog task) {
super.inTaskStatusChange(inNotifyUrl, task);
}
@Override
public Barcode canPutInBeforeResolve(String codeResolveUrl, CodeValidateParam params) throws ValidateException {
return super.canPutInBeforeResolve(codeResolveUrl, params);
}
@Override
public Barcode canPutInAfterResolve(String inCheckUrl, CodeValidateParam params, Barcode barcode) throws ValidateException {
return super.canPutInAfterResolve(inCheckUrl, params, barcode);
}
@Override
public void onOrderStatusChange(String orderNotifyUrl, LiteOrder liteOrder) {
super.onOrderStatusChange(orderNotifyUrl, liteOrder);
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!