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.entity.BasDevp; 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 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; } }