Commit 9cd1204c zshaohui

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

1 个父辈 898a760c
......@@ -446,10 +446,15 @@ public class LiteOrderCache {
ORDER_COLOR nextColor = ORDER_COLOR.nextColor(currentColors);
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);
if (cacheOrder == null) {
cacheOrder = liteOrderManager.findByOrderNo(orderNo);
......@@ -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)) {
//log.info(cacheOrder.getOrderNo() + "没有空闲的出料口");
return "没有空闲的出料口";
......
......@@ -148,8 +148,8 @@ public class InnerBoxRestController {
List<DataLog> dataLogList = taskService.getAllTasks();
for (DataLog dataLog : dataLogList) {
if(StringUtils.isNotBlank(dataLog.getSourceId())){
if (dataLog.getSourceId().equals(opTask.getSourceId()) && !dataLog.getBarcode().equals(opTask.getBarcode())){
if (!dataLog.isFinished()){
if (outlet.equals(dataLog.getExport()) && !dataLog.getBarcode().equals(opTask.getBarcode())){
if (!dataLog.isFinished() && !dataLog.isCancel()){
remainTaskCount ++;
}
}
......@@ -543,20 +543,62 @@ public class InnerBoxRestController {
outStationExport.setDisable(storageExport.isDisable());
outStationExport.setLine(storageExport.getLine());
outStationExport.setHSerial(hSerial);
outStationExport.setRemainTaskCount(storageExport.getRemainTaskCount());
//outStationExport.setRemainTaskCount(storageExport.getRemainTaskCount());
outStationExport.setMaterial(material);
if (StringUtils.isNotBlank(hSerial)) {
LiteOrder order = liteOrderCache.getOrderSortItems(hSerial);
if (order != null) {
//工单未结束,满箱离开
if (!order.isClosed() && !order.isTaskFinished()) {
StorageExportUtil.updateExport(export + StorageExportUtil.OUT_STATION, outStationExport);
log.info(hSerial+":工单未结束,满箱离开,信息为:"+ JSON.toJSONString(outStationExport));
return ResultBean.newOkResult(storageExport);
//1.获取当前出料口的剩余数量
int remainTaskCount = 0;
List<DataLog> allTasks = taskService.getAllTasks();
for (DataLog dataLog : allTasks) {
if (dataLog.isCheckOutTask() && export.equals(dataLog.getExport())) {
if (!dataLog.isFinished() && !dataLog.isCancel()) {
remainTaskCount++;
}
}
}
//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.updateExport(export + StorageExportUtil.OUT_STATION, outStationExport);
log.info(export + StorageExportUtil.OUT_STATION + "料箱离开工位,信息为:" + JSON.toJSONString(outStationExport));
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!