no message

main
HUOJIN\92525 2024-08-28 17:18:52 +08:00
parent 95d6533042
commit 9c6b4cb479
6 changed files with 85 additions and 7 deletions

View File

@ -678,10 +678,36 @@ public class StockServiceImpl implements StockService {
throw new BadRequestException("未找到相应任务记录!");
}
Task task = taskService.toEntity(taskDto);//Dto转实体
if (!orderNumber.equals(task.getItemKey().getOrderNumber())) {
throw new BadRequestException("扫描的箱号与分配的箱号不一致!");
if (orderNumber.equals(task.getItemKey().getOrderNumber())) {
return task;
}else{
//重新分配
return reassignTask(task, orderNumber);
}
}
/**
*
*/
private Task reassignTask(Task task, String orderNumber) {
Inventory dstinventory = inventoryRepository.findByOrderNumber(orderNumber,task.getSrcStockCode());
if(dstinventory==null){
throw new BadRequestException(orderNumber+"箱号无库存,请更换箱号!");
}
double kyQty = dstinventory.getQuantity()-dstinventory.getQueuedQty();
if(kyQty<task.getPlanQty()){
throw new BadRequestException("库存数量不足,请更换箱号!");
}
Inventory srcinventory = inventoryRepository.findById(task.getInvId()).get();
srcinventory.setQueuedQty(srcinventory.getQueuedQty()-task.getPlanQty());
inventoryRepository.save(srcinventory);
dstinventory.setQueuedQty(dstinventory.getQueuedQty()+task.getPlanQty());
inventoryRepository.save(dstinventory);
task.setInvId(dstinventory.getId());
task.setItemKey(dstinventory.getItemKey());
taskRepository.save(task);
return task;
}

View File

@ -55,4 +55,6 @@ public interface InventoryRepository extends JpaRepository<Inventory, Long>, Jpa
"(:type = 'ITEM' and inv.itemKey.item.id = :itemId) or " +
"(:type = 'WAREHOUSE'))")
List<Inventory> getInvForPlan(String type, Long areaId, Long itemId);
@Query("from Inventory inv where inv.itemKey.orderNumber=:orderNumber and inv.stockCode=:stockCode ")
Inventory findByOrderNumber(String orderNumber, String stockCode);
}

View File

@ -134,4 +134,11 @@ public interface AgvTaskService {
*/
void agvTaskCallback(AgvTask agvTask, String status, String containerCode);
/**
*
*
* @param goodType /
*/
void callEmptyStock(String goodType);
}

View File

@ -69,6 +69,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
private final AsnDetailService asnDetailService;
private final StockRepository stockRepository;
private final PickRepository pickRepository;
@Override
public Map<String, Object> queryAll(AgvTaskQueryCriteria criteria, Pageable pageable) {
Page<AgvTask> page = agvTaskRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
@ -409,6 +410,33 @@ public class AgvTaskServiceImpl implements AgvTaskService {
}
@Override
public void callEmptyStock(String goodType) {
String srcAreaCode = "小件".equals(goodType) ? AreaNameDic.JLQ : AreaNameDic.JLQ;
String dstAreaCode = "小件".equals(goodType) ? AreaNameDic.XJFBCQ : AreaNameDic.DJFBCQ;
List<Stock> emptyStock = stockRepository.findByEnmptyStock(srcAreaCode);
if (emptyStock.isEmpty()) {
return;
}
Stock stock = emptyStock.get(0);
Point srcPoint = stock.getPoint();
Point endPoint = pointService.findByCode(null, BaseStatus.FREE, BaseStatus.BOX, dstAreaCode, null, null);
if (endPoint == null) {
return;
}
AgvTask agvTask = new AgvTask(BizStatus.CALL_RETURN, stock.getCode(), srcPoint.getCode(), endPoint.getCode(), BizStatus.OPEN, "RACK_MOVE");
agvTaskRepository.save(agvTask);
sendAgvTaskHJImpl(agvTask);
endPoint.setStatus(BaseStatus.USED);
pointService.update(endPoint);
}
private void handleUpContainer(AgvTask agvTask, String containerCode) {
//顶升释放起点位置状态及容器绑定的起点位置
Point startPoint = pointService.findByCode(agvTask.getStartSlotCode(), null, null, null, null, null);
@ -441,6 +469,10 @@ public class AgvTaskServiceImpl implements AgvTaskService {
case AreaNameDic.JLQ:
handleJl(stock, endPoint, agvTask);//叫料完成
break;
case AreaNameDic.XJFBCQ:
case AreaNameDic.DJFBCQ:
handleCPXXAndCPRK(endPoint, stock);//叫料返空完成
break;
case AreaNameDic.CPXXQ:
case AreaNameDic.CPRKQ:
handleCPXXAndCPRK(endPoint, stock);//空货架-成品下线区;满货架-成品入库区
@ -601,9 +633,9 @@ public class AgvTaskServiceImpl implements AgvTaskService {
//回传MES
}
/**
*
*

View File

@ -354,10 +354,15 @@ public class PickServiceImpl implements PickService {
agvTask = new AgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "FORKLIFT_MOVE");
agvTaskRepository.save(agvTask);
agvTaskService.sendAgvTaskCCImpl(agvTask);
}
task.setAgvTask(agvTask);
task.setTaskStatus(agvTask.getStatus());
taskRepository.save(task);
//叫料区是否有空车,呼叫到备料缓存区
agvTaskService.callEmptyStock(task.getPickDetail().getItem().getGoodType());
}
/*更新出库单状态*/
pick.setStatus(BizStatus.PICKUP);

View File

@ -142,6 +142,12 @@ public interface BizStatus {
*/
String CALL_PICK = "CALL_PICK";
/**
* -
*
*/
String CALL_RETURN = "CALL_RETURN";
/**
* -