Commit 0bb56f79 sunke

MIMO料仓紧急出库不需要判断是否有入库任务

1 个父辈 388991f1
......@@ -4,14 +4,18 @@ import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.storage.bean.InventoryItem;
import com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.security.annotation.AnonymousPostMapping;
import com.neotel.smfcore.custom.siemens.SiemensApi;
......@@ -57,9 +61,15 @@ public class MimoBoxHandler extends BaseDeviceHandler {
log.debug("入库:" + statusBean.toString());
statusBean = putInLine(storage, statusBean);
} else {
//先查找紧急出库的物料
StatusBean outSingleTaskResult = outSingleOutTask(storage, statusBean);
if(outSingleTaskResult != null){
statusBean = outSingleTaskResult;
}else{
//查看是否有要出库的操作
statusBean =taskService.checkOut(storage, statusBean);
}
}
//获取操作
Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(cid);
......@@ -68,7 +78,62 @@ public class MimoBoxHandler extends BaseDeviceHandler {
return statusBean;
}
/**
* 出库紧急物料
*/
public StatusBean outSingleOutTask(Storage storage, StatusBean statusBean) {
try {
//准备更新暂停出入库
if (dataCache.getCache(Constants.CACHE_StopOut)) {
return statusBean;
}
String cid = storage.getCid();
//紧急出库任务不论是否有入库任务都发到客户端,由客户端在入库间隙进行出库
Collection<DataLog> queueTasks = taskService.getQueueTasks();
int excuttingOutTaskNum = 0;
DataLog singleOutTask = null;
for (DataLog queueTask : queueTasks) {
if(queueTask.isCheckOutTask()){
if (cid.equals(queueTask.getCid()) && queueTask.isExecuting()) {
excuttingOutTaskNum ++;
}
if (queueTask.isSingleOut()) {
//单盘优先出库
if (singleOutTask == null || queueTask.getCreateDate().before(singleOutTask.getCreateDate())) {
singleOutTask = queueTask;
}
}
}
}
//已经有2个出库任务在执行,不再发了
if(excuttingOutTaskNum < 2){
if (singleOutTask != null) {
log.info("MIMO料仓优先分配紧急出库任务" + singleOutTask.getBarcode() + "[" + singleOutTask.getPosName() + "]到 " + cid);
singleOutTask.setStatus(OP_STATUS.EXECUTING.name());
taskService.updateQueueTask(singleOutTask);
statusBean.setOp(OP.CHECKOUT);
String posName = singleOutTask.getPosName();
Barcode codeObj = barcodeManager.findByBarcode(singleOutTask.getBarcode());
int plateW = 0;
int plateH = 0;
if (codeObj != null) {
plateW = codeObj.getPlateSize();
plateH = codeObj.getHeight();
} else {
log.warn("MIMO紧急出库无料仓位" + storage.getName() + "[" + posName + "]");
}
statusBean.addPosInfo(singleOutTask.getBarcode(), posName, plateW, plateH, true);
log.info("出库紧急物料" + storage.getName() + "[" + posName + "]物料[" + singleOutTask.getBarcode() + "]" + "发送到客户端" + cid);
return statusBean;
}
}
} catch (Exception e) {
log.error("出库紧急物料出错", e);
}
return null;
}
@ApiOperation("单盘出库获取库存的PN")
@AnonymousPostMapping("/api/mimo/getInventory")
......
......@@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
//@ConditionalOnProperty(name = "spring.profiles.active", havingValue = "dev")
@ConditionalOnProperty(name = "spring.profiles.active", havingValue = "dev")
@Configuration
public class WebSocketConfig {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!