Commit 9cd1204c zshaohui

1.料箱剩余数量小于设定值的时候,自动执行相同线体的工单,出到当前出料口

1 个父辈 898a760c
...@@ -446,10 +446,15 @@ public class LiteOrderCache { ...@@ -446,10 +446,15 @@ public class LiteOrderCache {
ORDER_COLOR nextColor = ORDER_COLOR.nextColor(currentColors); ORDER_COLOR nextColor = ORDER_COLOR.nextColor(currentColors);
return nextColor; return nextColor;
} }
public synchronized String checkOutLiteOrder(String orderNo, boolean outBom){
return checkOutLiteOrder(orderNo,outBom,"");
}
/** /**
* 锁定物料 * 锁定物料
*/ */
public synchronized String checkOutLiteOrder(String orderNo, boolean outBom) { public synchronized String checkOutLiteOrder(String orderNo, boolean outBom,String export) {
LiteOrder cacheOrder = liteOrderMap.get(orderNo); LiteOrder cacheOrder = liteOrderMap.get(orderNo);
if (cacheOrder == null) { if (cacheOrder == null) {
cacheOrder = liteOrderManager.findByOrderNo(orderNo); cacheOrder = liteOrderManager.findByOrderNo(orderNo);
...@@ -469,7 +474,12 @@ public class LiteOrderCache { ...@@ -469,7 +474,12 @@ public class LiteOrderCache {
} }
//获取是否有出料口 //获取是否有出料口
String exportStr = StorageExportUtil.getExportByOrderNo(cacheOrder.getOrderNo(),true,cacheOrder.isMaiZheng()); String exportStr = "";
if (StringUtils.isNotBlank(export)){
exportStr = export;
} else {
exportStr = StorageExportUtil.getExportByOrderNo(cacheOrder.getOrderNo(),true,cacheOrder.isMaiZheng());
}
if (StringUtils.isBlank(exportStr)) { if (StringUtils.isBlank(exportStr)) {
//log.info(cacheOrder.getOrderNo() + "没有空闲的出料口"); //log.info(cacheOrder.getOrderNo() + "没有空闲的出料口");
return "没有空闲的出料口"; return "没有空闲的出料口";
......
...@@ -148,8 +148,8 @@ public class InnerBoxRestController { ...@@ -148,8 +148,8 @@ public class InnerBoxRestController {
List<DataLog> dataLogList = taskService.getAllTasks(); List<DataLog> dataLogList = taskService.getAllTasks();
for (DataLog dataLog : dataLogList) { for (DataLog dataLog : dataLogList) {
if(StringUtils.isNotBlank(dataLog.getSourceId())){ if(StringUtils.isNotBlank(dataLog.getSourceId())){
if (dataLog.getSourceId().equals(opTask.getSourceId()) && !dataLog.getBarcode().equals(opTask.getBarcode())){ if (outlet.equals(dataLog.getExport()) && !dataLog.getBarcode().equals(opTask.getBarcode())){
if (!dataLog.isFinished()){ if (!dataLog.isFinished() && !dataLog.isCancel()){
remainTaskCount ++; remainTaskCount ++;
} }
} }
...@@ -543,20 +543,62 @@ public class InnerBoxRestController { ...@@ -543,20 +543,62 @@ public class InnerBoxRestController {
outStationExport.setDisable(storageExport.isDisable()); outStationExport.setDisable(storageExport.isDisable());
outStationExport.setLine(storageExport.getLine()); outStationExport.setLine(storageExport.getLine());
outStationExport.setHSerial(hSerial); outStationExport.setHSerial(hSerial);
outStationExport.setRemainTaskCount(storageExport.getRemainTaskCount()); //outStationExport.setRemainTaskCount(storageExport.getRemainTaskCount());
outStationExport.setMaterial(material); outStationExport.setMaterial(material);
if (StringUtils.isNotBlank(hSerial)) { //1.获取当前出料口的剩余数量
LiteOrder order = liteOrderCache.getOrderSortItems(hSerial); int remainTaskCount = 0;
if (order != null) { List<DataLog> allTasks = taskService.getAllTasks();
//工单未结束,满箱离开 for (DataLog dataLog : allTasks) {
if (!order.isClosed() && !order.isTaskFinished()) { if (dataLog.isCheckOutTask() && export.equals(dataLog.getExport())) {
StorageExportUtil.updateExport(export + StorageExportUtil.OUT_STATION, outStationExport); if (!dataLog.isFinished() && !dataLog.isCancel()) {
log.info(hSerial+":工单未结束,满箱离开,信息为:"+ JSON.toJSONString(outStationExport)); remainTaskCount++;
return ResultBean.newOkResult(storageExport); }
}
}
//2.如果当前出料口的数量不等于0
if (remainTaskCount > 0) {
//3.判断是否要补工单
Integer ordrRemainingQty = dataCache.getCache(Constants.CACHE_ordrRemainingQty);
if (ordrRemainingQty == null) {
ordrRemainingQty = -1;
}
if (ordrRemainingQty != -1) {
if (remainTaskCount <= ordrRemainingQty) {
log.info(export+"剩余数量:"+remainTaskCount+"小于:"+ordrRemainingQty+",需要生成新的工单");
Collection<LiteOrder> liteOrders = liteOrderCache.getAllLiteOrder();
for (LiteOrder liteOrder : liteOrders) {
if (!liteOrder.isMaiZheng()) {
if (liteOrder.isNew() || liteOrder.isTaskFinished()) {
if (storageExport.getLine().equals(liteOrder.getLine())) {
String result = liteOrderCache.checkOutLiteOrder(liteOrder.getOrderNo(), false, export);
log.info(export+"新的工单为:"+liteOrder.getOrderNo()+"结果为:"+result);
if (StringUtils.isBlank(result)) {
break;
}
}
}
}
}
//重新获取数量
remainTaskCount = 0;
allTasks = taskService.getAllTasks();
for (DataLog dataLog : allTasks) {
if (dataLog.isCheckOutTask() && export.equals(dataLog.getExport())) {
if (!dataLog.isFinished() && !dataLog.isCancel()) {
remainTaskCount++;
}
}
}
} }
} }
outStationExport.setRemainTaskCount(remainTaskCount);
StorageExportUtil.updateExport(export + StorageExportUtil.OUT_STATION, outStationExport);
log.info(hSerial + ":工单未结束,满箱离开,信息为:" + JSON.toJSONString(outStationExport));
return ResultBean.newOkResult(outStationExport);
} }
outStationExport.setRemainTaskCount(remainTaskCount);
StorageExportUtil.clearExport(export); StorageExportUtil.clearExport(export);
StorageExportUtil.updateExport(export + StorageExportUtil.OUT_STATION, outStationExport); StorageExportUtil.updateExport(export + StorageExportUtil.OUT_STATION, outStationExport);
log.info(export + StorageExportUtil.OUT_STATION + "料箱离开工位,信息为:" + JSON.toJSONString(outStationExport)); log.info(export + StorageExportUtil.OUT_STATION + "料箱离开工位,信息为:" + JSON.toJSONString(outStationExport));
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!