package com.zy.asrs.service.impl;
|
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.core.common.Cools;
|
import com.core.exception.CoolException;
|
import com.zy.asrs.entity.BasCrnp;
|
import com.zy.asrs.mapper.BasCrnpMapper;
|
import com.zy.asrs.service.BasCrnpService;
|
import com.zy.asrs.service.BasDevpService;
|
import com.zy.asrs.service.WrkMastService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
@Slf4j
|
@Service("basCrnpService")
|
public class BasCrnpServiceImpl extends ServiceImpl<BasCrnpMapper, BasCrnp> implements BasCrnpService {
|
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private BasDevpService basDevpService;
|
|
@Override
|
public BasCrnp checkSiteStatus(Integer crnId) {
|
BasCrnp crnp = this.selectById(crnId);
|
if (Cools.isEmpty(crnp)) {
|
throw new CoolException(crnId + "号堆垛机不存在");
|
}
|
if ("N".equals(crnp.getInEnable())) {
|
throw new CoolException(crnId + "堆垛机不可入");
|
}
|
if ("N".equals(crnp.getOutEnable())) {
|
throw new CoolException(crnId + "堆垛机不可出");
|
}
|
return crnp;
|
}
|
|
@Override
|
public boolean checkSiteError(Integer crnNo, boolean pakin) {
|
BasCrnp crnp = this.selectById(crnNo);
|
if (Cools.isEmpty(crnp)) {
|
// log.error("{}号堆垛机不存在", crnNo);
|
return false;
|
}
|
if (crnp.getCrnErr() != null && crnp.getCrnSts() != 3){
|
log.error("{}号堆垛机非自动连线状态,无法作业!", crnNo);
|
return false;
|
}
|
if (crnp.getCrnErr() != null) {
|
if (crnp.getCrnErr() != 0) {
|
log.error("{}号堆垛机异常,异常码{}", crnNo, crnp.getCrnErr());
|
return false;
|
}
|
}
|
|
if (pakin) {
|
// //TODO控制入库暂存数,防止主干道堵塞,2022-5-24 ADD
|
// int staNo = 0;
|
// switch (crnNo){
|
// case 1:
|
// staNo = 123;
|
// break;
|
// case 2:
|
// staNo = 121;
|
// break;
|
// case 3:
|
// staNo = 119;
|
// break;
|
// case 4:
|
// staNo = 117;
|
// break;
|
// case 5:
|
// staNo = 115;
|
// break;
|
// case 6:
|
// staNo = 113;
|
// break;
|
// case 7:
|
// staNo = 111;
|
// break;
|
// case 8:
|
// staNo = 109;
|
// break;
|
// case 9:
|
// staNo = 106;
|
// break;
|
// case 10:
|
// staNo = 105;
|
// break;
|
// case 11:
|
// staNo = 103;
|
// break;
|
// case 12:
|
// staNo = 101;
|
// break;
|
// }
|
// int maxCount = 2;
|
// BasDevp devp = basDevpService.selectById(staNo);
|
// if(!Cools.isEmpty(devp)){
|
// maxCount = devp.getInQty();
|
// }
|
//
|
// int storeCount = wrkMastService.getStoreCount(crnNo);
|
//
|
// if(storeCount >= maxCount){
|
// log.error("{}号堆垛机暂存数已满!", crnNo);
|
// return false;
|
// }
|
|
if ("N".equals(crnp.getInEnable())) {
|
log.error("{}号堆垛机不可入", crnNo);
|
return false;
|
}
|
} else {
|
if ("N".equals(crnp.getOutEnable())) {
|
log.error("{}号堆垛机不可出", crnNo);
|
return false;
|
}
|
}
|
|
return true;
|
}
|
|
// //杰克
|
// @Override
|
// public boolean checkSiteError2(Integer crnNo, boolean pakin, Integer sourceStaNo) {
|
// BasCrnp crnp = this.selectById(crnNo);
|
// if (Cools.isEmpty(crnp)) {
|
// log.error("{}号堆垛机不存在", crnNo);
|
// return false;
|
// }
|
// if (crnp.getCrnErr() != null && crnp.getCrnSts() != 3){
|
// log.error("{}号堆垛机非自动连线状态,无法作业!", crnNo);
|
// return false;
|
// }
|
// if (crnp.getCrnErr() != null) {
|
// if (crnp.getCrnErr() != 0) {
|
// log.error("{}号堆垛机异常,异常码{}", crnNo, crnp.getCrnErr());
|
// return false;
|
// }
|
// }
|
//
|
// if (pakin) {
|
// //TODO控制入库暂存数,防止主干道堵塞,2022-5-24 ADD
|
// int staNo = 0;
|
// String crnNos = "";
|
// switch (crnNo){
|
// case 1:
|
// staNo = 123;
|
// crnNos = "1,2,3,4";
|
// break;
|
// case 2:
|
// staNo = 121;
|
// crnNos = "1,2,3,4";
|
// break;
|
// case 3:
|
// staNo = 119;
|
// crnNos = "1,2,3,4";
|
// break;
|
// case 4:
|
// staNo = 117;
|
// crnNos = "1,2,3,4";
|
// break;
|
// case 5:
|
// staNo = 115;
|
// crnNos = "5,6,7,8";
|
// break;
|
// case 6:
|
// staNo = 113;
|
// crnNos = "5,6,7,8";
|
// break;
|
// case 7:
|
// staNo = 111;
|
// crnNos = "5,6,7,8";
|
// break;
|
// case 8:
|
// staNo = 109;
|
// crnNos = "5,6,7,8";
|
// break;
|
// case 9:
|
// staNo = 106;
|
// crnNos = "9,10,11,12";
|
// break;
|
// case 10:
|
// staNo = 105;
|
// crnNos = "9,10,11,12";
|
// break;
|
// case 11:
|
// staNo = 103;
|
// crnNos = "9,10,11,12";
|
// break;
|
// case 12:
|
// staNo = 101;
|
// crnNos = "9,10,11,12";
|
// break;
|
// }
|
// int maxCount = 2;
|
// int storeCount = wrkMastService.getStoreCount(crnNo);
|
//
|
// //分北中南三个区判断,每4台堆垛机1个区。除1号有3个暂存以外,只要有出库任务入库暂存数就只能为1个
|
// //没有出库任务时,暂存数在devp表in_qty字段配置
|
//// int pakOutCunt = wrkMastService.getPakOutCount(crnNos);
|
//// if(pakOutCunt > 0){
|
//// maxCount = crnNo!= 1 ? 1 : 3;//1号3个入库暂存
|
//// } else {
|
// BasDevp devp = basDevpService.selectById(staNo);
|
// if(!Cools.isEmpty(devp)){
|
// maxCount = devp.getInQty();
|
// }
|
//// }
|
//
|
// if(storeCount >= maxCount){
|
// log.error("{}号堆垛机暂存数已满![storeCount:{},maxCount:{}]", crnNo, storeCount, maxCount);
|
// return false;
|
// }
|
//
|
// if ("N".equals(crnp.getInEnable())) {
|
// log.error("{}号堆垛机不可入", crnNo);
|
// return false;
|
// }
|
//
|
// //1--8号堆垛机,二楼入库时判断是否有对应出库任务,如果有则堆垛机不可用
|
// if (sourceStaNo > 299 && crnNo < 9){
|
// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
|
// .eq("crn_no",crnNo).last(" and source_sta_no > 300 and ( wrk_sts in (11,12) or (wrk_sts=14 and wrk_no in (select wrk_no from asr_bas_devp)))"));
|
// if(!Cools.isEmpty(wrkMast)){
|
// log.error("{}号堆垛机存在出库任务,任务号{}", crnNo, wrkMast.getWrkNo());
|
// return false;
|
// }
|
// }
|
// } else {
|
// if ("N".equals(crnp.getOutEnable())) {
|
// log.error("{}号堆垛机不可出", crnNo);
|
// return false;
|
// }
|
// }
|
//
|
// return true;
|
// }
|
}
|