From a07a9ceac53265d112ada69dd7a18686bed1875e Mon Sep 17 00:00:00 2001 From: "1981897232@qq.com" <1981897232@qq> Date: Wed, 7 Jan 2026 17:33:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9Acsx=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=97=B6=E9=97=B4=EF=BC=9A2025=E5=B9=B401?= =?UTF-8?q?=E6=9C=8807=E6=97=A5=20=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E5=BA=94=E6=94=B6=E7=A5=A8=E6=8D=AE=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=9F=A5=E8=AF=A2=E6=8B=93=E5=B1=95=E6=8F=92?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/api/CustomerSavePlugin.java | 50 +++++++++++++++++++ .../sys/plugin/api/SupplierSavePlugin.java | 47 +++++++++++++++++ ...AddBillReceivableReportListDataPlugin.java | 2 +- 3 files changed, 98 insertions(+), 1 deletion(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/CustomerSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/CustomerSavePlugin.java index 6d7ec8b..96fe689 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/CustomerSavePlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/CustomerSavePlugin.java @@ -9,6 +9,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 客户API保存插件 @@ -17,6 +19,7 @@ import java.util.Map; public class CustomerSavePlugin implements Serializable, ApiSavePlugin { private static final long serialVersionUID = -1233066349290656167L; private static final Log logger = LogFactory.getLog(CustomerSavePlugin.class); + @Override public List> preHandleRequestData(List> reqData) { logger.info("API起始推送数据 → 客户分录信息 → " + reqData); @@ -25,6 +28,19 @@ public class CustomerSavePlugin implements Serializable, ApiSavePlugin { Map group = (Map) oneLevel.get("group"); String groupNumber = group.get("number").toString(); + Object regcapital = oneLevel.get("regcapital"); + if (regcapital != null) { + String regcapitalString = regcapital.toString();//xx万元 + oneLevel.put("regcapital", convertCurrency(regcapitalString)); + } + + Object shkd_vendorcategory = oneLevel.get("shkd_vendorcategory"); + if (shkd_vendorcategory != null) { + String shkd_vendorcategoryString = shkd_vendorcategory.toString();//I_65 + oneLevel.put("shkd_vendorcategory", extractAfterUnderscore(shkd_vendorcategoryString)); + } + + List> entryGroupstandard = new ArrayList<>(); Map twoLevel = new HashMap<>(); @@ -45,4 +61,38 @@ public class CustomerSavePlugin implements Serializable, ApiSavePlugin { logger.info("API最后推送数据 → 客户分录信息 → " + reqData); return reqData; } + + + public static String convertCurrency(String input) { + // 正则表达式匹配:数字 + "万人民币" + // \\d+ 匹配一个或多个数字 + // 万人民币 是固定文本 + Pattern pattern = Pattern.compile("(\\d+万)人民币"); + Matcher matcher = pattern.matcher(input); + + // 使用StringBuffer来构建结果 + StringBuffer result = new StringBuffer(); + + while (matcher.find()) { + // 将匹配到的"万人民币"替换为"万元" + matcher.appendReplacement(result, matcher.group(1) + "元"); + } + + // 添加剩余部分 + matcher.appendTail(result); + + return result.toString(); + } + + public static String extractAfterUnderscore(String input) { + // 使用split方法分割字符串 + String[] parts = input.split("_", 2); // 只分割成最多2部分 + + // 如果分割后有多于1部分,说明有下划线 + if (parts.length > 1) { + return parts[1]; // 返回下划线后的内容 + } + // 没有下划线,返回原字符串 + return input; + } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/SupplierSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/SupplierSavePlugin.java index 3b26ef1..4d5981d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/SupplierSavePlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/SupplierSavePlugin.java @@ -9,6 +9,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 供应商分录API保存插件 @@ -24,6 +26,18 @@ public class SupplierSavePlugin implements Serializable, ApiSavePlugin { Map group = (Map) oneLevel.get("group"); String groupNumber = group.get("number").toString(); + Object regcapital = oneLevel.get("regcapital"); + if (regcapital != null) { + String regcapitalString = regcapital.toString();//xx万元 + oneLevel.put("regcapital", convertCurrency(regcapitalString)); + } + + Object shkd_vendorcategory = oneLevel.get("shkd_vendorcategory"); + if (shkd_vendorcategory != null) { + String shkd_vendorcategoryString = shkd_vendorcategory.toString();//I_65 + oneLevel.put("shkd_vendorcategory", extractAfterUnderscore(shkd_vendorcategoryString)); + } + List> entryGroupstandard = new ArrayList<>(); Map twoLevel = new HashMap<>(); @@ -44,4 +58,37 @@ public class SupplierSavePlugin implements Serializable, ApiSavePlugin { logger.info("API最后推送数据 → 供应商分录信息 → " + reqData); return reqData; } + + public static String convertCurrency(String input) { + // 正则表达式匹配:数字 + "万人民币" + // \\d+ 匹配一个或多个数字 + // 万人民币 是固定文本 + Pattern pattern = Pattern.compile("(\\d+万)人民币"); + Matcher matcher = pattern.matcher(input); + + // 使用StringBuffer来构建结果 + StringBuffer result = new StringBuffer(); + + while (matcher.find()) { + // 将匹配到的"万人民币"替换为"万元" + matcher.appendReplacement(result, matcher.group(1) + "元"); + } + + // 添加剩余部分 + matcher.appendTail(result); + + return result.toString(); + } + + public static String extractAfterUnderscore(String input) { + // 使用split方法分割字符串 + String[] parts = input.split("_", 2); // 只分割成最多2部分 + + // 如果分割后有多于1部分,说明有下划线 + if (parts.length > 1) { + return parts[1]; // 返回下划线后的内容 + } + // 没有下划线,返回原字符串 + return input; + } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/AddBillReceivableReportListDataPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/AddBillReceivableReportListDataPlugin.java index 170f85c..28ce7a6 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/AddBillReceivableReportListDataPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/AddBillReceivableReportListDataPlugin.java @@ -14,7 +14,7 @@ public class AddBillReceivableReportListDataPlugin extends AbstractReportListDat @Override public void afterQuery(AfterQueryEvent event) { DataSet dataSet = event.getDataSet(); - dataSet = dataSet.addField("case when shkd_kyje=0 and shkd_zyje=0 then '是' else '否' end", "shkd_sfyxz");//是否已下账 + dataSet = dataSet.addField("case when (shkd_kyje=0 or shkd_kyje=null) and (shkd_zyje=0 or shkd_zyje=null) then '是' else '否' end", "shkd_sfyxz");//是否已下账 event.setDataSet(dataSet); } } From 097ab3ea1db3fbc1420a3cacbd1da3ddd135dbd6 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 8 Jan 2026 09:10:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A?= =?UTF-8?q?=E9=82=B9=E6=B1=9F=E6=B6=9B=20=E6=8F=90=E4=BA=A4=E6=97=B6?= =?UTF-8?q?=E9=97=B4=EF=BC=9A2026=E5=B9=B401=E6=9C=8805=E6=97=A5=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9=EF=BC=9ACA=E8=AF=81?= =?UTF-8?q?=E4=B9=A6=E7=AE=A1=E7=90=86=EF=BC=8C=E5=85=B3=E8=81=94=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=89=8B=E6=9C=BA=E5=8F=B7=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/list/CaCertificateListPlugin.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/CaCertificateListPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/CaCertificateListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/CaCertificateListPlugin.java new file mode 100644 index 0000000..f5ccb93 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/CaCertificateListPlugin.java @@ -0,0 +1,64 @@ +package shkd.sys.sys.plugin.list; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.dataentity.resource.promptenum.MultiLangEnumBridge; +import kd.bos.entity.EntityMetadataCache; +import kd.bos.entity.MainEntityType; +import kd.bos.entity.datamodel.ListSelectedRow; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.form.events.ClosedCallBackEvent; +import kd.bos.list.BillList; +import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.svc.ca.CAModule; +import kd.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +/** + * 标准单据列表插件 + */ +public class CaCertificateListPlugin extends AbstractListPlugin implements Plugin { + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + //获取列表 + BillList list = this.getControl("billlistap"); + //获取列表选中的行数据 + ListSelectedRowCollection selectedRows = list.getSelectedRows(); + if ("userphone".equals(itemKey)) { + List selectedRowPKValues = new ArrayList<>(); + for (ListSelectedRow selectedRow : selectedRows) { + selectedRowPKValues.add(selectedRow.getPrimaryKeyValue()); + } + selectedRowPKValues = new ArrayList<>(new HashSet<>(selectedRowPKValues)); + for (Object primaryKeyValue : selectedRowPKValues) { + DynamicObject bdUsercredentials = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "bd_usercredentials"); + Object uname = bdUsercredentials.get("uname"); + if (uname == null) { + bdUsercredentials.set("shkd_glyhsjh", ""); + SaveServiceHelper.save(new DynamicObject[]{bdUsercredentials}); + } else { + DynamicObject[] bdUserandcertrelation = BusinessDataServiceHelper.load("bd_userandcertrelation", + "id,userid,certid", new QFilter("certid", QCP.equals, primaryKeyValue).toArray()); + if (bdUserandcertrelation.length > 0) { + DynamicObject dynamicObject = bdUserandcertrelation[0]; + DynamicObject bosUser = BusinessDataServiceHelper.loadSingle(dynamicObject.get("userid"), "bos_user"); + bdUsercredentials.set("shkd_glyhsjh", bosUser.getString("phone")); + SaveServiceHelper.save(new DynamicObject[]{bdUsercredentials}); + } + } + //列表刷新操作 + list.refresh(); + } + } + } +} \ No newline at end of file