From 91af2e9f5392e59008be0547349644beb62699bc Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Thu, 22 May 2025 15:41:34 +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=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=20=E6=97=B6=E9=97=B4?= =?UTF-8?q?=EF=BC=9A2025-05-21=2015=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/plugin/Exp/BalanceExpansion.java | 2 +- .../sys/sys/plugin/task/PushTaskPlugin.java | 156 +++++++++++------- .../main/resources/InfoSecConfig.properties | 0 3 files changed, 100 insertions(+), 58 deletions(-) create mode 100644 sys/shkd-sys-sys/src/main/resources/InfoSecConfig.properties diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java index 1090e14..46a2880 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java @@ -22,7 +22,7 @@ public class BalanceExpansion implements IFillBankBalance { JSONObject jsonObject = JSON.parseObject(balanceString); logger.info("bankBalance数据:{},balanceString数据:{}", bankBalance, jsonObject); Object balance = jsonObject.get("depositBalance"); - if (balance != null) { + if (balance != null && !"".equals(balance)) { bankBalance.set("shkd_depositbalance", new BigDecimal(String.valueOf(balance))); } else { bankBalance.set("shkd_depositbalance", BigDecimal.ZERO); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java index e59c72f..8c7bb83 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java @@ -1,5 +1,6 @@ package shkd.sys.sys.plugin.task; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.kingdee.bos.qing.util.DateUtils; import com.kingdee.bos.webapi.sdk.K3CloudApi; @@ -175,14 +176,12 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { break; /** * 推送星空电子回单 - * 星空推送不会有影响吧? */ case "bei_xkfile": K3CloudApi k3CloudApi = new K3CloudApi(); - ArrayList paymentObjects = new ArrayList<>(); //所有存在电子回单的付款单 - ArrayList receivableObjects = new ArrayList<>(); //所有存在电子回单的收款单 - ArrayList receiptNos = new ArrayList<>(); - ArrayList orgIds = new ArrayList(); + ArrayList paymentObjects = new ArrayList<>(); //所有符合条件存在电子回单的付款单 + ArrayList receivableObjects = new ArrayList<>(); //所有符合条件存在电子回单的收款单 + ArrayList orgIds = new ArrayList<>(); orgIds.add(2122671180270829568L);//1 orgIds.add(2122671723777131520L);//2 orgIds.add(2122671728936125440L);//3 @@ -216,39 +215,58 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { if (!details.isEmpty()) { // 交易明细查询的电子回单关联标记字段 if (details.get(0).get("receiptno") != null) { - paymentObjects.add(dynamicObject);// 付款处理单据收集 /** * 1、第一步 通过查询到的符合条件的收款或者付款单单据编号查到对应星空的对应单据的单据ID和单据编码 * 2、推送电子回单至星空对应单据 */ + // 查 + DynamicObject[] objects = BusinessDataServiceHelper.load("shkd_apimapping", "id,billno," + + "shkd_name,shkd_sourcenumber,shkd_domainname,shkd_appkey,shkd_appsecret,shkd_token,shkd_url,shkd_bodytype," + + "shkd_sourcebill,shkd_targetsystem,entryentity,entryentity.shkd_tarfield,entryentity.shkd_tartier," + + "entryentity.shkd_tartype,entryentity.shkd_parentfield,entryentity.shkd_soufield,entryentity.shkd_defaultdata," + + "entryentity.shkd_required,entryentity.shkd_remarks,shkd_submiturl,shkd_xkusername,shkd_xkappid,shkd_xkacctid," + + "shkd_xkappsec,shkd_xkserverurl", + new QFilter("shkd_targetsystem", QCP.equals, "XK").toArray()); + String billNumber = dynamicObject.getString("billno"); + HashMap resultMap = getBillObject(objects[0], dynamicObject.getDataEntityType().getName(), billNumber); + if ((boolean) resultMap.get("result")) { + // 推 + DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray()); + DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName()); + IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj); + List errMsgList = new ArrayList<>(); + DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," + + "fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," + + "bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, dynamicObject.getPkValue())}); + String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList); + Path path = Paths.get(dynamicObject.getString("filepath")); + String upfileName = path.getFileName().toString(); + logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", pdfUrl); - DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray()); - DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName()); - IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj); - List errMsgList = new ArrayList<>(); - DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," + - "fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," + - "bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, dynamicObject.getPkValue())}); - String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList); - Path path = Paths.get(dynamicObject.getString("filepath")); - String upfileName = path.getFileName().toString(); - logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", pdfUrl); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("FileName", upfileName);// 文件名 + jsonObject.put("FormId", "AP_PAYBILL");// 表单id(付款单:AP_PAYBILL) + jsonObject.put("IsLast", true);// 是否最后一次上传 + jsonObject.put("InterId", "单据内码");// 单据内码 + jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码 + jsonObject.put("AliasFileName", upfileName);// 附件别名 + jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("FileName", upfileName);// 文件名 - jsonObject.put("FormId", "AP_PAYBILL");// 表单id(付款单:AP_PAYBILL) - jsonObject.put("IsLast", true);// 是否最后一次上传 - jsonObject.put("InterId", "单据内码");// 单据内码 - jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码 - jsonObject.put("AliasFileName", upfileName);// 附件别名 - jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串 - - String uploadAttachmentResult = null; - try { - uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString()); - logger.info("付款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果:" + uploadAttachmentResult); - } catch (Exception e) { - throw new RuntimeException(e); + String uploadAttachmentResult; + try { + uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString()); + JSONObject resultJson = JSON.parseObject(uploadAttachmentResult); + JSONObject Result = resultJson.getJSONObject("Result"); + JSONObject ResponseStatus = Result.getJSONObject("ResponseStatus"); + Boolean isSuccess = ResponseStatus.getBoolean("IsSuccess"); + if (isSuccess) { + dynamicObject.set("shkd_xkfilestatus", "已推送"); + paymentObjects.add(dynamicObject);// 付款处理单据收集 + logger.info("付款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果:" + uploadAttachmentResult); + } + } catch (Exception e) { + throw new RuntimeException(e); + } } } } @@ -278,38 +296,62 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { * 1、第一步 通过查询到的符合条件的收款或者付款单单据编号查到对应星空的对应单据的单据ID和单据编码 * 2、推送电子回单至星空对应单据 */ - DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray()); - DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName()); - IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj); - List errMsgList = new ArrayList<>(); - DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," + - "fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," + - "bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, dynamicObject.getPkValue())}); - String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList); - Path path = Paths.get(dynamicObject.getString("filepath")); - String upfileName = path.getFileName().toString(); - logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", pdfUrl); + // 查 + DynamicObject[] objects = BusinessDataServiceHelper.load("shkd_apimapping", "id,billno," + + "shkd_name,shkd_sourcenumber,shkd_domainname,shkd_appkey,shkd_appsecret,shkd_token,shkd_url,shkd_bodytype," + + "shkd_sourcebill,shkd_targetsystem,entryentity,entryentity.shkd_tarfield,entryentity.shkd_tartier," + + "entryentity.shkd_tartype,entryentity.shkd_parentfield,entryentity.shkd_soufield,entryentity.shkd_defaultdata," + + "entryentity.shkd_required,entryentity.shkd_remarks,shkd_submiturl,shkd_xkusername,shkd_xkappid,shkd_xkacctid," + + "shkd_xkappsec,shkd_xkserverurl", + new QFilter("shkd_targetsystem", QCP.equals, "XK").toArray()); + String billNumber = dynamicObject.getString("billno"); + HashMap resultMap = getBillObject(objects[0], dynamicObject.getDataEntityType().getName(), billNumber); + if ((boolean) resultMap.get("result")) { + // 推 + DynamicObject[] dynamicObjects1 = BusinessDataServiceHelper.load("t_bei_elecreceipt", "id,receiptno", new QFilter("receiptno", QCP.equals, details.get(0).getString("receiptno")).toArray()); + DynamicObject dynamicObjectObj = BusinessDataServiceHelper.loadSingle(dynamicObjects1[0].getPkValue(), dynamicObjects1[0].getDynamicObjectType().getName()); + IFormView viewByDynamicObj = createViewByDynamicObj(dynamicObjectObj); + List errMsgList = new ArrayList<>(); + DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," + + "fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," + + "bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, dynamicObject.getPkValue())}); + String pdfUrl = getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList); + Path path = Paths.get(dynamicObject.getString("filepath")); + String upfileName = path.getFileName().toString(); + logger.info("电子回单查询 → 电子回单附件推送接口 → 获取pdf地址:{}", pdfUrl); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("FileName", upfileName);// 文件名 - jsonObject.put("FormId", "AP_PAYBILL");// 表单id(收款单:) - jsonObject.put("IsLast", true);// 是否最后一次上传 - jsonObject.put("InterId", "单据内码");// 单据内码 - jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码 - jsonObject.put("AliasFileName", upfileName);// 附件别名 - jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("FileName", upfileName);// 文件名 + jsonObject.put("FormId", "AP_PAYBILL");// 表单id(收款单:) + jsonObject.put("IsLast", true);// 是否最后一次上传 + jsonObject.put("InterId", "单据内码");// 单据内码 + jsonObject.put("BillNO", dynamicObject.getString("billno"));// 单据编码 + jsonObject.put("AliasFileName", upfileName);// 附件别名 + jsonObject.put("SendByte", attachmentBase64(pdfUrl));// 文件字节数组转base64后的字符串 - String uploadAttachmentResult = null; - try { - uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString()); - logger.info("收款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果:" + uploadAttachmentResult); - } catch (Exception e) { - throw new RuntimeException(e); + String uploadAttachmentResult; + try { + uploadAttachmentResult = k3CloudApi.attachmentUpload(jsonObject.toString()); + + JSONObject resultJson = JSON.parseObject(uploadAttachmentResult); + JSONObject Result = resultJson.getJSONObject("Result"); + JSONObject ResponseStatus = Result.getJSONObject("ResponseStatus"); + Boolean isSuccess = ResponseStatus.getBoolean("IsSuccess"); + if (isSuccess) { + dynamicObject.set("shkd_xkfilestatus", "已推送"); + receivableObjects.add(dynamicObject);// 收款处理单据收集 + logger.info("收款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果:" + uploadAttachmentResult); + } + } catch (Exception e) { + throw new RuntimeException(e); + } } } } } }); + SaveServiceHelper.save(paymentObjects.toArray(new DynamicObject[0])); + SaveServiceHelper.save(receivableObjects.toArray(new DynamicObject[0])); break; default: } diff --git a/sys/shkd-sys-sys/src/main/resources/InfoSecConfig.properties b/sys/shkd-sys-sys/src/main/resources/InfoSecConfig.properties new file mode 100644 index 0000000..e69de29