Sfoglia il codice sorgente

库存查询按产品

yzc 2 anni fa
parent
commit
9804d5b1c5

+ 9 - 1
hx-wms/src/main/java/com/fjhx/wms/controller/stock/StockController.java

@@ -38,7 +38,7 @@ public class StockController {
     }
 
     /**
-     * 维多利亚 按仓库库存查询
+     * 维多利亚 按仓库查询
      */
     @PostMapping("/pageByWarehouse")
     public Page<StockVo> pageByWarehouse(@RequestBody StockSelectDto dto) {
@@ -46,6 +46,14 @@ public class StockController {
     }
 
     /**
+     * 维多利亚 按产品查询
+     */
+    @PostMapping("/pageByProduct")
+    public Page<StockVo> pageByProduct(@RequestBody StockSelectDto dto) {
+        return stockService.pageByProduct(dto);
+    }
+
+    /**
      * 库存明细
      */
     @PostMapping("/detail")

+ 2 - 0
hx-wms/src/main/java/com/fjhx/wms/mapper/stock/StockMapper.java

@@ -23,4 +23,6 @@ public interface StockMapper extends BaseMapper<Stock> {
      */
     Page<StockVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Stock> wrapper);
 
+    Page<StockVo> pageByProduct(@Param("page") Page<Object> page, @Param("ew") IWrapper<Stock> wrapper);
+
 }

+ 5 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockService.java

@@ -27,9 +27,13 @@ public interface StockService extends BaseService<Stock> {
     Page<StockVo> getPage(StockSelectDto dto);
 
     /**
-     * 维多利亚 按仓库库存查询
+     * 维多利亚 按仓库分类分页
      */
     Page<StockVo> pageByWarehouse(StockSelectDto dto);
+    /**
+     * 维多利亚 按产品分类分页
+     */
+    Page<StockVo> pageByProduct(StockSelectDto dto);
 
     /**
      * 库存明细

+ 30 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockServiceImpl.java

@@ -125,6 +125,36 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     }
 
     @Override
+    public Page<StockVo> pageByProduct(StockSelectDto dto) {
+        IWrapper<Stock> wrapper = getWrapper();
+        wrapper.orderByDesc("s", Stock::getId);
+        wrapper.eq(Stock::getWarehouseId, dto.getId());
+        wrapper.like(Stock::getQuantity, dto.getKeyword());
+
+        Page<StockVo> page = this.baseMapper.pageByProduct(dto.getPage(), wrapper);
+        List<StockVo> stockVos = page.getRecords();
+        //获取产品id列表
+        List<Long> productIds = stockVos.stream().map(Stock::getProductId).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(productIds)) {
+            //赋值产品名称
+            productInfoService.attributeAssign(stockVos, StockVo::getProductId, (item, productInfo) -> {
+                item.setType(productInfo.getType());
+                item.setProductName(productInfo.getName());
+                //赋值维多利亚扩展产品信息
+                String victoriatouristJson = item.getVictoriatouristJson();
+                if (ObjectUtil.isNotEmpty(victoriatouristJson)) {
+                    JSONObject json = JSONObject.parseObject(victoriatouristJson);
+                    json.put("code", productInfo.getCode());
+                    json.put("spec", productInfo.getSpec());
+                    json.put("unit", productInfo.getUnit());
+                    item.setVictoriatouristJson(json.toJSONString());
+                }
+            });
+        }
+        return page;
+    }
+
+    @Override
     public Stock detail(StockDto dto) {
         return getOne(q -> q.eq(Stock::getWarehouseId, dto.getWarehouseId()).eq(Stock::getProductId, dto.getProductId()));
     }

+ 19 - 1
hx-wms/src/main/resources/mapper/stock/StockMapper.xml

@@ -10,9 +10,27 @@
             s.create_user,
             s.create_time,
             s.update_user,
-            s.update_time
+            s.update_time,
+            s.victoriatourist_json
         from stock s
             ${ew.customSqlSegment}
     </select>
+    <select id="pageByProduct" resultType="com.fjhx.wms.entity.stock.vo.StockVo">
+        SELECT
+            s.id,
+            s.warehouse_id,
+            s.product_id,
+            sum( s.quantity ) quantity,
+            s.create_user,
+            s.create_time,
+            s.update_user,
+            s.update_time,
+            JSON_REPLACE( victoriatourist_json, '$.frozenQuantity', sum( json_unquote( s.victoriatourist_json -> '$.frozenQuantity' )), '$.defectiveQuantity', sum( json_unquote( s.victoriatourist_json -> '$.defectiveQuantity' )) ) victoriatourist_json
+        FROM
+            stock s
+        GROUP BY
+            s.product_id
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>