From 1c864fd2f2501393c65fe1808ab35ec54fe686e5 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期二, 03 六月 2025 18:09:48 +0800
Subject: [PATCH] 工具管理-库存预警接口

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java |   47 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java
index 7ce5fd2..0d98d03 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java
@@ -1,18 +1,25 @@
 package org.jeecg.modules.tms.controller;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.BaseTools;
 import org.jeecg.modules.tms.entity.ToolLedger;
+import org.jeecg.modules.tms.entity.ToolsConfigProperty;
+import org.jeecg.modules.tms.service.IBaseToolsService;
 import org.jeecg.modules.tms.service.IToolLedgerService;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -20,6 +27,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.tms.service.IToolsConfigPropertyService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -49,6 +57,10 @@
 public class ToolLedgerController extends JeecgController<ToolLedger, IToolLedgerService> {
 	@Autowired
 	private IToolLedgerService toolLedgerService;
+	@Autowired
+	private IToolsConfigPropertyService toolsConfigPropertyService;
+	@Autowired
+	private IBaseToolsService baseToolsService;
 	
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
@@ -71,6 +83,35 @@
 		IPage<ToolLedger> pageList = toolLedgerService.page(page, queryWrapper);
 		return Result.OK(pageList);
 	}
+
+	@ApiOperation(value="tms_tool_ledger-搴撳瓨棰勮", notes = "tms_tool_ledger-搴撳瓨棰勮")
+	@GetMapping(value = "/toolsStockWarning")
+	public Result<?> toolsStockWarning() {
+		List<ToolLedger> toolLedgerList = toolLedgerService.list();
+		Map<String, ToolLedger> toolLedgerMap = toolLedgerList.stream()
+				.collect(Collectors.toMap(ToolLedger::getToolId, item -> item, (k1, k2) -> k1));
+		Map<String, ToolsConfigProperty> toolsConfigPropertyMap = toolsConfigPropertyService.list(new LambdaQueryWrapper<ToolsConfigProperty>()
+						.in(ToolsConfigProperty::getToolCode, toolLedgerMap.keySet()).eq(ToolsConfigProperty::getStatus, CommonConstant.STATUS_1))
+				.stream().collect(Collectors.toMap(ToolsConfigProperty::getToolCode, item -> item, (k1, k2) -> k1));
+		List<String> warningMsg = CollectionUtil.newArrayList();
+		for (String toolCode : toolsConfigPropertyMap.keySet()) {
+			ToolsConfigProperty configProperty = toolsConfigPropertyMap.get(toolCode);
+			if (Objects.nonNull(configProperty.getLowerInventory()) && Objects.nonNull(configProperty.getHighestInventory())) {
+				ToolLedger toolLedger = toolLedgerMap.get(toolCode);
+				if (Objects.nonNull(toolLedger)) {
+					BigDecimal totalCount = toolLedger.getTotalCount();
+					BaseTools tools = baseToolsService.getById(toolCode);
+					if (totalCount.compareTo(configProperty.getLowerInventory()) < 0) {
+						warningMsg.add("缂栫爜涓恒��" + tools.getToolCode() + "銆戠殑宸ュ叿锛屽簱瀛樹綆浜庡簱瀛樹笅闄愶紒");
+					}
+					if (totalCount.compareTo(configProperty.getHighestInventory()) > 0) {
+						warningMsg.add("缂栫爜涓恒��" + tools.getToolCode() + "銆戠殑宸ュ叿锛屽簱瀛橀珮浜庡簱瀛樹笂闄愶紒");
+					}
+				}
+			}
+		}
+		return Result.OK(warningMsg);
+	}
 	
 	/**
 	 *   娣诲姞

--
Gitblit v1.9.3