package com.zy.asrs.task.handler; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WorkService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class AutoMoveHandler extends AbstractHandler { @Autowired private LocMastService locMastService; @Autowired private WrkMastService wrkMastService; @Autowired private WorkService workService; public ReturnT start() { /** * 先获取所有第一排和第二排在库状态的库位 */ List locMasts = locMastService.selectList(new EntityWrapper() .where("(row1 = 1 or row1 = 2) and loc_sts = 'F'")); /** * 挨个生成移载工作档 */ for (LocMast locMast : locMasts) { /** * 如果工作档数量大于2,直接break */ List moveMasts = wrkMastService.selectList(new EntityWrapper() .eq("io_type", "11")); if (Cools.isEmpty(moveMasts) || moveMasts.size() >= 2) { break; } LocMast targetLocNo = locMastService.selectOne(new EntityWrapper() .eq("loc_sts", "O") .and() .eq("row1", "3")); /** * 如果第三排没有空库位,直接break */ if (Cools.isEmpty(targetLocNo)) { break; } workService.locMove(locMast.getLocNo(), targetLocNo.getLocNo(), 0L); } return SUCCESS; } }