fix:新增装箱桁架
This commit is contained in:
@@ -0,0 +1,97 @@
|
|||||||
|
package org.nl.b_lms.sch.tasks.first_floor_area.auto;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||||
|
import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
|
||||||
|
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||||
|
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||||
|
import org.nl.modules.common.utils.RedisUtils;
|
||||||
|
import org.redisson.api.RList;
|
||||||
|
import org.redisson.api.RLock;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AutobindZxqBox extends Prun {
|
||||||
|
|
||||||
|
private final String THIS_CLASS = AutobindZxqBox.class.getName();
|
||||||
|
@Resource
|
||||||
|
private RedissonClient redissonClient;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisUtils redisUtils;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper;
|
||||||
|
|
||||||
|
//待检区->装箱区agv自动搬运任务
|
||||||
|
@Autowired
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
this.bindZxqBox();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error(ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 二次分配任务
|
||||||
|
*/
|
||||||
|
@SneakyThrows
|
||||||
|
public void bindZxqBox() {
|
||||||
|
log.info(THIS_CLASS + "-装箱对接位绑定木箱开始扫描。");
|
||||||
|
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||||
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
|
try {
|
||||||
|
if (tryLock) {
|
||||||
|
//获取当前启用的装箱对接位
|
||||||
|
//装箱区对接位
|
||||||
|
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>()
|
||||||
|
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱位"))
|
||||||
|
.eq(BstIvtPackageinfoivt::getIs_used, IOSEnum.IS_NOTANDYES.code("是"))
|
||||||
|
.eq(BstIvtPackageinfoivt::getPlan, IOSEnum.IS_NOTANDYES.code("是"))
|
||||||
|
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空"))
|
||||||
|
.orderByAsc(BstIvtPackageinfoivt::getPoint_code));
|
||||||
|
bstIvtPackageinfoivtList.forEach(bstIvtPackage -> {
|
||||||
|
//判断当前装箱对接位的木箱队列是否有值,有值则取第一个进行赋值
|
||||||
|
Object o = redisUtils.lGetIndex(bstIvtPackage.getPoint_code(), 0);
|
||||||
|
if (ObjectUtil.isNotEmpty(o)) {
|
||||||
|
String firstElement = o.toString();
|
||||||
|
bstIvtPackage.setIvt_status(PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
||||||
|
bstIvtPackage.setContainer_name(firstElement);
|
||||||
|
bstIvtPackage.setUpdate_time(DateUtil.now());
|
||||||
|
bstIvtPackageinfoivtMapper.updateById(bstIvtPackage);
|
||||||
|
log.info(bstIvtPackage.getPoint_code() + "绑定了木箱" + firstElement);
|
||||||
|
redisUtils.lRemove(bstIvtPackage.getPoint_code(), 1, firstElement);
|
||||||
|
} else {
|
||||||
|
log.info("列表为空,无木箱可绑定。");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
log.info("满轴->待检区agv自动搬运任务正在创建被锁住。");
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (lock.isLocked() && lock.isHeldByCurrentThread()) {
|
||||||
|
lock.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user