From a76e1d17d67641993dea6335cb8e1465a94df58d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 21 五月 2026 15:39:05 +0800
Subject: [PATCH] feat(stock): 优化库存管理和成品树结构功能 1- 为ApproveProcessMapper.xml和ProductBomMapper.xml添加排序功能 2- 在ProductionProductMainDto中新增bomInputQty字段用于产品结构投入数量 3- 修改ProductionProductMainServiceImpl中投入数量计算逻辑,使用前端传入的bomInputQty值 4- 在ProductWorkOrderDto中添加bomInputQty字段并在服务实现中计算标准投入数量 5- 更新SalesLedgerMapper.xml查询逻辑,从product_summary获取电压信息 6- 为SalesLedgerProduct添加stockId字段并修改库存扣减逻辑使用具体库存ID 7- 重构StockInventoryController中的成品库存树查询接口和导入导出功能 8- 新增成品和非成品库存导入导出的数据模型和Excel工具类 9- 优化StockInventoryServiceImpl中的库存扣减逻辑,支持按特定库存ID操作 10- 更新库存导入导出功能,区分成品和非成品类型并提供相应模板

---
 src/main/java/com/ruoyi/common/utils/job/JobInvokeUtil.java |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/utils/job/JobInvokeUtil.java b/src/main/java/com/ruoyi/common/utils/job/JobInvokeUtil.java
index 61e9ca0..9711541 100644
--- a/src/main/java/com/ruoyi/common/utils/job/JobInvokeUtil.java
+++ b/src/main/java/com/ruoyi/common/utils/job/JobInvokeUtil.java
@@ -34,7 +34,7 @@
         }
         else
         {
-            Object bean = Class.forName(beanName).newInstance();
+            Object bean = Class.forName(beanName).getDeclaredConstructor().newInstance();
             invokeMethod(bean, methodName, methodParams);
         }
     }
@@ -52,12 +52,12 @@
     {
         if (StringUtils.isNotNull(methodParams) && methodParams.size() > 0)
         {
-            Method method = bean.getClass().getDeclaredMethod(methodName, getMethodParamsType(methodParams));
+            Method method = bean.getClass().getMethod(methodName, getMethodParamsType(methodParams));
             method.invoke(bean, getMethodParamsValue(methodParams));
         }
         else
         {
-            Method method = bean.getClass().getDeclaredMethod(methodName);
+            Method method = bean.getClass().getMethod(methodName);
             method.invoke(bean);
         }
     }
@@ -65,7 +65,7 @@
     /**
      * 鏍¢獙鏄惁涓轰负class鍖呭悕
      * 
-     * @param str 鍚嶇О
+     * @param invokeTarget 鍚嶇О
      * @return true鏄� false鍚�
      */
     public static boolean isValidClassName(String invokeTarget)
@@ -105,35 +105,35 @@
      */
     public static List<Object[]> getMethodParams(String invokeTarget)
     {
-        String methodStr = StringUtils.substringBetween(invokeTarget, "(", ")");
+        String methodStr = StringUtils.substringBetweenLast(invokeTarget, "(", ")");
         if (StringUtils.isEmpty(methodStr))
         {
             return null;
         }
-        String[] methodParams = methodStr.split(",");
+        String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)");
         List<Object[]> classs = new LinkedList<>();
         for (int i = 0; i < methodParams.length; i++)
         {
             String str = StringUtils.trimToEmpty(methodParams[i]);
-            // String瀛楃涓茬被鍨嬶紝鍖呭惈'
-            if (StringUtils.contains(str, "'"))
+            // String瀛楃涓茬被鍨嬶紝浠�'鎴�"寮�澶�
+            if (StringUtils.startsWithAny(str, "'", "\""))
             {
-                classs.add(new Object[] { StringUtils.replace(str, "'", ""), String.class });
+                classs.add(new Object[] { StringUtils.substring(str, 1, str.length() - 1), String.class });
             }
             // boolean甯冨皵绫诲瀷锛岀瓑浜巘rue鎴栬�協alse
-            else if (StringUtils.equals(str, "true") || StringUtils.equalsIgnoreCase(str, "false"))
+            else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str))
             {
                 classs.add(new Object[] { Boolean.valueOf(str), Boolean.class });
             }
-            // long闀挎暣褰紝鍖呭惈L
-            else if (StringUtils.containsIgnoreCase(str, "L"))
+            // long闀挎暣褰紝浠缁撳熬
+            else if (StringUtils.endsWith(str, "L"))
             {
-                classs.add(new Object[] { Long.valueOf(StringUtils.replaceIgnoreCase(str, "L", "")), Long.class });
+                classs.add(new Object[] { Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class });
             }
-            // double娴偣绫诲瀷锛屽寘鍚獶
-            else if (StringUtils.containsIgnoreCase(str, "D"))
+            // double娴偣绫诲瀷锛屼互D缁撳熬
+            else if (StringUtils.endsWith(str, "D"))
             {
-                classs.add(new Object[] { Double.valueOf(StringUtils.replaceIgnoreCase(str, "D", "")), Double.class });
+                classs.add(new Object[] { Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class });
             }
             // 鍏朵粬绫诲瀷褰掔被涓烘暣褰�
             else

--
Gitblit v1.9.3