From 67bb3fb5dec38f7cfb61dc6e4a838db2b98d4e46 Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Tue, 15 Jul 2025 17:15:58 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=BC=80=E6=88=B7=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=BC=80=E6=88=B7=E6=97=A5=E6=9C=9F=E5=8F=AF?= =?UTF-8?q?=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/form/AccOpenBillEditPlugin.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java new file mode 100644 index 0000000..f2af572 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java @@ -0,0 +1,18 @@ +package shkd.sys.sys.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; + +/** + * 单据界面插件 + */ +public class AccOpenBillEditPlugin extends AbstractBillPlugIn implements Plugin { + + @Override + public void afterBindData(EventObject e) { + super.afterBindData(e); + this.getView().setVisible(true,"opendate"); + } +} \ No newline at end of file From 74972d482ef2c45c4c1c0e56e45c07f0a58dfa35 Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Wed, 16 Jul 2025 14:23:41 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=BC=80=E6=88=B7=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=BC=80=E6=88=B7=E6=97=A5=E6=9C=9F=E5=8F=AF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java index f2af572..91d974f 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/AccOpenBillEditPlugin.java @@ -14,5 +14,6 @@ public class AccOpenBillEditPlugin extends AbstractBillPlugIn implements Plugin public void afterBindData(EventObject e) { super.afterBindData(e); this.getView().setVisible(true,"opendate"); + this.getView().setEnable(true,"opendate"); } } \ No newline at end of file From ce724d6f64e823739a2e63b1df6109da41e0e275 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Wed, 16 Jul 2025 16:29:57 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E4=BF=AE=E6=94=B9=E8=B5=84=E9=87=91=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81=20=E6=97=B6=E9=97=B4?= =?UTF-8?q?=EF=BC=9A2025-07-16=2016=EF=BC=9A29=20=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=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/sys/mservice/PlanningService.java | 37 ++++++++++++------- .../sys/plugin/api/InterfacePracticePlug.java | 7 ++-- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java index d773a47..331f094 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java @@ -1,5 +1,6 @@ package shkd.sys.sys.mservice; +import com.alibaba.fastjson.JSONArray; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; @@ -23,6 +24,7 @@ import microsoft.exchange.webservices.data.core.service.response.ResponseObject; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -105,7 +107,7 @@ public class PlanningService { // 4. 反序列化响应结果 FpmResponse responseObject = SerializationUtils.deSerializeFromBase64(result); - logger.info("是否成功:{}\n消息列表:{}\n反序列化对象:{}", + logger.info("计划编制批量写入是否成功:{}\n消息列表:{}\n反序列化对象:{}", responseObject.isSuccess(), responseObject.getMessage(), responseObject.getData()); return responseObject; } @@ -116,13 +118,12 @@ public class PlanningService { * @param adjustReason 调整原因 * @param orgCode 编报主体编码 * @param periodCode 编报期间编码 - * @param subjectCode 计划科目 * @param entryPeriodCode 主维度数据分录期间 code - * @param amount 调整金额 + * @param adjustProjects 调整项目(计划科目 和 金额) * @return */ - public static FpmResponse planAdjustment(String adjustReason, String orgCode, String periodCode, String subjectCode, String entryPeriodCode, String amount) { - logger.info("计划调整服务入参:adjustReason={},orgCode={},periodCode={},subjectCode={},entryPeriodCode={},amount={}", adjustReason, orgCode, periodCode, subjectCode, entryPeriodCode, amount); + public static FpmResponse planAdjustment(String adjustReason, String orgCode, String periodCode, String entryPeriodCode, JSONArray adjustProjects) { + logger.info("计划调整服务入参:adjustReason={},orgCode={},periodCode={},subjectCode={},entryPeriodCode={},amount={}", adjustReason, orgCode, periodCode, entryPeriodCode, adjustProjects); ReportAdjustBillBatchSaveDTO reportAdjustBillBatchSaveDTO = new ReportAdjustBillBatchSaveDTO(); reportAdjustBillBatchSaveDTO.setSystemCode("SYS-005");// 体系编码 @@ -137,21 +138,29 @@ public class PlanningService { reportAdjustBillSaveDTO.setReportTypeCode("M-002");// 编报类型编码 ArrayList reportAdjustDataSaveDTOS = new ArrayList<>(); - ReportAdjustDataSaveDTO reportAdjustDataSaveDTO = new ReportAdjustDataSaveDTO(); + + for (Object adjustProject : adjustProjects) { + HashMap adjustProjectHashMap = (HashMap) adjustProject; + // 计划科目 + Object subjectCode = adjustProjectHashMap.get("subjectCode"); + // 调整金额 + Object amount = adjustProjectHashMap.get("amount"); + + ReportAdjustDataSaveDTO reportAdjustDataSaveDTO = new ReportAdjustDataSaveDTO(); // reportAdjustDataSaveDTO.setAdjustReason();// 维度组合下每一行的调整原因 // reportAdjustDataSaveDTO.setAmountUnit();// 单位 - reportAdjustDataSaveDTO.setCurrencyCode("CNY");// 币别 code - reportAdjustDataSaveDTO.setSubjectCode(subjectCode);// 计划科目 - reportAdjustDataSaveDTO.setTemplateCode("FIX-013");// 调整数据所属编制表的模板编码 + reportAdjustDataSaveDTO.setCurrencyCode("CNY");// 币别 code + reportAdjustDataSaveDTO.setSubjectCode(subjectCode.toString());// 计划科目 + reportAdjustDataSaveDTO.setTemplateCode("FIX-013");// 调整数据所属编制表的模板编码 // reportAdjustDataSaveDTO.setCompanyCode();// 公司code - reportAdjustDataSaveDTO.setCurrentAdjustAmt(new BigDecimal(amount));// 本次调整金额 + reportAdjustDataSaveDTO.setCurrentAdjustAmt(new BigDecimal(amount.toString()));// 本次调整金额 // reportAdjustDataSaveDTO.setCustom1Code();// 自定义维度1值code // reportAdjustDataSaveDTO.setCustom2Code();// 自定义维度2值code // reportAdjustDataSaveDTO.setCustom3Code();// 自定义维度3值code - reportAdjustDataSaveDTO.setEntryPeriodCode(entryPeriodCode);// 主维度数据分录期间 code + reportAdjustDataSaveDTO.setEntryPeriodCode(entryPeriodCode);// 主维度数据分录期间 code // reportAdjustDataSaveDTO.setSettleTypeCode();// 结算方式 code - reportAdjustDataSaveDTOS.add(reportAdjustDataSaveDTO); - + reportAdjustDataSaveDTOS.add(reportAdjustDataSaveDTO); + } reportAdjustBillSaveDTO.setAdjustDataList(reportAdjustDataSaveDTOS);// 调整数据 List adjustDataList reportAdjustBillSaveDTOS.add(reportAdjustBillSaveDTO); @@ -172,7 +181,7 @@ public class PlanningService { reportAdjustBillBatchSaveResDTO.getSuccessSize();// 成功写入的调整单据总数 reportAdjustBillBatchSaveResDTO.getFailSize();// 失败写入的调整单据总数 List adjustBillNoList = reportAdjustBillBatchSaveResDTO.getAdjustBillNoList();// 调整单据编号列表 - logger.info("是否成功:{}\n消息列表:{}\n反序列化对象:{}", + logger.info("计划调整是否成功:{}\n消息列表:{}\n反序列化对象:{}", responseObject.isSuccess(), responseObject.getMessage(), responseObject.getData()); if (responseObject.isSuccess()) { logger.info("调整单据编号列表:{}", adjustBillNoList); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java index 4b71b1f..93d57b5 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java @@ -1,5 +1,6 @@ package shkd.sys.sys.plugin.api; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.logging.Log; @@ -79,16 +80,14 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali jsonObject.getString("adjustReason");// 调整原因 jsonObject.getString("orgCode");// 编报主体 jsonObject.getString("periodCode");// 编报期间 - jsonObject.getString("subjectCode");// 计划科目 jsonObject.getString("entryPeriodCode");// 主维度数据分录期间code - jsonObject.getString("amount");// 金额 + jsonObject.getJSONArray("adjustProject");// 调整项目(计划科目 和 金额) FpmResponse fpmResponse = planAdjustment( jsonObject.getString("adjustReason"), jsonObject.getString("orgCode"), jsonObject.getString("periodCode"), - jsonObject.getString("subjectCode"), jsonObject.getString("entryPeriodCode"), - jsonObject.getString("amount") + jsonObject.getJSONArray("adjustProject") ); From caf8a6644624891bae4e482ac4af43f69268eeec Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Wed, 16 Jul 2025 16:31:57 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E8=B0=83=E6=95=B4=E6=8E=A8=E9=80=81=E4=BB=98=E6=AC=BE?= =?UTF-8?q?=E5=8D=95=E5=85=B3=E8=81=94=E7=A5=A8=E6=8D=AE=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=88=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97=EF=BC=89=20?= =?UTF-8?q?=E6=97=B6=E9=97=B4=EF=BC=9A2025-07-16=2016=EF=BC=9A31=20?= =?UTF-8?q?=E6=8F=90=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 --- .../plugin/operation/PaymentLinkNotesSave.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentLinkNotesSave.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentLinkNotesSave.java index ff84516..78fcc20 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentLinkNotesSave.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/PaymentLinkNotesSave.java @@ -52,17 +52,19 @@ public class PaymentLinkNotesSave extends AbstractOperationServicePlugIn impleme new QFilter("id", QCP.equals, dataEntity.getPkValue()).toArray()); DynamicObject fkDynamicObject = fkDynamicObjects[0]; + String billno = fkDynamicObjects[0].getString("billno"); + // 是否关联票据 String shkd_xkbillstatus = fkDynamicObject.getString("shkd_xkbillstatus"); if ("2".equals(shkd_xkbillstatus) || "3".equals(shkd_xkbillstatus) || "4".equals(shkd_xkbillstatus)) { - logger.info("付款单已关联票据,无需再关联"); + logger.info("付款单:{} 已关联票据,无需再关联", billno); return; } // 结算方式为空,则不处理 DynamicObject settletype = fkDynamicObject.getDynamicObject("settletype"); if (settletype == null) { - logger.info("结算方式为空,不处理"); + logger.info("付款单:{} 结算方式为空,不处理", billno); return; } String settletype_number = settletype.getString("number");// 结算方式 @@ -70,7 +72,7 @@ public class PaymentLinkNotesSave extends AbstractOperationServicePlugIn impleme // 结算号为空,则不处理 if (fkDynamicObject.get("settletnumber") == null || "".equals(fkDynamicObject.getString("settletnumber"))) { - logger.info("结算号为空,不处理"); + logger.info("付款单:{} 结算号为空,不处理", billno); return; } String settletnumber = fkDynamicObject.getString("settletnumber");//结算号 @@ -78,11 +80,12 @@ public class PaymentLinkNotesSave extends AbstractOperationServicePlugIn impleme // 来源系统 Object businessnameObj = fkDynamicObject.get("shkd_businessname"); if (businessnameObj == null || !"XK".equals(businessnameObj.toString())) { - logger.info("来源系统不是XK,不处理"); + logger.info("付款单:{} 来源系统不是XK,不处理", billno); return; } if ("JSFS06、JSFS07、JSFS19、JSFS20".contains(settletype_number)) { + logger.info("付款单:{} → 进入应付票据关联关系处理", billno); DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_payablebill", "id," + "draftbillno,releatedcasbillentrys,releatedcasbillentrys.rel_billtype,releatedcasbillentrys.rel_billno," + "releatedcasbillentrys.rel_billid,releatedcasbillentrys.rel_bizdate,releatedcasbillentrys.rel_billamount," + @@ -140,9 +143,10 @@ public class PaymentLinkNotesSave extends AbstractOperationServicePlugIn impleme // 最后保存付款单 SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject}); + logger.info("付款单:{} → 应付票据:{}关联关系处理完成", billno, settletnumber); } } else if ("JSFS09".equals(settletype_number)) { - + logger.info("付款单:{} → 进入应收票据背书关联关系处理", billno); // 收票登记:cdm_receivablebill DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_receivablebill", "id," + "draftbillno,releatedcasbillentrys,releatedcasbillentrys.rel_billtype,releatedcasbillentrys.rel_billno," + @@ -196,6 +200,7 @@ public class PaymentLinkNotesSave extends AbstractOperationServicePlugIn impleme // 最后保存付款单 SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject}); + logger.info("付款单:{} → 应收票据:{}关联关系处理完成", billno, settletnumber); } } } From b1e2cc42a8631ee0dcaf5b04b848932acb5f7fa4 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Wed, 16 Jul 2025 16:33:59 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E8=B0=83=E6=95=B4=E4=BB=98=E6=AC=BE=E5=8D=95=E6=8E=A8?= =?UTF-8?q?=E9=80=81API=E6=89=A9=E5=B1=95=E6=8E=A5=E5=8F=A3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=88=E5=8E=BB=E9=99=A4.toString=EF=BC=8C=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E7=A9=BA=E6=8C=87=E9=92=88=E5=BC=82=E5=B8=B8=EF=BC=89?= =?UTF-8?q?=20=E6=97=B6=E9=97=B4=EF=BC=9A2025-07-16=2016=EF=BC=9A33=20?= =?UTF-8?q?=E6=8F=90=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/PayBillApiSavePlugin.java | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java index 21a08e0..5dc30c5 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java @@ -488,16 +488,13 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { if ("bd_supplier".equals(payeetype)) { logger.info("收款人类型 → 供应商"); Map societycreditcode = new HashMap<>(); - societycreditcode.put("societycreditcode", map.get("payeenumber").toString()); + societycreditcode.put("societycreditcode", map.get("payeenumber")); map.put("shkd_supplier", societycreditcode); logger.info("收款人ID:{}", map.get("payeenumber")); DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id," + - "number,name,societycreditcode,shkd_xknumber,entry_bank,entry_bank.bankaccount,entry_bank.accountname," + - "entry_bank.bank", - new QFilter("societycreditcode", QCP.equals, map.get("payeenumber").toString()) - .or("shkd_xknumber", QCP.equals, map.get("payeenumber").toString()) - .or("name", QCP.equals, map.get("payeename").toString()).toArray()); + "number,name,societycreditcode,shkd_xknumber,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", + new QFilter("societycreditcode", QCP.equals, map.get("payeenumber")).toArray()); if (objects.length > 0) { DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank"); @@ -512,11 +509,13 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { } else if ("bd_customer".equals(payeetype)) { logger.info("收款人类型 → 客户"); Map societycreditcode = new HashMap<>(); - societycreditcode.put("societycreditcode", map.get("payeenumber").toString()); + societycreditcode.put("societycreditcode", map.get("payeenumber")); map.put("shkd_customer", societycreditcode); logger.info("收款人ID:{}", map.get("payeenumber")); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payeenumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), + "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", + new QFilter("societycreditcode", QCP.equals, map.get("payeenumber")).toArray()); if (objects.length > 0) { DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank"); @@ -530,10 +529,10 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { } else if ("bos_user".equals(payeetype)) { logger.info("收款人类型 → 人员"); Map user_number = new HashMap<>(); - user_number.put("number", map.get("payeenumber").toString()); + user_number.put("number", map.get("payeenumber")); logger.info("收款人编码:{}", map.get("payeenumber")); map.put("shkd_user", user_number); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("number", QCP.equals, map.get("payeenumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("number", QCP.equals, map.get("payeenumber")).toArray()); logger.info("人员查询,通过人员工号查对应的人员数据长度:{}", objects.length); if (objects.length > 0) { // 收款人编码 @@ -543,10 +542,10 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { } } else if ("bos_org".equals(payeetype)) { Map number = new HashMap<>(); - number.put("number", map.get("payeenumber").toString()); + number.put("number", map.get("payeenumber")); map.put("shkd_org", number); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber")).toArray()); if (objects.length > 0) { // 收款人编码 map.put("payeenumber", objects[0].getString("number")); @@ -630,10 +629,10 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { map.put(fieldName2, payerbank); Map number = new HashMap<>(); - number.put("number", map.get("payeenumber").toString()); + number.put("number", map.get("payeenumber")); map.put("shkd_org", number); - DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber")).toArray()); if (objects.length > 0) { // 收款人编码 map.put("payeenumber", objects[0].getString("number")); @@ -716,10 +715,10 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { map.put(fieldName2, payerbank); Map number = new HashMap<>(); - number.put("number", map.get("payeenumber").toString()); + number.put("number", map.get("payeenumber")); map.put("shkd_org", number); - DynamicObject[] objects = BusinessDataServiceHelper.load("bos_org", "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber").toString()).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load("bos_org", "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber")).toArray()); if (objects.length > 0) { logger.info("收款人查询长度 → " + objects.length); // 收款人ID From 50f1a56d7be17259f661a59d89e8cd879c767f8f Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Wed, 16 Jul 2025 18:19:47 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E8=B0=83=E6=95=B4=E6=94=B6=E5=BC=80=E7=A5=A8=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=E6=8E=A8=E9=80=81API=E6=89=A9=E5=B1=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BB=A3=E7=A0=81=EF=BC=88=E5=8D=95=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=89=BF=E5=85=91=E4=BA=BA=E5=88=A4=E6=96=AD?= =?UTF-8?q?=EF=BC=89=20=E6=97=B6=E9=97=B4=EF=BC=9A2025-07-16=2018=EF=BC=9A?= =?UTF-8?q?19=20=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=82=B9=E6=B1=9F?= =?UTF-8?q?=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/api/TicketRegistration.java | 174 +++++++++++++++++- 1 file changed, 173 insertions(+), 1 deletion(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java index eba1b58..f435f01 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java @@ -1,7 +1,6 @@ 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; @@ -67,6 +66,63 @@ public class TicketRegistration implements Serializable, ApiSavePlugin { societycreditcode.put("number", objects[0].getString("number")); map.put("deliver", societycreditcode); } + + // 票据类型编码 + Map draftbilltype = (Map) map.get("draftbilltype"); + String draftbilltype_number = draftbilltype.get("number").toString(); + + Map billtype = new HashMap<>(); + + switch (draftbilltype_number) { + //银行承兑汇票 + case "101": + case "102": + billtype.put("number", "cdm_recbill_bank_BT_S"); + + DynamicObject[] bd_bebank = BusinessDataServiceHelper.load("bd_bebank", "id,number,name", new QFilter("number", QCP.equals, map.get("acceptername")).toArray()); + if (bd_bebank.length > 0) { + map.put("acceptername", bd_bebank[0].getString("name")); + } else { + logger.info("进入收票登记 → 票据号:{},星空推送联行号:{},未查到司库行名行号", map.get("draftbillno"), map.get("acceptername")); + } + + Map accepterbebank = new HashMap<>(); + accepterbebank.put("number", map.get("acceptername")); + map.put("accepterbebank", accepterbebank); + break; + //商业承兑汇票 + case "103": + case "104": + case "CDMT-005D63A9": + case "CDMT-08B7B711": + case "CDMT-16FEE117": + case "CDMT-23C7A4D1": + case "CDMT-491D50C5": + case "CDMT-4980CF6D": + case "CDMT-550FDEAC": + case "CDMT-5CD7302F": + case "CDMT-6B2CEDA4": + case "CDMT-8C2B298B": + case "CDMT-A452A1B3": + case "CDMT-A773567D": + case "CDMT-C16F2F43": + case "CDMT-D5D6C225": + case "CDMT-DF3B089B": + case "CDMT-F8D0D70F": + case "CDMT-FE92FDAF": + billtype.put("number", "cdm_recbill_business_BT_S"); + break; + //银行本票 + case "106": + billtype.put("number", "cdm_recbill_check_BT_S"); + break; + //支票 + case "105": + case "CDMT-F7ABAB34": + billtype.put("number", "cdm_recbill_promissory_BT_S"); + break; + } + map.put("billtype", billtype); } if (map.get("receiver") != null) {//receiver_number @@ -100,6 +156,122 @@ public class TicketRegistration implements Serializable, ApiSavePlugin { societycreditcode.put("number", objects[0].getString("number")); map.put("receiver", societycreditcode); } + + // 票据类型编码 + Map draftbilltype = (Map) map.get("draftbilltype"); + String draftbilltype_number = draftbilltype.get("number").toString(); + + Map billtype = new HashMap<>(); + + // 承兑人全称.编码(合作金融机构)accepterfinorg_number + Map accepterfinorg; + + // 承兑人全称.星空组织编码(组织)acceptercompany_shkd_xkorgnumber + Map acceptercompany; + + switch (draftbilltype_number) { + //银行承兑汇票 + case "101": + billtype.put("number", "cdm_paybill_bank_BT_S"); + + accepterfinorg = (Map) map.get("accepterfinorg"); + if (accepterfinorg != null && accepterfinorg.get("number") != null) { + String accepterfinorg_number = accepterfinorg.get("number").toString(); + + DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,name", new QFilter("number", QCP.equals, accepterfinorg_number).toArray()); + if (bd_finorginfo.length > 0) { + map.put("acceptername", bd_finorginfo[0].getString("name")); + } else { + logger.info("进入开票登记 → 票据号:{},星空推送联行号:{},未查到司库行名行号", map.get("draftbillno"), accepterfinorg_number); + } + } else { + logger.info("进入开票登记 → 票据号:{},星空未推送合作金融机构联行号", map.get("draftbillno")); + } + break; + + //银行承兑汇票-电票 + case "102": + billtype.put("number", "cdm_paybill_bank_elect_BT_S"); + + accepterfinorg = (Map) map.get("accepterfinorg"); + if (accepterfinorg != null && accepterfinorg.get("number") != null) { + String accepterfinorg_number = accepterfinorg.get("number").toString(); + DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,name", new QFilter("number", QCP.equals, accepterfinorg_number).toArray()); + if (bd_finorginfo.length > 0) { + map.put("acceptername", bd_finorginfo[0].getString("name")); + } else { + logger.info("进入开票登记 → 票据号:{},星空推送联行号:{},未查到司库行名行号", map.get("draftbillno"), accepterfinorg_number); + } + } else { + logger.info("进入开票登记 → 票据号:{},星空未推送合作金融机构联行号", map.get("draftbillno")); + } + break; + + //商业承兑汇票 纸票 + case "103": + billtype.put("number", "cdm_paybill_business_BT_S"); + + acceptercompany = (Map) map.get("acceptercompany"); + if (acceptercompany != null && acceptercompany.get("shkd_xkorgnumber") != null) { + String acceptercompany_shkd_xkorgnumber = acceptercompany.get("shkd_xkorgnumber").toString(); + DynamicObject[] bos_adminorg = BusinessDataServiceHelper.load("bos_adminorg", "id,number,name,shkd_xkorgnumber", new QFilter("shkd_xkorgnumber", QCP.equals, acceptercompany_shkd_xkorgnumber).toArray()); + if (bos_adminorg.length > 0) { + map.put("acceptername", bos_adminorg[0].getString("name")); + } else { + logger.info("进入开票登记 → 票据号:{},星空推送星空组织编码:{},未查到司库行名行号", map.get("draftbillno"), acceptercompany_shkd_xkorgnumber); + } + } else { + logger.info("进入开票登记 → 票据号:{},星空未推送星空组织编码", map.get("draftbillno")); + } + break; + + //银行本票 + case "106": + billtype.put("number", "cdm_paybill_check_BT_S"); + break; + + //支票 + case "105": + case "CDMT-F7ABAB34": + billtype.put("number", "cdm_paybill_promissory_BT_S"); + break; + + //商业承兑电票 + case "104": + case "CDMT-005D63A9": + case "CDMT-08B7B711": + case "CDMT-16FEE117": + case "CDMT-23C7A4D1": + case "CDMT-491D50C5": + case "CDMT-4980CF6D": + case "CDMT-550FDEAC": + case "CDMT-5CD7302F": + case "CDMT-6B2CEDA4": + case "CDMT-8C2B298B": + case "CDMT-A452A1B3": + case "CDMT-A773567D": + case "CDMT-C16F2F43": + case "CDMT-D5D6C225": + case "CDMT-DF3B089B": + case "CDMT-F8D0D70F": + case "CDMT-FE92FDAF": + billtype.put("number", "cdm_paybill_business_elec_BT_S"); + + acceptercompany = (Map) map.get("acceptercompany"); + if (acceptercompany != null && acceptercompany.get("shkd_xkorgnumber") != null) { + String acceptercompany_shkd_xkorgnumber = acceptercompany.get("shkd_xkorgnumber").toString(); + DynamicObject[] bos_adminorg = BusinessDataServiceHelper.load("bos_adminorg", "id,number,name,shkd_xkorgnumber", new QFilter("shkd_xkorgnumber", QCP.equals, acceptercompany_shkd_xkorgnumber).toArray()); + if (bos_adminorg.length > 0) { + map.put("acceptername", bos_adminorg[0].getString("name")); + } else { + logger.info("进入开票登记 → 票据号:{},星空推送星空组织编码:{},未查到司库行名行号", map.get("draftbillno"), acceptercompany_shkd_xkorgnumber); + } + } else { + logger.info("进入开票登记 → 票据号:{},星空未推送星空组织编码", map.get("draftbillno")); + } + break; + } + map.put("billtype", billtype); } } else if ("bos_org".equals(payeetype)) {