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<String> {
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private WorkService workService;
|
|
public ReturnT<String> start() {
|
/**
|
* 先获取所有第一排和第二排在库状态的库位
|
*/
|
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
|
.where("(row1 = 1 or row1 = 2) and loc_sts = 'F'"));
|
/**
|
* 挨个生成移载工作档
|
*/
|
for (LocMast locMast : locMasts) {
|
/**
|
* 如果工作档数量大于2,直接break
|
*/
|
List<WrkMast> moveMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
|
.eq("io_type", "11"));
|
if (Cools.isEmpty(moveMasts) || moveMasts.size() >= 2) {
|
break;
|
}
|
LocMast targetLocNo = locMastService.selectOne(new EntityWrapper<LocMast>()
|
.eq("loc_sts", "O")
|
.and()
|
.eq("row1", "3"));
|
/**
|
* 如果第三排没有空库位,直接break
|
*/
|
if (Cools.isEmpty(targetLocNo)) {
|
break;
|
}
|
|
workService.locMove(locMast.getLocNo(), targetLocNo.getLocNo(), 0L);
|
|
}
|
return SUCCESS;
|
}
|
}
|