From a10e753fb8eb269d8132c764a9a07c24718172f7 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Mon, 24 Nov 2025 10:42:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9=EF=BC=9A?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E3=80=81=E4=BE=9B=E5=BA=94=E5=95=86=E3=80=81?= =?UTF-8?q?=E5=AE=A2=E5=95=86=E9=93=B6=E8=A1=8C=E4=BF=A1=E6=81=AF=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E8=A1=A8=E3=80=81=E4=BA=BA=E5=91=98=E5=B2=97=E4=BD=8D?= =?UTF-8?q?=E3=80=81=E7=89=A9=E6=96=99=E3=80=81=E8=A1=8C=E6=94=BF=E7=BB=84?= =?UTF-8?q?=E7=BB=87API=E4=BF=9D=E5=AD=98=E6=8F=92=E4=BB=B6=20=E6=97=B6?= =?UTF-8?q?=E9=97=B4=EF=BC=9A2025-11-24=2010=EF=BC=9A41=20=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=82=B9=E6=B1=9F=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/api/CustomerSavePlugin.java | 48 ++++++++ .../sys/sys/plugin/api/HswdApiSavePlugin.java | 67 ++++++++++ .../api/KsBankinformationSavePlugin.java | 115 ++++++++++++++++++ .../sys/sys/plugin/api/RyrzApiSavePlugin.java | 45 +++++++ .../sys/plugin/api/SupplierSavePlugin.java | 47 +++++++ .../shkd/sys/sys/plugin/api/WlSavePlugin.java | 47 +++++++ .../sys/sys/plugin/api/XzzzApiSavePlugin.java | 46 +++++++ 7 files changed, 415 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/CustomerSavePlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/HswdApiSavePlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/KsBankinformationSavePlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/RyrzApiSavePlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/SupplierSavePlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/WlSavePlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XzzzApiSavePlugin.java 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 new file mode 100644 index 0000000..6d7ec8b --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/CustomerSavePlugin.java @@ -0,0 +1,48 @@ +package shkd.sys.sys.plugin.api; + +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.api.plugin.ApiSavePlugin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 客户API保存插件 + */ + +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); + + for (Map oneLevel : reqData) { + Map group = (Map) oneLevel.get("group"); + String groupNumber = group.get("number").toString(); + + List> entryGroupstandard = new ArrayList<>(); + Map twoLevel = new HashMap<>(); + + Map standardid = new HashMap<>(); + standardid.put("number", "JBFLBZ"); + + Map groupid = new HashMap<>(); + groupid.put("number", groupNumber); + + twoLevel.put("standardid", standardid); + twoLevel.put("groupid", groupid); + twoLevel.put("seq", 1); + + entryGroupstandard.add(twoLevel); + oneLevel.put("entry_groupstandard", entryGroupstandard); + } + + logger.info("API最后推送数据 → 客户分录信息 → " + reqData); + return reqData; + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/HswdApiSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/HswdApiSavePlugin.java new file mode 100644 index 0000000..a166853 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/HswdApiSavePlugin.java @@ -0,0 +1,67 @@ +package shkd.sys.sys.plugin.api; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.api.plugin.ApiSavePlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 会计科目_核算维度API保存插件 + */ +public class HswdApiSavePlugin implements Serializable, ApiSavePlugin { + private static final long serialVersionUID = 5682058714176510321L; + private static final Log logger = LogFactory.getLog(HswdApiSavePlugin.class); + @Override + public List> preHandleRequestData(List> reqData) { + logger.info("API起始推送数据 → 会计科目_核算维度 → " + reqData); + for (Map oneLevel : reqData) { + String billno = oneLevel.get("billno").toString();//浪潮数据内码 + String shkdLcid = oneLevel.get("shkd_lcid").toString();//会计科目浪潮ID + Map shkdHswd = (Map) oneLevel.get("shkd_hswd"); + String shkdHswdNumber = shkdHswd.get("number").toString();// 核算维度编码 + DynamicObject[] bd_asstacttypes = BusinessDataServiceHelper.load("bd_asstacttype", "id,number", new QFilter("number", QCP.equals, shkdHswdNumber).toArray()); + + if (bd_asstacttypes == null || bd_asstacttypes.length == 0) { + return reqData; + } else { + DynamicObject[] bd_accountviews = BusinessDataServiceHelper.load("bd_accountview", + "id,shkd_lcid,checkitementry,checkitementry.asstactitem,checkitementry.shkd_lchswdid," + + "checkitementry.isrequire,checkitementry.isdetail", new QFilter("shkd_lcid", QCP.equals, shkdLcid).toArray()); + boolean isExist = false; + if (bd_accountviews != null && bd_accountviews.length > 0) { + DynamicObject bdAccountview = bd_accountviews[0]; + DynamicObjectCollection checkitementrys = bdAccountview.getDynamicObjectCollection("checkitementry"); + for (DynamicObject checkitementry : checkitementrys) { + String shkdLchswdid = checkitementry.getString("shkd_lchswdid"); + if (billno.equals(shkdLchswdid)) { + checkitementry.set("asstactitem", bd_asstacttypes[0]); + isExist = true; + break; + } + } + if (!isExist) { + DynamicObject dynamicObject = checkitementrys.addNew(); + dynamicObject.set("asstactitem", bd_asstacttypes[0]); + dynamicObject.set("shkd_lchswdid", billno); + dynamicObject.set("isrequire", true); + dynamicObject.set("isdetail", true); + } + SaveServiceHelper.save(new DynamicObject[]{bdAccountview}); + } + } + } + logger.info("API最终推送数据 → 会计科目_核算维度 → " + reqData); + return reqData; + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/KsBankinformationSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/KsBankinformationSavePlugin.java new file mode 100644 index 0000000..5e95ace --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/KsBankinformationSavePlugin.java @@ -0,0 +1,115 @@ +package shkd.sys.sys.plugin.api; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.api.plugin.ApiSavePlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * 客商银行信息API保存插件 + */ +public class KsBankinformationSavePlugin implements Serializable, ApiSavePlugin { + private static final long serialVersionUID = -4773431652795425615L; + private static final Log logger = LogFactory.getLog(KsBankinformationSavePlugin.class); + + @Override + public List> preHandleRequestData(List> reqData) { + logger.info("API起始推送数据 → 客商银行信息 → " + reqData); + + for (Map oneLevel : reqData) { + String shkdLcid = oneLevel.get("shkd_lcid").toString();//浪潮ID → 客商浪潮id + String billno = oneLevel.get("billno").toString();// 编码 → 浪潮内码 + String shkdYhzh = oneLevel.get("shkd_yhzh").toString();// 银行账号 + String shkdZhmc = oneLevel.get("shkd_zhmc").toString();// 账户名称 + boolean shkdMr = (boolean) oneLevel.get("shkd_mr");// 是否默认 + Map shkd_khyh = (Map) oneLevel.get("shkd_khyh"); + String shkd_khyh_number = shkd_khyh.get("number").toString();// 行名行号 + Map shkd_bz = (Map) oneLevel.get("shkd_bz"); + String shkd_bz_number = shkd_bz.get("number").toString();// 币别编码 + + DynamicObject[] bd_bebanks = BusinessDataServiceHelper.load("bd_bebank", "id,number", new QFilter("number", QCP.equals, shkd_khyh_number).toArray()); + DynamicObject[] bd_currencys = BusinessDataServiceHelper.load("bd_currency", "id,number", new QFilter("number", QCP.equals, shkd_bz_number).toArray()); + + DynamicObject shkdKhyh = bd_bebanks[0];//行名行号 + DynamicObject shkdBz = bd_currencys[0];//币别 + + DynamicObject[] bd_customers = BusinessDataServiceHelper.load("bd_customer", + "id,shkd_lcid,entry_bank,entry_bank.shkd_entrylcid,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank,entry_bank.currency,entry_bank.isdefault_bank", new QFilter("shkd_lcid", QCP.equals, shkdLcid).toArray()); + + boolean customerIsExist = false; + + if (bd_customers != null && bd_customers.length > 0) { + DynamicObjectCollection bd_customer_entryBank = bd_customers[0].getDynamicObjectCollection("entry_bank"); + for (DynamicObject entryBank : bd_customer_entryBank) { + String shkdEntrylcid = entryBank.getString("shkd_entrylcid");//浪潮银行信息id + if (billno.equals(shkdEntrylcid)) { + customerIsExist = true; + entryBank.set("bankaccount", shkdYhzh); + entryBank.set("accountname", shkdZhmc); + entryBank.set("isdefault_bank", shkdMr); + entryBank.set("bank", shkdKhyh); + entryBank.set("currency", shkdBz); + SaveServiceHelper.save(new DynamicObject[]{bd_customers[0]}); + break; + } + } + + if (!customerIsExist) { + DynamicObject dynamicObject = bd_customer_entryBank.addNew(); + dynamicObject.set("bankaccount", shkdYhzh); + dynamicObject.set("accountname", shkdZhmc); + dynamicObject.set("bank", shkdKhyh); + dynamicObject.set("currency", shkdBz); + dynamicObject.set("isdefault_bank", shkdMr); + dynamicObject.set("shkd_entrylcid", billno); + SaveServiceHelper.save(new DynamicObject[]{bd_customers[0]}); + } + } + + DynamicObject[] bd_suppliers = BusinessDataServiceHelper.load("bd_supplier", + "id,shkd_lcid,entry_bank,entry_bank.shkd_entrylcid,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank,entry_bank.currency,entry_bank.isdefault_bank", new QFilter("shkd_lcid", QCP.equals, shkdLcid).toArray()); + + boolean supplierIsExist = false; + + if (bd_suppliers != null && bd_suppliers.length > 0) { + DynamicObjectCollection bd_supplier_entryBank = bd_suppliers[0].getDynamicObjectCollection("entry_bank"); + for (DynamicObject entryBank : bd_supplier_entryBank) { + String shkdEntrylcid = entryBank.getString("shkd_entrylcid");//浪潮银行信息id + if (billno.equals(shkdEntrylcid)) { + supplierIsExist = true; + entryBank.set("bankaccount", shkdYhzh); + entryBank.set("accountname", shkdZhmc); + entryBank.set("isdefault_bank", shkdMr); + entryBank.set("bank", shkdKhyh); + entryBank.set("currency", shkdBz); + SaveServiceHelper.save(new DynamicObject[]{bd_suppliers[0]}); + break; + } + } + + if (!supplierIsExist) { + DynamicObject dynamicObject = bd_supplier_entryBank.addNew(); + dynamicObject.set("bankaccount", shkdYhzh); + dynamicObject.set("accountname", shkdZhmc); + dynamicObject.set("bank", shkdKhyh); + dynamicObject.set("currency", shkdBz); + dynamicObject.set("isdefault_bank", shkdMr); + dynamicObject.set("shkd_entrylcid", billno); + SaveServiceHelper.save(new DynamicObject[]{bd_suppliers[0]}); + } + } + } + + logger.info("API最后推送数据 → 客商银行信息 → " + reqData); + return reqData; + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/RyrzApiSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/RyrzApiSavePlugin.java new file mode 100644 index 0000000..771916a --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/RyrzApiSavePlugin.java @@ -0,0 +1,45 @@ +package shkd.sys.sys.plugin.api; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.api.plugin.ApiSavePlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 人员任职API保存插件 + */ +public class RyrzApiSavePlugin implements Serializable, ApiSavePlugin { + private static final long serialVersionUID = 1909027431568925659L; + private static final Log logger = LogFactory.getLog(RyrzApiSavePlugin.class); + + @Override + public List> preHandleRequestData(List> reqData) { + logger.info("API起始推送数据 → 人员任职 → " + reqData); + for (Map oneLevel : reqData) { + Map org = (Map) oneLevel.get("org"); + String shkdLcid = org.get("shkd_lcid").toString(); + // 行政组织id + DynamicObject[] bos_adminorg = BusinessDataServiceHelper.load("bos_adminorg", "id,name,number,shkd_lcid", new QFilter("shkd_lcid", QCP.equals, shkdLcid).toArray()); + if (bos_adminorg != null && bos_adminorg.length > 0) { + DynamicObject bos_adminorg_one = bos_adminorg[0]; + DynamicObject[] bos_adminorg_structure = BusinessDataServiceHelper.load("bos_adminorg_structure", "id,number,name,fullname,org", new QFilter("org", QCP.equals, bos_adminorg_one.getPkValue()).toArray()); + if (bos_adminorg_structure != null && bos_adminorg_structure.length > 0) { + Map orgstructure = new HashMap<>(); + orgstructure.put("id", bos_adminorg_structure[0].getPkValue()); + oneLevel.put("orgstructure", orgstructure); + } + } + } + logger.info("API最后推送数据 → 人员任职 → " + reqData); + return reqData; + } +} 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 new file mode 100644 index 0000000..3b26ef1 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/SupplierSavePlugin.java @@ -0,0 +1,47 @@ +package shkd.sys.sys.plugin.api; + +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.api.plugin.ApiSavePlugin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 供应商分录API保存插件 + */ +public class SupplierSavePlugin implements Serializable, ApiSavePlugin { + private static final long serialVersionUID = -423600019773886832L; + private static final Log logger = LogFactory.getLog(SupplierSavePlugin.class); + @Override + public List> preHandleRequestData(List> reqData) { + logger.info("API起始推送数据 → 供应商分录信息 → " + reqData); + + for (Map oneLevel : reqData) { + Map group = (Map) oneLevel.get("group"); + String groupNumber = group.get("number").toString(); + + List> entryGroupstandard = new ArrayList<>(); + Map twoLevel = new HashMap<>(); + + Map standardid = new HashMap<>(); + standardid.put("number", "JBFLBZ"); + + Map groupid = new HashMap<>(); + groupid.put("number", groupNumber); + + twoLevel.put("standardid", standardid); + twoLevel.put("groupid", groupid); + twoLevel.put("seq", 1); + + entryGroupstandard.add(twoLevel); + oneLevel.put("entry_groupstandard", entryGroupstandard); + } + + logger.info("API最后推送数据 → 供应商分录信息 → " + reqData); + return reqData; + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/WlSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/WlSavePlugin.java new file mode 100644 index 0000000..d094e36 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/WlSavePlugin.java @@ -0,0 +1,47 @@ +package shkd.sys.sys.plugin.api; + +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.api.plugin.ApiSavePlugin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 物料API保存插件 + */ +public class WlSavePlugin implements Serializable, ApiSavePlugin { + private static final long serialVersionUID = -8376449027109550091L; + private static final Log logger = LogFactory.getLog(XzzzApiSavePlugin.class); + + @Override + public List> preHandleRequestData(List> reqData) { + logger.info("API起始推送数据 → 物料 → " + reqData); + + for (Map oneLevel : reqData) { + Map group = (Map) oneLevel.get("group"); + String groupNumber = group.get("number").toString(); + + List> entryGroupstandard = new ArrayList<>(); + Map twoLevel = new HashMap<>(); + + Map standardid = new HashMap<>(); + standardid.put("number", "JBFLBZ"); + Map groupid = new HashMap<>(); + groupid.put("number", groupNumber); + + twoLevel.put("standardid", standardid); + twoLevel.put("groupid", groupid); + twoLevel.put("seq", 1); + + entryGroupstandard.add(twoLevel); + oneLevel.put("entry_groupstandard", entryGroupstandard); + } + + logger.info("API起始推送数据 → 物料 → " + reqData); + return ApiSavePlugin.super.preHandleRequestData(reqData); + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XzzzApiSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XzzzApiSavePlugin.java new file mode 100644 index 0000000..06cc930 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XzzzApiSavePlugin.java @@ -0,0 +1,46 @@ +package shkd.sys.sys.plugin.api; + +import kd.bos.logging.LogFactory; +import kd.bos.logging.Log; +import kd.bos.openapi.api.plugin.ApiSavePlugin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.HashMap; + +public class XzzzApiSavePlugin implements Serializable, ApiSavePlugin { + private static final long serialVersionUID = 5490855512855350249L; + + private static final Log logger = LogFactory.getLog(XzzzApiSavePlugin.class); + + /** + * 行政组织API保存插件 + */ + @Override + public List> preHandleRequestData(List> reqData) { + logger.info("API起始推送数据 → 行政组织 → " + reqData); + for (Map oneLevel : reqData) { + Map parent = (Map) oneLevel.get("parent"); + + List> structure = new ArrayList<>(); + Map twoLevel = new HashMap<>(); + + if (parent != null) { + Map viewparent = new HashMap<>(); + viewparent.put("shkd_lcid", parent.get("shkd_lcid")); + twoLevel.put("viewparent", viewparent); + } + + twoLevel.put("seq", 1); + Map view = new HashMap<>(); + view.put("name", "行政组织视图默认方案"); + twoLevel.put("view", view); + structure.add(twoLevel); + oneLevel.put("structure", structure); + } + logger.info("API最终推送数据 → 行政组织 → " + reqData); + return reqData; + } +}