瀏覽代碼

增加阈值告警

yzc 1 年之前
父節點
當前提交
2a534eeb37

+ 12 - 0
hx-wms/src/main/java/com/fjhx/wms/controller/stock/StockController.java

@@ -4,6 +4,7 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.wms.entity.stock.dto.StockSelectDto;
 import com.fjhx.wms.entity.stock.po.Stock;
+import com.fjhx.wms.entity.stock.vo.StockTotalVo;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.wms.entity.stock.vo.StockVo;
@@ -38,6 +39,17 @@ public class StockController {
     }
 
     /**
+     * 头部统计
+     *
+     * @param dto
+     * @return
+     */
+    @GetMapping("/getHeadStatistic")
+    public StockTotalVo getHeadStatistic( StockSelectDto dto) {
+        return stockService.getHeadStatistic(dto);
+    }
+
+    /**
      * 维多利亚 按仓库查询
      */
     @PostMapping("/pageByWarehouse")

+ 5 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockSelectDto.java

@@ -24,4 +24,9 @@ public class StockSelectDto extends BaseSelectDto {
     /**产品定义*/
     private Integer definition;
 
+    /**
+     * 库存是否小于阈值 是1 否0
+     */
+    private Integer isStockThreshold;
+
 }

+ 24 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/vo/StockTotalVo.java

@@ -0,0 +1,24 @@
+package com.fjhx.wms.entity.stock.vo;
+
+import com.fjhx.wms.entity.stock.po.Stock;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 库存头部统计实体
+ *
+ * @author
+ * @since 2023-11-22
+ */
+@Getter
+@Setter
+public class StockTotalVo {
+
+    /**
+     * 小于阈值库存记录数
+     */
+    private Integer stockThresholdQuantity;
+}

+ 10 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/vo/StockVo.java

@@ -115,4 +115,14 @@ public class StockVo extends Stock {
      */
     private String productClassifyNames;
 
+    /**
+     * 小于阈值库存记录数
+     */
+    private Integer stockThresholdQuantity;
+
+    /**
+     * 库存安全阈值
+     */
+    private Integer stockThreshold;
+
 }

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

@@ -3,6 +3,7 @@ package com.fjhx.wms.mapper.stock;
 import com.fjhx.wms.entity.stock.po.Stock;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.wms.entity.stock.vo.StockTotalVo;
 import com.fjhx.wms.entity.stock.vo.StockVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
@@ -27,4 +28,6 @@ public interface StockMapper extends BaseMapper<Stock> {
 
     Page<StockVo> pageByProductSpu(@Param("page") Page<Object> page, @Param("ew") IWrapper<Stock> wrapper);
 
+    StockTotalVo getHeadStatistic(@Param("ew") IWrapper<Stock> wrapper);
+
 }

+ 6 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockService.java

@@ -6,6 +6,7 @@ import com.fjhx.wms.entity.stock.dto.StockDto;
 import com.fjhx.wms.entity.stock.dto.StockSelectDto;
 import com.fjhx.wms.entity.stock.emums.JournalType;
 import com.fjhx.wms.entity.stock.po.Stock;
+import com.fjhx.wms.entity.stock.vo.StockTotalVo;
 import com.fjhx.wms.entity.stock.vo.StockVo;
 import com.ruoyi.common.core.service.BaseService;
 
@@ -29,6 +30,11 @@ public interface StockService extends BaseService<Stock> {
     Page<StockVo> getPage(StockSelectDto dto);
 
     /**
+     * 库存头部统计 目前只有阈值部分
+     */
+    StockTotalVo getHeadStatistic(StockSelectDto dto);
+
+    /**
      * 维多利亚 按仓库分类分页
      */
     Page<StockVo> pageByWarehouse(StockSelectDto dto);

+ 22 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockServiceImpl.java

@@ -22,6 +22,7 @@ import com.fjhx.wms.entity.stock.po.Stock;
 import com.fjhx.wms.entity.stock.po.StockJournal;
 import com.fjhx.wms.entity.stock.po.StockJournalDetails;
 import com.fjhx.wms.entity.stock.po.StockWaitDetails;
+import com.fjhx.wms.entity.stock.vo.StockTotalVo;
 import com.fjhx.wms.entity.stock.vo.StockVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.warehouse.po.Warehouse;
@@ -73,7 +74,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     @Override
     public Page<StockVo> getPage(StockSelectDto dto) {
         IWrapper<Stock> wrapper = getWrapper();
-        wrapper.orderByDesc("s", Stock::getId);
         wrapper.eq(Stock::getWarehouseId, dto.getId());
 //        wrapper.like(Stock::getQuantity, dto.getKeyword());
         String keyword = dto.getKeyword();
@@ -89,6 +89,15 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         wrapper.in(Stock::getProductId, dto.getProductIds());
         wrapper.eq("pi.definition", dto.getDefinition());
 
+        //库存阈值过滤
+        if(ObjectUtil.isNotEmpty(dto.getIsStockThreshold())&&dto.getIsStockThreshold()==1){
+            wrapper.isNotNull("pi.stock_threshold");
+            wrapper.ne("pi.stock_threshold","");
+            wrapper.ltSql("s.quantity","stock_threshold");
+        }
+
+        wrapper.orderByDesc("s", Stock::getId);
+
         Page<StockVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<StockVo> stockVos = page.getRecords();
         //赋值产品信息
@@ -135,6 +144,18 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     }
 
     /**
+     * 库存头部统计 目前只有阈值部分
+     */
+    @Override
+    public StockTotalVo getHeadStatistic(StockSelectDto dto){
+        IWrapper<Stock> wrapper = IWrapper.getWrapper();
+        wrapper.isNotNull("pi.stock_threshold");
+        wrapper.ne("pi.stock_threshold","");
+        wrapper.ltSql("s.quantity","pi.stock_threshold");
+        return baseMapper.getHeadStatistic(wrapper);
+    }
+
+    /**
      * 维多利亚 按仓库库存查询
      */
     @Override

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

@@ -12,7 +12,8 @@
                s.update_user,
                s.update_time,
                s.victoriatourist_json,
-               s.unit_price
+               s.unit_price,
+               pi.stock_threshold
         FROM stock s
                  LEFT JOIN bytesailing_item.product_info pi ON s.product_id = pi.id
             ${ew.customSqlSegment}
@@ -48,5 +49,14 @@
                 LEFT JOIN bytesailing_item.product_spu ps ON pi.product_spu_id = ps.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getHeadStatistic" resultType="com.fjhx.wms.entity.stock.vo.StockTotalVo">
+        SELECT
+            count(s.id) as stockThresholdQuantity
+        FROM
+            stock s
+                LEFT JOIN bytesailing_item.product_info pi ON s.product_id = pi.id
+                LEFT JOIN bytesailing_item.product_spu ps ON pi.product_spu_id = ps.id
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>