#
vincentlu
昨天 0bee2b3f40638460f3fa961792d43570e4b46911
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java
@@ -12,13 +12,14 @@
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@Slf4j
@Service
public class TransferStationHandler {
    private static final long LOAD_DELAY_MS  = 15000L; // load ( inbound ) delay timeout
    private static final long PLACE_DELAY_MS  = 15000L; // place ( outbound ) delay timeout
    private static final int DEFAULT_LOAD_DELAY_MS  = 15000; // load ( inbound ) delay timeout
    private static final int DEFAULT_PLACE_DELAY_MS  = 1000; // place ( outbound ) delay timeout
    @Autowired
    private SegmentService segmentService;
@@ -30,6 +31,8 @@
    private CodeService codeService;
    @Autowired
    private StaService staService;
    @Autowired
    private TravelService travelService;
    /**
     * 取货(入库):在取完第一个货的时候,担心滚筒输送线会有下一个货物,所以建议AGV在原地等待一段时间
@@ -68,20 +71,21 @@
        if (prePosType.equals(TaskPosDto.PosType.ORI_STA)) {
            // 背篓未满才等
            Integer backpack = agvService.getBackpack(agvId);
            Integer backpackCap = agvService.getBackpack(agvId);
            List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId);
            if (usedBackpacks.size() >= backpack) {
            if (usedBackpacks.size() >= backpackCap) {
                return false;
            }
            // sign waiting
            if (currSeg.getRollerWaiting() == 0) {
                currSeg.setRollerWaiting(1);
                segmentService.updateById(currSeg);
            }
            // mark roller waiting
            travelService.markRollerWaiting(currSeg.getTravelId(), currentCode.getId());
//            if (currSeg.getRollerWaiting() == 0) {
//                currSeg.setRollerWaiting(1);
//                segmentService.updateById(currSeg);
//            }
            // timeout
            return (now - preEndTime) < LOAD_DELAY_MS;
            return (now - preEndTime) < Optional.ofNullable(rollerSta.getInboundWait()).orElse(DEFAULT_LOAD_DELAY_MS);
        }
        // outbound
@@ -95,14 +99,15 @@
                return false;
            }
            // sign waiting
            if (currSeg.getRollerWaiting() == 0) {
                currSeg.setRollerWaiting(1);
                segmentService.updateById(currSeg);
            }
            // mark roller waiting
            travelService.markRollerWaiting(currSeg.getTravelId(), currentCode.getId());
//            if (currSeg.getRollerWaiting() == 0) {
//                currSeg.setRollerWaiting(1);
//                segmentService.updateById(currSeg);
//            }
            // timeout
            return (now - preEndTime) < PLACE_DELAY_MS;
            return (now - preEndTime) < Optional.ofNullable(rollerSta.getOutboundWait()).orElse(DEFAULT_PLACE_DELAY_MS);
        }
        return false;