SAP应收未清凭证号批量查询2.0----支持多种隔断、不隔断查询
This commit is contained in:
parent
0c654cd10a
commit
57ae76b7e7
|
|
@ -19,8 +19,10 @@ import kd.bos.logging.LogFactory;
|
||||||
import shjh.jhzj7.fi.fi.utils.SapUtils;
|
import shjh.jhzj7.fi.fi.utils.SapUtils;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.EventObject;
|
import java.util.EventObject;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态表单插件-【SAP应收未清】 shjh_sapyswq
|
* 动态表单插件-【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) {
|
private void parseQueryNumber(JSONArray IT_LIST, String field, String queryText) {
|
||||||
// 1. 清理输入:去除空格、中文逗号,统一用英文逗号分隔
|
// 1. 只保留数字
|
||||||
String cleanedText = queryText.replaceAll("\\s+", "") // 去空格
|
String digitsOnly = queryText.replaceAll("[^0-9]", "");
|
||||||
.replace(",", ","); // 中文逗号转英文
|
|
||||||
|
|
||||||
// 2. 按空格拆分
|
// 2. 按每10位拆分
|
||||||
String[] numbers = cleanedText.split(",");
|
List<String> 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. 遍历处理每个凭证号
|
// 3. 生成查询条件
|
||||||
for (String number : numbers) {
|
for (String number : voucherNumbers) {
|
||||||
if (number.isEmpty()) continue;
|
|
||||||
JSONObject eqQuery = new JSONObject();
|
JSONObject eqQuery = new JSONObject();
|
||||||
eqQuery.put("FIELD", field);
|
eqQuery.put("FIELD", field);
|
||||||
eqQuery.put("SIGN", "I");
|
eqQuery.put("SIGN", "I");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue