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");