| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | import org.springframework.transaction.support.TransactionSynchronizationAdapter; |
| | | import org.springframework.transaction.support.TransactionSynchronizationManager; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | |
| | | @Autowired |
| | | private BasAgvMastService basAgvMastService; |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private BasAgvLocDetlService basAgvLocDetlService; |
| | | @Autowired |
| | | private BasAgvWrkDetlService basAgvWrkDetlService; |
| | |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private OpenService openService; |
| | | |
| | | |
| | | public ReturnT<String> start(BasAgvMast basAgvMast) { |
| | | public ReturnT<String> start(BasAgvMast basAgvMast) { |
| | | try { |
| | | Date now = new Date(); |
| | | switch (basAgvMast.getIoType()){ |
| | | case 0: |
| | | LocMast sourceLoc0 = locMastService.selectById(basAgvMast.getSourceLocNo()); |
| | | locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc0.getLocNo())); |
| | | if(basAgvMast.getFloorNo() == 4){ |
| | | basAgvMast.setBarcode(sourceLoc0.getBarcode()); |
| | | basAgvMastService.updateById(basAgvMast); |
| | | } |
| | | sourceLoc0.setLocSts("O"); |
| | | sourceLoc0.setBarcode(""); |
| | | sourceLoc0.setModiTime(now); |
| | |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("出库 ===>> 修改源库位状态失败; [TaskNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getSourceLocNo() + "]"); |
| | | } |
| | | |
| | | basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo())); |
| | | basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo())); |
| | | basAgvMast.setStatus(3); |
| | | basAgvMastService.updateById(basAgvMast); |
| | | openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo())); |
| | | break; |
| | | case 1: |
| | | LocMast sourceLoc1 = locMastService.selectById(basAgvMast.getSourceLocNo()); |
| | | |
| | | |
| | | |
| | | LocMast locMast1 = locMastService.selectById(basAgvMast.getLocNo()); |
| | | List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo())); |
| | | if (!locDetls1.isEmpty()) { |
| | | locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo())); |
| | | } |
| | | |
| | | // 修改目标库位状态 ==> .locSts |
| | | locMast1.setLocSts("F"); |
| | | locMast1.setBarcode(sourceLoc1.getBarcode()); |
| | | locMast1.setIoTime(now); |
| | | locMast1.setModiTime(now); |
| | | if (!locMastService.updateById(locMast1)) { |
| | |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("库位移转 ===>> 修改目标库位状态失败; [TaskNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getLocNo() + "]"); |
| | | } |
| | | |
| | | |
| | | try{ |
| | | // 转移库存明细数据: 库存号 由工作档源库位变为目标库位 |
| | | locDetlService.updateLocNo(basAgvMast.getLocNo(), basAgvMast.getSourceLocNo()); |
| | | // if (!) { |
| | | // exceptionHandle("库位移转 ===>> 转移库存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo()); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | // return FAIL.setMsg("库位移转 ===>> 转移库存明细数据失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | // } |
| | | } catch (Exception e) { |
| | | |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } |
| | | |
| | | |
| | | if (null != sourceLoc1) { |
| | | sourceLoc1.setBarcode(""); |
| | | sourceLoc1.setLocSts("O"); |
| | |
| | | basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo())); |
| | | basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo())); |
| | | basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo())); |
| | | basAgvMast.setStatus(3); |
| | | basAgvMast.setStatus(4); |
| | | basAgvMastService.updateById(basAgvMast); |
| | | // openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo())); |
| | | break; |
| | | case 2: |
| | | List<LocDetl> locDetls2 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo())); |
| | |
| | | |
| | | LocMast locMast2 = locMastService.selectById(basAgvMast.getLocNo()); |
| | | // 修改库位状态 S ====>> F |
| | | if (locMast2.getLocSts().equals("S")) { |
| | | if (locMast2.getLocSts().equals("S") ) { |
| | | locMast2.setLocSts("F"); |
| | | locMast2.setIoTime(now); |
| | | locMast2.setModiTime(now); |
| | | } else if(basAgvMast.getTaskNo()>10000){ |
| | | locMast2.setLocSts("D"); |
| | | locMast2.setIoTime(now); |
| | | locMast2.setModiTime(now); |
| | | } else { |
| | |
| | | basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo())); |
| | | basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo())); |
| | | basAgvMast.setStatus(3); |
| | | if(basAgvMast.getFloorNo() == 2 || basAgvMast.getFloorNo() == 3){ |
| | | basAgvMast.setStatus(4); |
| | | } |
| | | basAgvMastService.updateById(basAgvMast); |
| | | openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo())); |
| | | break; |
| | | case 3: |
| | | basAgvMast.setStatus(3); |
| | | basAgvMastService.updateById(basAgvMast); |
| | | openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo())); |
| | | break; |
| | | default: |
| | | return FAIL.setMsg("暂不支持该类型"); |