| | |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.CombParam; |
| | | import com.zy.asrs.entity.param.MobileAdjustParam; |
| | | import com.zy.asrs.entity.param.PickParam; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.model.DetlDto; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | private AgvWrkMastService agvWrkMastService; |
| | | @Autowired |
| | | private AgvWorkService agvWorkService; |
| | | @Autowired |
| | | private AgvWrkDetlService agvWrkDetlService; |
| | | |
| | | |
| | | /* |
| | |
| | | } |
| | | |
| | | /* |
| | | 组托 + 绑定暂存位 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public String pickAgain(PickParam pickParams, Long userId) { |
| | | Date now = new Date(); |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo())); |
| | | |
| | | for (PickParam.Pick pick : pickParams.getPicks()) { |
| | | if (pick.getCount().equals(0D)) continue; |
| | | AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode())); |
| | | if (Cools.isEmpty(agvWrkDetl)) { |
| | | AgvWrkDetl wrkDetl = new AgvWrkDetl(); |
| | | Mat mat = matService.selectByMatnr(pick.getMatnr()); |
| | | if (Cools.isEmpty(mat)) { |
| | | throw new CoolException(pick.getMatnr() + "商品不存在"); |
| | | } |
| | | wrkDetl.sync(mat); |
| | | wrkDetl.setWrkNo(pickParams.getWrkNo()); |
| | | wrkDetl.setOrderNo(pick.getOrderNo()); |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setAnfme(pick.getCount()); // 数量 |
| | | wrkDetl.setSuppCode(pick.getSuppCode()); // 托盘条码 |
| | | wrkDetl.setAppeUser(userId); |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setModiUser(userId); |
| | | wrkDetl.setModiTime(now); |
| | | wrkDetl.setThreeCode(pick.getThreeCode()); |
| | | agvWrkDetlService.insert(wrkDetl); |
| | | } else { |
| | | Double anfme = agvWrkDetl.getAnfme() + pick.getCount(); |
| | | agvWrkDetl.setAnfme(anfme); |
| | | agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode())); |
| | | |
| | | } |
| | | |
| | | |
| | | // 更新订单 |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode())); |
| | | orderDetl.setQty(orderDetl.getQty() + pick.getCount()); |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+pick.getOrderNo()+pick.getMatnr()); |
| | | } |
| | | } |
| | | // 确认是否全部出库 |
| | | int sameNumber = 0; |
| | | List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", pickParams.getWrkNo())); |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { |
| | | if (agvLocDetl.getMatnr().equals(agvWrkDetl.getMatnr()) |
| | | && agvLocDetl.getThreeCode().equals(agvWrkDetl.getThreeCode()) |
| | | && agvLocDetl.getSuppCode().equals(agvWrkDetl.getSuppCode()) |
| | | && agvLocDetl.getAnfme().equals(agvWrkDetl.getAnfme())) { |
| | | sameNumber++; |
| | | } |
| | | } |
| | | } |
| | | if (agvLocDetls.size() == sameNumber) { |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); |
| | | agvWrkMast.setIoType(101); |
| | | agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); |
| | | } |
| | | |
| | | |
| | | return "组托成功,绑定站点成功"; |
| | | } |
| | | |
| | | /* |
| | | AGV无单组托 |
| | | */ |
| | | private void NoOrderComb(CombParam param, Long userId){ |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | /* |
| | | AGV有单组托 |
| | | */ |