| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | * 任务中断,4-放货 |
| | | * 完成,8-任务结束 |
| | | */ |
| | | |
| | | if (statusParam.getTaskStatus() == 0) { |
| | | //拣料和盘点再入库判断 |
| | | if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14) { |
| | | // LocDetl locDetl = locDetlService.selectItemByLocNo(wrkMast.getSourceLocNo()); |
| | | // List<WrkDetl> wrkDetl = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | String sourcecLocNo = wrkMast.getSourceLocNo(); |
| | | // // 获取后两位的层数 |
| | | // String layerStr = sourcecLocNo.substring(sourcecLocNo.length() - 2); |
| | | // int layer = Integer.parseInt(layerStr); |
| | | // // 判断层数 |
| | | // Short locType1 = (short) ((layer == 1) ? 1 : 2); |
| | | // LocTypeDto locTypeDto = new LocTypeDto(); |
| | | // locTypeDto.setLocType1(locType1); |
| | | // StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetl.get(0).getMatnr(), wrkDetl.get(0).getBatch(), null, 4, locTypeDto, 2); |
| | | // 获取后两位的层数 |
| | | String layerStr = sourcecLocNo.substring(sourcecLocNo.length() - 2); |
| | | int layer = Integer.parseInt(layerStr); |
| | | // 判断层数 |
| | | Short locType1 = (short) ((layer == 1) ? 1 : 2); |
| | | LocTypeDto locTypeDto = new LocTypeDto(); |
| | | locTypeDto.setLocType1(locType1); |
| | | //注意一个板只能放同一种物料 |
| | | StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2); |
| | | Date now = new Date(); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | wrkMast.setWrkSts(1L);//1.已接收 |
| | | wrkMast.setSourceStaNo(101); // 源站 |
| | | wrkMast.setStaNo(null); // 目标站 |
| | | wrkMast.setLocNo(sourcecLocNo); // 目标库位 |
| | | wrkMast.setSourceLocNo(""); |
| | | wrkMast.setLocNo(dto.getLocNo()); // 目标库位 |
| | | wrkMast.setSourceLocNo(sourcecLocNo); |
| | | wrkMast.setModiTime(now); |
| | | wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now); |
| | | |
| | | // 修改库位状态 Q.拣料/盘点/并板再入库 |
| | | LocMast locMast2 = locMastService.selectById(sourcecLocNo); |
| | | LocMast locMast2 = locMastService.selectById(dto.getLocNo()); |
| | | locMast2.setLocSts("Q"); |
| | | locMast2.setModiTime(new Date()); |
| | | if (!locMastService.updateById(locMast2)) { |
| | |
| | | if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 11 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) { |
| | | wrkMast.setWrkSts(4L);//4.入库完成 |
| | | } else if (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | String sourcecLocNo = wrkMast.getSourceLocNo(); |
| | | //更新工作明细并清空源库位 |
| | | for (WrkDetl wrkDetl : wrkDetls){ |
| | | LocDetl locDetl = locDetlService.selectItem(wrkMast.getSourceLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (null != locDetl) { |
| | | if (!wrkDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(),wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | throw new CoolException("拣料入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } |
| | | LocMast locMast1 = locMastService.selectById(sourcecLocNo); |
| | | locMast1.setLocSts("O"); |
| | | locMast1.setModiTime(new Date()); |
| | | if (!locMastService.updateById(locMast1)) { |
| | | |
| | | throw new CoolException("修改库位状态失败"); |
| | | } |
| | | wrkMast.setWrkSts(14L);//14.已出库未确认 |
| | | } else if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 110) { |
| | | wrkMast.setWrkSts(7L);//7.出库完成 |