Commit 0fe2b8f0a1d7de1ce0e9a2f61e23ab459802deef

Authored by 易文鹏
1 parent 2c5c9172

feat: 查询已出库部分的库存接口

src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java
... ... @@ -53,11 +53,13 @@ import org.springframework.web.bind.annotation.*;
53 53  
54 54 import javax.annotation.Resource;
55 55 import java.io.UnsupportedEncodingException;
  56 +import java.math.BigDecimal;
56 57 import java.sql.ResultSet;
57 58 import java.sql.SQLException;
58 59 import java.time.LocalDateTime;
59 60 import java.time.format.DateTimeFormatter;
60 61 import java.util.*;
  62 +import java.util.stream.Collectors;
61 63  
62 64  
63 65 @RestController
... ... @@ -280,7 +282,6 @@ public class MesReceiptController extends BaseController {
280 282 */
281 283 @PostMapping("/searchInventory")
282 284 @ApiLogger(apiName = "查询库存", from = "ROBOT")
283   - @ApiOperation("查询库存")
284 285 public AjaxResult searchInventory(@RequestBody Detail detailed) {
285 286  
286 287  
... ... @@ -323,7 +324,70 @@ public class MesReceiptController extends BaseController {
323 324 detailList.forEach(detail -> {
324 325 InventoryVO inventoryVO = new InventoryVO();
325 326 BeanUtils.copyProperties(detail, inventoryVO);
326   - inventoryVO.setWarehouse("035");
  327 + if (StringUtils.isBlank(detail.getWarehouse())) {
  328 + inventoryVO.setWarehouse("035");
  329 + } else {
  330 + inventoryVO.setWarehouse(detail.getWarehouse());
  331 + }
  332 + inventoryVOList.add(inventoryVO);
  333 + });
  334 +
  335 + return AjaxResult.success(inventoryVOList);
  336 +
  337 + }
  338 +
  339 +
  340 + /**
  341 + * 查询已出库部分的库存
  342 + * 物料编码、物料名称、已出数量、仓库编码(warehouse)
  343 + */
  344 + @PostMapping("/queryOutboundInventory")
  345 + @ApiLogger(apiName = "查询已出库部分的库存", from = "ROBOT")
  346 + public AjaxResult queryOutboundInventory(@RequestBody Detail detailed) {
  347 +
  348 + // 查询符合条件的 ShipmentHeader 集合
  349 + List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(new LambdaQueryWrapper<ShipmentHeader>()
  350 + .ne(ShipmentHeader::getFirstStatus, QuantityConstant.RECEIPT_HEADER_RETURN)
  351 + .ne(ShipmentHeader::getDeleted, true));
  352 + List<ShipmentDetail> shipmentDetailList = new ArrayList<>();
  353 + // 查询符合条件的 ShipmentDetail 集合
  354 + for (ShipmentHeader shipmentHeader : shipmentHeaders) {
  355 + List<ShipmentDetail> shipmentDetails = shipmentDetailService.list(new LambdaQueryWrapper<ShipmentDetail>()
  356 + .ne(ShipmentDetail::getTaskQty, 0)
  357 + .eq(ShipmentDetail::getShipmentId, shipmentHeader.getId()));
  358 + shipmentDetailList.addAll(shipmentDetails);
  359 + }
  360 +
  361 + //查询符合条件的 库存交易 集合
  362 + List<InventoryTransaction> its = new ArrayList<>();
  363 + for (ShipmentDetail shipmentDetail : shipmentDetailList) {
  364 + List<InventoryTransaction> inventoryTransactions = inventoryTransactionService.list(new LambdaQueryWrapper<InventoryTransaction>()
  365 + .eq(InventoryTransaction::getTransactionType, 20)
  366 + .eq(InventoryTransaction::getBillDetailId, shipmentDetail.getShipmentId()));
  367 + if (inventoryTransactions.size() > 1) {
  368 + // 如果查出多条数据,将taskQty字段由负数转为正数,并将taskQty的值全部累加放入第一个InventoryTransaction对象中
  369 + InventoryTransaction firstTransaction = inventoryTransactions.get(0);
  370 + BigDecimal totalTaskQty = BigDecimal.ZERO;
  371 + for (int i = 1; i < inventoryTransactions.size(); i++) {
  372 + InventoryTransaction transaction = inventoryTransactions.get(i);
  373 + BigDecimal positiveTaskQty = transaction.getTaskQty().abs();
  374 + totalTaskQty = totalTaskQty.add(positiveTaskQty);
  375 + }
  376 + firstTransaction.setTaskQty(totalTaskQty);
  377 + its.add(firstTransaction);
  378 + } else if (!inventoryTransactions.isEmpty()) {
  379 + its.add(inventoryTransactions.get(0));
  380 + }
  381 + }
  382 + List<InventoryVO> inventoryVOList = new ArrayList<>();
  383 + its.forEach(detail -> {
  384 + InventoryVO inventoryVO = new InventoryVO();
  385 + BeanUtils.copyProperties(detail, inventoryVO);
  386 + if (StringUtils.isBlank(detail.getWarehouse())) {
  387 + inventoryVO.setWarehouse("035");
  388 + } else {
  389 + inventoryVO.setWarehouse(detail.getWarehouse());
  390 + }
327 391 inventoryVOList.add(inventoryVO);
328 392 });
329 393  
... ... @@ -331,6 +395,7 @@ public class MesReceiptController extends BaseController {
331 395  
332 396 }
333 397  
  398 +
334 399 /**
335 400 * 获取出入库单明细记录
336 401 *
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
... ... @@ -393,6 +393,8 @@ public class ShipmentTaskService {
393 393 inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName());
394 394 inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec());
395 395 inventoryTransaction.setMaterialUnit(inventoryDetail.getMaterialUnit());
  396 + inventoryTransaction.setWarehouse(inventoryDetail.getWarehouse());
  397 + inventoryTransaction.setWarehouseName(inventoryDetail.getWarehouseName());
396 398 inventoryTransaction.setBillCode(taskDetail.getBillCode());
397 399 inventoryTransaction.setRecordCode(taskDetail.getRecordCode());
398 400 //取出子单据
... ...