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/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java index 17cf849..aa61508 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/IssuerNotMandatoryPlugin.java @@ -4,16 +4,10 @@ import kd.bos.bill.AbstractBillPlugIn; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.events.PropertyChangedArgs; -import kd.bos.form.control.Control; -import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.operate.EntryGridOperate; -import kd.bos.form.operate.formop.NewEntry; -import kd.bos.form.plugin.AbstractFormPlugin; import kd.sdk.plugin.Plugin; -import java.util.EventObject; - /** * 设置 债券发行计划界面 发行人账号非必填 * 单据界面插件 diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java index a4d2c01..70f54b6 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java @@ -36,8 +36,9 @@ public class LoancontractF7Plugin extends AbstractBillPlugIn implements Plugin, e_underwriter.addBeforeF7SelectListener(this); //监听占用注册额度F7数据选择 BasedataEdit shkd_occupybondlimit; - shkd_occupybondlimit = view.getControl("shkd_occupybondlimit"); - if(shkd_occupybondlimit == null){ + try{ + shkd_occupybondlimit = view.getControl("shkd_occupybondlimit"); + }catch (Exception ept){ shkd_occupybondlimit = view.getControl("occupybondlimit"); } shkd_occupybondlimit.addBeforeF7SelectListener(this); @@ -132,13 +133,18 @@ public class LoancontractF7Plugin extends AbstractBillPlugIn implements Plugin, } if("ratingagency".equals(name)){ //注册额度 - DynamicObject occupybondlimit = (DynamicObject)this.getModel().getValue("shkd_occupybondlimit"); - if(occupybondlimit == null){ - this.getView().showTipNotification("请先选择占用注册额度。"); - evt.setCancel(true); - return; + //债券发行:occupybondlimit 债券发行计划:shkd_occupybondlimit + try { + shkd_bondlimit= (DynamicObject)this.getModel().getValue("occupybondlimit"); + }catch(Exception e){ + shkd_bondlimit= (DynamicObject)this.getModel().getValue("shkd_occupybondlimit"); + if(shkd_bondlimit == null){ + evt.setCancel(true); + this.getView().showTipNotification("请先选择占用注册额度。"); + return; + } } - Long occupybondlimitId = (Long) occupybondlimit.getPkValue(); + Long occupybondlimitId = (Long) shkd_bondlimit.getPkValue(); //找到注册额度中的招标遴选ID DynamicObject intermediaryselectID = BusinessDataServiceHelper.loadSingle(occupybondlimitId,"bdim_bond_limit", "shkd_intermediaryselect"); QFilter qFilter = new QFilter("billno", QCP.equals, intermediaryselectID.getString("shkd_intermediaryselect")); 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