package com.zy.asrs.task.handler;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.Cools;
|
import com.zy.asrs.entity.LocDetl;
|
import com.zy.asrs.entity.LocMast;
|
import com.zy.asrs.service.LocDetlService;
|
import com.zy.asrs.service.LocMastService;
|
import com.zy.asrs.service.WorkService;
|
import com.zy.asrs.task.AbstractHandler;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.common.model.StartupDto;
|
import com.zy.common.service.CommonService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Isolation;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
import java.util.Map;
|
|
|
/**
|
* Created by vincent on 2023/7/7
|
*/
|
@Slf4j
|
@Service
|
public class AutoLocMoveHandler extends AbstractHandler<String> {
|
@Autowired
|
private CommonService commonService;
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private LocDetlService locDetlService;
|
@Autowired
|
private WorkService workService;
|
|
@Transactional(isolation = Isolation.REPEATABLE_READ)
|
public ReturnT<String> start(Integer crnNo, Integer ioType) {
|
try {
|
//11 穿梭移单边
|
if (ioType==11){
|
for (int bay = 1;bay < 27;bay++){
|
for (int lev = 1 ; lev <6 ; lev++){
|
List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay,lev,crnNo);
|
if (!Cools.isEmpty(locMasts) && locMasts.size()<4){
|
for (LocMast locMast:locMasts){
|
LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
|
// StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
|
StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null,false);
|
workService.locMove(locMast.getLocNo(), startupDto.getLocNo(),9527L);
|
}
|
return SUCCESS;
|
}
|
}
|
}
|
}else {//11 单边移穿梭
|
List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111 单边移穿梭
|
for (Map<String, Object> map : list) {
|
String matnr = map.getOrDefault("matnr","").toString();//物料号
|
String batch = map.getOrDefault("batch","").toString();//批号
|
String grade = map.getOrDefault("brand","").toString();//等级
|
int count = Integer.parseInt(map.get("count").toString());//单边库数量
|
if (count < 4) {
|
continue;
|
}
|
|
List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo);
|
for (LocDetl locDetl : locDetlList) {
|
// StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null);
|
StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null,false);
|
workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L);
|
}
|
}
|
return SUCCESS;
|
}
|
}catch (Exception e){
|
log.error("自动移库出错,堆垛机号{},工作类型{}",crnNo,ioType);
|
}
|
return SUCCESS;
|
}
|
|
}
|