| | |
| | | } |
| | | } |
| | | for (AgvLocDetl record : agvLocDetlPage.getRecords()) { |
| | | OrderDetl orderDetl; |
| | | if (!Cools.isEmpty(orderNo)) { |
| | | orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() |
| | | .eq("order_no", orderNo) |
| | | .eq("three_code", record.getThreeCode()) |
| | | .eq("matnr", record.getMatnr()) |
| | | .in("source", docIds)); |
| | | } else { |
| | | orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() |
| | | .eq("three_code", record.getThreeCode()) |
| | | .eq("matnr", record.getMatnr()) |
| | | .in("source", docIds)); |
| | | } |
| | | //OrderDetl orderDetl; |
| | | // if (!Cools.isEmpty(orderNo)) { |
| | | // orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() |
| | | // .eq("order_no", orderNo) |
| | | // .eq("three_code", record.getThreeCode()) |
| | | // .eq("matnr", record.getMatnr()) |
| | | // .in("source", docIds)); |
| | | // } else { |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() |
| | | .eq("three_code", record.getThreeCode()) |
| | | .eq("matnr", record.getMatnr()) |
| | | .in("source", docIds) |
| | | .orderBy("qty", false) |
| | | .orderBy("anfme", false) |
| | | .orderBy("create_time", true)); |
| | | // } |
| | | // if (orderDetl.getAnfme() - orderDetl.getQty() > 0) { |
| | | // record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); |
| | | // } else { |
| | |
| | | // } |
| | | if (Cools.isEmpty(orderDetl)) { |
| | | record.setStock(0D); |
| | | if (!Cools.isEmpty(orderNo)) { |
| | | record.setOrderNo(orderNo); |
| | | } |
| | | // if (!Cools.isEmpty(orderNo)) { |
| | | // record.setOrderNo(orderNo); |
| | | // } |
| | | } else { |
| | | record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); |
| | | record.setOrderNo(orderDetl.getOrderNo()); |
| | |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.constant.AsrsConstants; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.model.LocDto; |
| | |
| | | |
| | | } |
| | | |
| | | @PostMapping("/bcp/out/pakout/preview/auth/v2") |
| | | @ManagerAuth |
| | | public R bcpPakoutPreviewV2(@RequestBody List<Long> ids) { |
| | | |
| | | List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids); |
| | | //返回给前端的库位以及站点信息 |
| | | List<LocDto> locDtoList = new ArrayList<>(); |
| | | |
| | | for (OrderDetl orderDetl : orderDetlList) { |
| | | double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D); |
| | | Order order = orderService.selectByNo(orderDetl.getOrderNo()); |
| | | DocType docType = docTypeService.selectById(order.getDocType()); |
| | | if("人工补货单".equals(docType.getDocName())){ |
| | | if (issued <= 0.0D) { continue; } |
| | | issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); |
| | | if (issued > 0) { |
| | | LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts()); |
| | | locDto.setLack(Boolean.TRUE); |
| | | locDtoList.add(locDto); |
| | | } |
| | | }else { |
| | | if (issued <= 0.0D) { continue; } |
| | | |
| | | //从平库寻找 |
| | | //issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); |
| | | |
| | | //先找AGV的库存,如果返回的issued大于0,则去四项库找 |
| | | issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime(), AsrsConstants.ERCHANG); |
| | | |
| | | //从四项库的库存里面找, |
| | | //issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); |
| | | |
| | | if (issued > 0) { |
| | | LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts()); |
| | | locDto.setLack(Boolean.TRUE); |
| | | locDtoList.add(locDto); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | return R.ok().add(locDtoList); |
| | | |
| | | } |
| | | |
| | | @PostMapping("/out/pakout/auth") |
| | | @ManagerAuth(memo = "订单出库") |
| | | @Transactional |
| | |
| | | import com.core.common.Cools; |
| | | import com.core.common.SnowflakeIdWorker; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.constant.AsrsConstants; |
| | | import com.zy.asrs.entity.AgvLocDetl; |
| | | import com.zy.asrs.entity.AgvLocMast; |
| | | import com.zy.asrs.entity.AgvWrkDetl; |
| | |
| | | |
| | | } |
| | | |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type2) { |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type) { |
| | | //根据物料号和批次找到对应的库存,并且按照修改时间排序 |
| | | Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time"); |
| | | // if (type != null) { |
| | | // wrapper.notLike("loc_no", "F1"); |
| | | // } |
| | | if (type != null) { |
| | | if (type.equals(AsrsConstants.ERCHANG)){ |
| | | wrapper.notLike("loc_no", "F3"); |
| | | }else { |
| | | wrapper.notLike("loc_no", "F1"); |
| | | } |
| | | } |
| | | wapperSetCondition(wrapper, "batch", batch); |
| | | wapperSetCondition(wrapper, "three_code", csocode); |
| | | //wapperSetCondition(wrapper, "dead_time", isoseq); |
| | | |
| | | if ("JG".equals(orderNo.substring(0, 2))) { |
| | | wapperSetCondition(wrapper, "process_sts", "1"); |
| | | } else { |
| | | wrapper.ne("process_sts", "1"); |
| | | } |
| | | |
| | | List<AgvLocDetl> agvLocDetls = this.selectList(wrapper); |
| | |
| | | } else { |
| | | orderDetl = orderDetls.get(0); |
| | | } |
| | | orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme()); |
| | | double v = orderDetl.getQty() - agvWrkDetl.getAnfme(); |
| | | orderDetl.setQty(v < 0 ? 0 : v); |
| | | if (!orderDetlService.updateById(orderDetl)) { |
| | | throw new CoolException("修改订单明细失败,请联系管理员" + orderDetl.getOrderNo() + orderDetl.getMatnr()); |
| | | } |