diff --git a/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java b/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java index 0678d76..74f79ad 100644 --- a/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java +++ b/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java @@ -53,11 +53,13 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; @RestController @@ -280,7 +282,6 @@ public class MesReceiptController extends BaseController { */ @PostMapping("/searchInventory") @ApiLogger(apiName = "查询库存", from = "ROBOT") - @ApiOperation("查询库存") public AjaxResult searchInventory(@RequestBody Detail detailed) { @@ -323,7 +324,70 @@ public class MesReceiptController extends BaseController { detailList.forEach(detail -> { InventoryVO inventoryVO = new InventoryVO(); BeanUtils.copyProperties(detail, inventoryVO); - inventoryVO.setWarehouse("035"); + if (StringUtils.isBlank(detail.getWarehouse())) { + inventoryVO.setWarehouse("035"); + } else { + inventoryVO.setWarehouse(detail.getWarehouse()); + } + inventoryVOList.add(inventoryVO); + }); + + return AjaxResult.success(inventoryVOList); + + } + + + /** + * 查询已出库部分的库存 + * 物料编码、物料名称、已出数量、仓库编码(warehouse) + */ + @PostMapping("/queryOutboundInventory") + @ApiLogger(apiName = "查询已出库部分的库存", from = "ROBOT") + public AjaxResult queryOutboundInventory(@RequestBody Detail detailed) { + + // 查询符合条件的 ShipmentHeader 集合 + List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(new LambdaQueryWrapper<ShipmentHeader>() + .ne(ShipmentHeader::getFirstStatus, QuantityConstant.RECEIPT_HEADER_RETURN) + .ne(ShipmentHeader::getDeleted, true)); + List<ShipmentDetail> shipmentDetailList = new ArrayList<>(); + // 查询符合条件的 ShipmentDetail 集合 + for (ShipmentHeader shipmentHeader : shipmentHeaders) { + List<ShipmentDetail> shipmentDetails = shipmentDetailService.list(new LambdaQueryWrapper<ShipmentDetail>() + .ne(ShipmentDetail::getTaskQty, 0) + .eq(ShipmentDetail::getShipmentId, shipmentHeader.getId())); + shipmentDetailList.addAll(shipmentDetails); + } + + //查询符合条件的 库存交易 集合 + List<InventoryTransaction> its = new ArrayList<>(); + for (ShipmentDetail shipmentDetail : shipmentDetailList) { + List<InventoryTransaction> inventoryTransactions = inventoryTransactionService.list(new LambdaQueryWrapper<InventoryTransaction>() + .eq(InventoryTransaction::getTransactionType, 20) + .eq(InventoryTransaction::getBillDetailId, shipmentDetail.getShipmentId())); + if (inventoryTransactions.size() > 1) { + // 如果查出多条数据,将taskQty字段由负数转为正数,并将taskQty的值全部累加放入第一个InventoryTransaction对象中 + InventoryTransaction firstTransaction = inventoryTransactions.get(0); + BigDecimal totalTaskQty = BigDecimal.ZERO; + for (int i = 1; i < inventoryTransactions.size(); i++) { + InventoryTransaction transaction = inventoryTransactions.get(i); + BigDecimal positiveTaskQty = transaction.getTaskQty().abs(); + totalTaskQty = totalTaskQty.add(positiveTaskQty); + } + firstTransaction.setTaskQty(totalTaskQty); + its.add(firstTransaction); + } else if (!inventoryTransactions.isEmpty()) { + its.add(inventoryTransactions.get(0)); + } + } + List<InventoryVO> inventoryVOList = new ArrayList<>(); + its.forEach(detail -> { + InventoryVO inventoryVO = new InventoryVO(); + BeanUtils.copyProperties(detail, inventoryVO); + if (StringUtils.isBlank(detail.getWarehouse())) { + inventoryVO.setWarehouse("035"); + } else { + inventoryVO.setWarehouse(detail.getWarehouse()); + } inventoryVOList.add(inventoryVO); }); @@ -331,6 +395,7 @@ public class MesReceiptController extends BaseController { } + /** * 获取出入库单明细记录 * diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java index c744ab9..f7a23ca 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java @@ -393,6 +393,8 @@ public class ShipmentTaskService { inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); inventoryTransaction.setMaterialUnit(inventoryDetail.getMaterialUnit()); + inventoryTransaction.setWarehouse(inventoryDetail.getWarehouse()); + inventoryTransaction.setWarehouseName(inventoryDetail.getWarehouseName()); inventoryTransaction.setBillCode(taskDetail.getBillCode()); inventoryTransaction.setRecordCode(taskDetail.getRecordCode()); //取出子单据