| | |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.asrs.utils.VersionUtils; |
| | | import com.zy.common.model.LocTypeDto; |
| | | import com.zy.common.model.Shelves; |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.properties.SlaveProperties; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | int end = 30; |
| | | switch (sourceStaNo) { |
| | | case 107: |
| | | whsType = 2; |
| | | end = 17; |
| | | break; |
| | | case 118: |
| | | whsType = 3; |
| | | start = 18; |
| | | break; |
| | | default: |
| | | whsType = 1; |
| | | break; |
| | | case 118: |
| | | whsType = 2; |
| | | start = 31; |
| | | end = 32; |
| | | break; |
| | | default: |
| | | throw new CoolException("数据异常,请联系管理员"); |
| | | } |
| | | // 生成工作号 |
| | | int workNo = getWorkNo(0); |
| | |
| | | int sRow = rowLastno.getsRow(); // 起始列 |
| | | int eRow = rowLastno.geteRow(); // 终止列 |
| | | int crn_qty = rowLastno.getCrnQty(); // 堆垛机数量(巷道数量) |
| | | int rowCount = eRow - sRow + 1; // 库排总数 |
| | | int rowCount; |
| | | if (whsType == 1) { |
| | | rowCount = 2; |
| | | } else { |
| | | rowCount = 1; |
| | | } |
| | | // int rowCount = eRow - sRow + 1; // 库排总数 |
| | | // 目标堆垛机号 |
| | | int crnNo = 0; |
| | | // 目标库位 |
| | |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { |
| | | int locCrnNo; |
| | | if (whsType == 1) { |
| | | locCrnNo = 2; |
| | | } else { |
| | | locCrnNo = 3; |
| | | } |
| | | // 浅库位对应堆垛机必须可用且无异常 |
| | | if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { |
| | | crnNo = locMast0.getCrnNo(); |
| | | if (basCrnpService.checkSiteError(locCrnNo, true)) { |
| | | crnNo = locCrnNo; |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { |
| | | int locCrnNo; |
| | | if (whsType == 1) { |
| | | locCrnNo = 2; |
| | | } else { |
| | | locCrnNo = 3; |
| | | } |
| | | // 浅库位对应堆垛机必须可用且无异常 |
| | | if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { |
| | | crnNo = locMast0.getCrnNo(); |
| | | if (basCrnpService.checkSiteError(locCrnNo, true)) { |
| | | crnNo = locCrnNo; |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | |
| | | } |
| | | |
| | | // 如果没有相近物料,则按规则轮询货架 |
| | | if (null == locMast) { |
| | | Shelves shelves = new Shelves(rowCount, crn_qty); |
| | | for (int i = 0; i < shelves.group; i ++) { |
| | | curRow = shelves.start(curRow); |
| | | if (curRow < 0) { |
| | | throw new CoolException("检索库位失败,请联系管理员"); |
| | | if (null == locMast && whsType == 1) { |
| | | if (curRow == 2) { |
| | | curRow = 30; |
| | | } else if (curRow == 30) { |
| | | curRow = 2; |
| | | } |
| | | Integer crnNo1 = shelves.get(curRow) + 1; |
| | | if (whsType != 1) { |
| | | crnNo1 = whsType; |
| | | } |
| | | int crnNo1 = 2; |
| | | if (basCrnpService.checkSiteError(crnNo1, true)) { |
| | | crnNo = crnNo1; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |