Commit b05b1c45 zshaohui

1.odn出库 库存不够 提示出来 不然出库

1 个父辈 e026bb1f
......@@ -1343,7 +1343,7 @@ public class LiteOrderCache {
log.info("生成工单" + orderNo + "任务结束,数量为:" + taskReelCount);
}
public void odnCheckOut(String orderNo,List<StoragePos> storagePosList) {
public synchronized void odnCheckOut(String orderNo,List<StoragePos> storagePosList) {
LiteOrder cacheOrder = liteOrderMap.get(orderNo);
if (cacheOrder == null) {
cacheOrder = liteOrderManager.findByOrderNo(orderNo);
......@@ -1376,6 +1376,9 @@ public class LiteOrderCache {
int taskReelCount = 0;
//查找所有的任务
List<DataLog> dataLogList = new ArrayList<>();
for (LiteOrderItem orderItem : cacheOrder.getOrderItems()) {
String partNumber = orderItem.getPn();
......@@ -1389,6 +1392,11 @@ public class LiteOrderCache {
log.info(orderNo + "已分配数量为:"+taskNum+",剩余数量为:"+remainNum);
Collection<String> excludePosIds = excludeOutPosIds();
if (dataLogList != null && !dataLogList.isEmpty()){
for (DataLog dataLog : dataLogList) {
excludePosIds.add(dataLog.getPosId());
}
}
//1.先从执行的料箱中出库
StoragePos pos = null;
......@@ -1426,9 +1434,19 @@ public class LiteOrderCache {
task.setCartonId(barcode.getCartonId());
}
task.setOdn(true);
taskService.addTaskToExecute(task);
dataLogList.add(task);
}
}
//如果数量不满足,则提示出来
if (taskNum < remainNum){
finishedOrderTasks(cacheOrder);
throw new ValidateException("", orderItem.getPn()+"库存不足,odn:"+cacheOrder.getOrderNo()+"无法进行出库");
}
}
for (DataLog dataLog : dataLogList) {
taskService.addTaskToExecute(dataLog);
}
if (taskReelCount <= 0) {
......@@ -1437,6 +1455,8 @@ public class LiteOrderCache {
throw new ValidateException("smfcore.order.out.noTask", "工单无可执行的任务");
}
cacheOrder.setTaskReelCount(taskReelCount);
liteOrderManager.save(cacheOrder);
liteOrderMap.put(cacheOrder.getOrderNo(), cacheOrder);
......
......@@ -52,6 +52,12 @@ public class TakeOutController {
@AnonymousAccess
public ResultBean ticketOut(String ticket,boolean isHold) {
log.info("半成品仓单据出库:" + ticket);
if (StringUtils.isNotEmpty(liteOrderCache.hasExecutingOrder())) {
//throw new ValidateException("","有正在执行的工单,不允许恢复");
return ResultBean.newErrorResult(-1, "", "有正在执行的工单"+liteOrderCache.hasExecutingOrder()+",请确认");
}
if (StringUtils.isEmpty(ticket)) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"单据号"});
}
......
......@@ -113,6 +113,11 @@ public class WipStorCheckOutController {
log.info("收到odn出库信息为:" + JSON.toJSONString(odnOut));
if (StringUtils.isNotEmpty(liteOrderCache.hasExecutingOrder())) {
//throw new ValidateException("","有正在执行的工单,不允许恢复");
return ResultBean.newErrorResult(-1, "", "有正在执行的工单"+liteOrderCache.hasExecutingOrder()+",请确认");
}
String odn = odnOut.getOdn();
if (StringUtils.isBlank(odn)) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!