diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java index 646bd20..deebfae 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java @@ -68,6 +68,15 @@ public interface InventoryRepository extends JpaRepository, Jpa @Query(" from Inventory inv where inv.stockCode=:stockCode and inv.quantity>0 ") List findByStockCode(String stockCode); - @Query(" from Inventory inv where inv.quantity>0 ") - Page queryBigScreenPointInfo(Pageable pageable); + @Query(" select " + + " inv.stock.code," + + " inv.point.code," + + " function('group_concat', inv.itemKey.orderNumber) as orderNumber," + + " inv.itemKey.item.code," + + " sum(inv.quantity) " + + " from Inventory inv " + + " where inv.quantity>0 " + + " group by inv.stock.code,inv.point.code,inv.itemKey.item.code " + + " order by inv.point.code ") + Page> queryBigScreenPointInfo(Pageable pageable); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/InventoryController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/InventoryController.java index 7a4a060..4f3ab6c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/InventoryController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/InventoryController.java @@ -36,6 +36,7 @@ import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; import java.io.IOException; +import java.util.List; import javax.servlet.http.HttpServletResponse; import static org.springframework.http.HttpStatus.OK; @@ -101,8 +102,7 @@ public class InventoryController { @ApiOperation("查询大屏点位信息") @AnonymousAccess public ResponseEntity queryBigScreenPointInfo(CurrentPage currentPage) { - Page inventoryList = inventoryService.queryBigScreenPointInfo(currentPage.getCurrentPage(), currentPage.getPageSize()); - + Page> inventoryList = inventoryService.queryBigScreenPointInfo(currentPage.getCurrentPage(), currentPage.getPageSize()); JSONObject object = new JSONObject(); object.put("total", inventoryList.getTotalElements()); object.put("data", inventoryList.getContent()); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java index 3c13a9f..9a42f68 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java @@ -146,5 +146,6 @@ public interface InventoryService { * @param currentPage 当前页 * @param pageSize 每页显示条数 */ - Page queryBigScreenPointInfo(int currentPage, int pageSize); + Page> queryBigScreenPointInfo(int currentPage, int pageSize); + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java index 303adce..6f19714 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java @@ -35,6 +35,8 @@ import org.springframework.data.domain.Pageable; import java.util.*; import java.io.IOException; +import javax.persistence.EntityManager; +import javax.persistence.Query; import javax.servlet.http.HttpServletResponse; /** @@ -49,6 +51,7 @@ public class InventoryServiceImpl implements InventoryService { private final InventoryRepository inventoryRepository; private final InventoryMapper inventoryMapper; + private final EntityManager entityManager; @Override @@ -162,8 +165,8 @@ public class InventoryServiceImpl implements InventoryService { } @Override - public Page queryBigScreenPointInfo(int currentPage, int pageSize) { - Pageable pageable = PageRequest.of(currentPage - 1, pageSize); + public Page> queryBigScreenPointInfo(int currentPage, int pageSize) { + Pageable pageable= PageRequest.of(currentPage - 1, pageSize); return inventoryRepository.queryBigScreenPointInfo(pageable); } } diff --git a/youchain-system/src/main/java/com/youchain/utils/MySQLDialectExtended.java b/youchain-system/src/main/java/com/youchain/utils/MySQLDialectExtended.java new file mode 100644 index 0000000..868894d --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/utils/MySQLDialectExtended.java @@ -0,0 +1,12 @@ +package com.youchain.utils; + +import org.hibernate.dialect.MySQL5InnoDBDialect; +import org.hibernate.dialect.function.StandardSQLFunction; +import org.hibernate.type.StandardBasicTypes; + +public class MySQLDialectExtended extends MySQL5InnoDBDialect { + public MySQLDialectExtended() { + super(); + registerFunction("group_concat", new StandardSQLFunction("group_concat", StandardBasicTypes.STRING)); + } +} diff --git a/youchain-system/src/main/resources/config/application.yml b/youchain-system/src/main/resources/config/application.yml index aee462d..65ebfa4 100644 --- a/youchain-system/src/main/resources/config/application.yml +++ b/youchain-system/src/main/resources/config/application.yml @@ -25,7 +25,7 @@ spring: open-in-view: true properties: hibernate: - dialect: org.hibernate.dialect.MySQL5InnoDBDialect + dialect: com.youchain.utils.MySQLDialectExtended jdbc: batch_size: 500 batch_versioned_data: true