From 57ae76b7e7e3e6277ea7ff270f902ada51e62740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Fri, 18 Jul 2025 10:38:16 +0800 Subject: [PATCH] =?UTF-8?q?SAP=E5=BA=94=E6=94=B6=E6=9C=AA=E6=B8=85?= =?UTF-8?q?=E5=87=AD=E8=AF=81=E5=8F=B7=E6=89=B9=E9=87=8F=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?2.0----=E6=94=AF=E6=8C=81=E5=A4=9A=E7=A7=8D=E9=9A=94=E6=96=AD?= =?UTF-8?q?=E3=80=81=E4=B8=8D=E9=9A=94=E6=96=AD=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/plugin/form/ASParbillFormPlugin.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java index d0170bf..e29bbaa 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/ASParbillFormPlugin.java @@ -19,8 +19,10 @@ import kd.bos.logging.LogFactory; import shjh.jhzj7.fi.fi.utils.SapUtils; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.EventObject; +import java.util.List; /** * 动态表单插件-【SAP应收未清】 shjh_sapyswq @@ -216,17 +218,42 @@ public class ASParbillFormPlugin extends AbstractFormPlugin { } } +// private void parseQueryNumber(JSONArray IT_LIST, String field, String queryText) { +// // 1. 清理输入:去除空格、中文逗号,统一用英文逗号分隔 +// String cleanedText = queryText.replaceAll("\\s+", "") // 去空格 +// .replace(",", ","); // 中文逗号转英文 +// +// // 2. 按空格拆分 +// String[] numbers = cleanedText.split(","); +// +// // 3. 遍历处理每个凭证号 +// for (String number : numbers) { +// if (number.isEmpty()) continue; +// JSONObject eqQuery = new JSONObject(); +// eqQuery.put("FIELD", field); +// eqQuery.put("SIGN", "I"); +// eqQuery.put("OPTION", "EQ"); +// eqQuery.put("LOW", number); +// eqQuery.put("HIGH", number); +// IT_LIST.add(eqQuery); +// } +// } private void parseQueryNumber(JSONArray IT_LIST, String field, String queryText) { - // 1. 清理输入:去除空格、中文逗号,统一用英文逗号分隔 - String cleanedText = queryText.replaceAll("\\s+", "") // 去空格 - .replace(",", ","); // 中文逗号转英文 + // 1. 只保留数字 + String digitsOnly = queryText.replaceAll("[^0-9]", ""); - // 2. 按空格拆分 - String[] numbers = cleanedText.split(","); + // 2. 按每10位拆分 + List voucherNumbers = new ArrayList<>(); + for (int i = 0; i < digitsOnly.length(); i += 10) { + int endIndex = Math.min(i + 10, digitsOnly.length()); + String voucher = digitsOnly.substring(i, endIndex); + if (voucher.length() == 10) { // 仅保留10位的凭证号 + voucherNumbers.add(voucher); + } + } - // 3. 遍历处理每个凭证号 - for (String number : numbers) { - if (number.isEmpty()) continue; + // 3. 生成查询条件 + for (String number : voucherNumbers) { JSONObject eqQuery = new JSONObject(); eqQuery.put("FIELD", field); eqQuery.put("SIGN", "I");