大件走人工流程;小件走AGV流程

main
HUOJIN\92525 2024-12-16 18:11:32 +08:00
parent b26a3482bf
commit ab57324968
3 changed files with 66 additions and 4 deletions

View File

@ -36,6 +36,7 @@ public class BydAppServiceImpl implements BydAppService {
private final AsnDetailService asnDetailService;
private final ItemKeyService itemKeyService;
private final TaskService taskService;
private final InventoryLogService inventoryLogService;
private final AgvTaskService agvTaskService;
private final InventoryService inventoryService;
private final KMReService kmReService;
@ -85,6 +86,70 @@ public class BydAppServiceImpl implements BydAppService {
//指定容器类型:托盘
validateStockType(stock.getStockType());
switch (item.getGoodType()) {
case BizStatus.XJ:
xjMaterialIn(stock, pointCode, item, barCodeVos);
break;
case BizStatus.DJ:
djMaterialIn(stock, pointCode, item, barCodeVos);
break;
default:
throw new BadRequestException(item.getCode() + "物料类型不正确,请检查");
}
}
private void djMaterialIn(Stock stock, String pointCode, Item item, List<BarCodeVo> barCodeVos) {
//验证终点;大件入库只能扫描大件存储区的点位
Point endPoint = pointService.validatePoint(pointCode);
if (!AreaNameDic.DJQ.equals(endPoint.getArea().getName())) {
throw new BadRequestException(pointCode + "不是大件存储区中的点位,请检查");
}
//验证终点状态
pointService.validatePointStatus(endPoint);
//清空库存
inventoryService.clearInventory(stock);
//创建ASN明细和ItemKey和Task任务库存
for (BarCodeVo barCodeVo : barCodeVos) {
AsnDetail asnDetail = asnDetailService.createAsnDetail(item, stock, null, barCodeVo.getPropC1(), barCodeVo.getBoxNumber(), barCodeVo.getPropC3(), Timestamp.valueOf(DateUtil.formatDateTime(DateUtil.parse(barCodeVo.getPropD1()))), barCodeVo.getOrderQty(), barCodeVo.getMo());
if (asnDetail != null) {
asnDetail.setReceivedQty(asnDetail.getOrderQty());
asnDetail.setStatus(BizStatus.RECEIVED);
asnDetailService.update(asnDetail);
}
ItemKey itemKey = itemKeyService.createItemKey(item, barCodeVo.getPropC1(), asnDetail.getPropD1(), barCodeVo.getBoxNumber());
Task task = taskService.createTask(item, asnDetail.getOrderQty(), itemKey, asnDetail, BizStatus.ASN, null, null, stock, null, endPoint, null);
if (task != null) {
task.setMoveQty(task.getPlanQty());
task.setTaskStatus(BizStatus.FINISH);
taskService.update(task);
}
//新增库存
Inventory inventory = inventoryService.createInventory(itemKey, endPoint, stock, stock.getDept(), asnDetail.getOrderQty());
//点位占用
pointService.usedPoint(endPoint);
//占用容器
stockService.usedStock(stock, endPoint, BaseStatus.USED);
//新增日志
inventoryLogService.createInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, null, itemKey, null, endPoint, stock, stock, 0d, asnDetail.getOrderQty(), BizStatus.ASN, asnDetail.getId(), inventory.getId(), asnDetail.getRemark());
}
}
private void xjMaterialIn(Stock stock, String pointCode, Item item, List<BarCodeVo> barCodeVos) {
//验证起点点位
Point srcPoint = pointService.validatePoint(pointCode);
@ -113,7 +178,6 @@ public class BydAppServiceImpl implements BydAppService {
//发送任务
kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask));
}
@Override
@ -298,7 +362,7 @@ public class BydAppServiceImpl implements BydAppService {
private void validateSrcPointArea(Point srcPoint) {
String srcPointAreaName = srcPoint.getArea().getName();
if (!AreaNameDic.DXJRKQ.equals(srcPointAreaName)) {
throw new BadRequestException(srcPointAreaName + "的" + srcPoint.getCode() + "点位不能入库");
throw new BadRequestException(srcPoint.getCode() + "不是小件入库点位,请检查");
}
}

View File

@ -75,7 +75,6 @@ public class AsnDetailServiceImpl implements AsnDetailService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(AsnDetail resources) {
AsnDetail asnDetail = asnDetailRepository.findById(resources.getId()).orElseGet(AsnDetail::new);
ValidationUtil.isNull(asnDetail.getId(), "AsnDetail", "id", resources.getId());

View File

@ -86,7 +86,6 @@ public class TaskServiceImpl implements TaskService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(Task resources) {
Task task = taskRepository.findById(resources.getId()).orElseGet(Task::new);
ValidationUtil.isNull(task.getId(), "Task", "id", resources.getId());