parent
1a235ad038
commit
af88b8c128
|
@ -74,7 +74,7 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
if ("shkd_generatejson".equals(itemKey)) {
|
if ("shkd_generatejson".equals(itemKey)) {
|
||||||
DynamicObject billObject = getDynamicObject(dataEntity);
|
DynamicObject billObject = getDynamicObject(dataEntity);
|
||||||
if (billObject == null) {
|
if (billObject == null) {
|
||||||
this.getView().showTipNotification("未查询到具体推送单据");
|
this.getView().showTipNotification("未查询到具体推送单据或单据不符合过滤要求");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String requestBody = ApiService.assembleRequestBody(billObject, dataEntity);
|
String requestBody = ApiService.assembleRequestBody(billObject, dataEntity);
|
||||||
|
@ -123,7 +123,7 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
String billNumber = dataEntity.getString("shkd_sourcenumber");
|
String billNumber = dataEntity.getString("shkd_sourcenumber");
|
||||||
logger.info("获取推送单据编码 → billNumber:{}", billNumber);
|
logger.info("获取推送单据编码 → billNumber:{}", billNumber);
|
||||||
HashMap<String, Object> map = getBillObject(dataEntity, billMark, billNumber);
|
HashMap<String, Object> map = getBillObject(dataEntity, billMark, billNumber);
|
||||||
this.getView().showTipNotification("查找到单据 → 星空单据编码:" + map.get("billNumber") + ",星空单据ID:" + map.get("billId"));
|
this.getView().showTipNotification("查找到单据 → 星空单据编码:" + map.get("billNumber") + ",星空单据ID:" + map.get("billId"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 推送星空单据附件
|
// 推送星空单据附件
|
||||||
|
@ -266,16 +266,75 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
break;
|
break;
|
||||||
// 电子回单查询
|
// 电子回单查询
|
||||||
case "bei_elecreceipt":
|
case "bei_elecreceipt":
|
||||||
|
// 获取多选基础资料银行类别(推送银行类别)
|
||||||
|
ArrayList<String> bankTypeArray = new ArrayList<>();
|
||||||
|
DynamicObjectCollection bankTypeArr = dataEntity.getDynamicObjectCollection("shkd_banktype");
|
||||||
|
for (DynamicObject bankTypeData : bankTypeArr) {
|
||||||
|
DynamicObject bankType = bankTypeData.getDynamicObject("fbasedataid");//银行类别基础资料数据包
|
||||||
|
if (bankType != null) {
|
||||||
|
String bankTypeName = bankType.getString("name");//银行类别名称
|
||||||
|
bankTypeArray.add(bankTypeName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取多选基础资料业务单元(推送组织)
|
||||||
|
ArrayList<Long> orgArray = new ArrayList<>();
|
||||||
|
DynamicObjectCollection orgArr = dataEntity.getDynamicObjectCollection("shkd_orgs");
|
||||||
|
for (DynamicObject orgData : orgArr) {
|
||||||
|
orgArray.add(orgData.getLong("fbasedataid_Id"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取推送开始时间
|
||||||
|
Date shkdStartdate = dataEntity.getDate("shkd_startdate");
|
||||||
|
|
||||||
DynamicObject[] objects4 = BusinessDataServiceHelper.load("bei_elecreceipt",
|
DynamicObject[] objects4 = BusinessDataServiceHelper.load("bei_elecreceipt",
|
||||||
|
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description," +
|
||||||
|
"company,oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount," +
|
||||||
|
"creditamount,detailid,uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||||
|
"filepath,receiptno,ismatch"
|
||||||
|
, new QFilter("bizdate", QCP.large_equals, shkdStartdate)
|
||||||
|
.and("ismatch", QCP.equals, "1")
|
||||||
|
.and("shkd_pushstatus", QCP.not_equals, "已推送")
|
||||||
|
.and("company", QCP.in, orgArray)
|
||||||
|
.and("billno", QCP.equals, billNumber).toArray());
|
||||||
|
|
||||||
|
if (objects4 == null || objects4.length == 0) {
|
||||||
|
logger.info("无符合条件的推送数据!");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//开户银行(银行账户)
|
||||||
|
DynamicObject accountbank = objects4[0].getDynamicObject("accountbank");
|
||||||
|
|
||||||
|
//开户行(合作金融机构)
|
||||||
|
DynamicObject bank = accountbank.getDynamicObject("bank");
|
||||||
|
|
||||||
|
String bank_number = bank.getString("number");
|
||||||
|
DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray());
|
||||||
|
|
||||||
|
//银行类别
|
||||||
|
DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate");
|
||||||
|
|
||||||
|
String bank_name = bank_cate.getString("name");
|
||||||
|
|
||||||
|
if (!bankTypeArray.contains(bank_name)) {
|
||||||
|
logger.info("银行类别不匹配,不推送!");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
billObject = objects4[0];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* DynamicObject[] objects4 = BusinessDataServiceHelper.load("bei_elecreceipt",
|
||||||
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description,company," +
|
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description,company," +
|
||||||
"oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
|
"oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
|
||||||
"uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno,ismatch"
|
"uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno,ismatch"
|
||||||
, new QFilter("billno", QCP.equals, billNumber).toArray());
|
, new QFilter("billno", QCP.equals, billNumber).toArray());
|
||||||
billObject = objects4[0];
|
billObject = objects4[0];
|
||||||
logger.info("获取银企交易明细查询推送对象 → billObject:{}", billObject);
|
logger.info("获取银企交易明细查询推送对象 → billObject:{}", billObject);*/
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
billObject = null;
|
return null;
|
||||||
}
|
}
|
||||||
return billObject;
|
return billObject;
|
||||||
}
|
}
|
||||||
|
|
|
@ -171,13 +171,62 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
* 星空推送不会有影响吧?
|
* 星空推送不会有影响吧?
|
||||||
*/
|
*/
|
||||||
case "bei_elecreceipt":
|
case "bei_elecreceipt":
|
||||||
DynamicObject[] elecreceiptArays = BusinessDataServiceHelper.load("bei_elecreceipt", "id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description,company,oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid,uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno,ismatch"
|
DynamicObject[] ApiMappingArray = BusinessDataServiceHelper.load("shkd_apimapping", "id,billno," +
|
||||||
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth(3))
|
"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_banktype,shkd_startdate,shkd_orgs",
|
||||||
|
new QFilter("shkd_sourcebill", QCP.equals, "bei_elecreceipt").and(
|
||||||
|
new QFilter("shkd_targetsystem", QCP.equals, "BIP")).toArray());
|
||||||
|
|
||||||
|
DynamicObject ApiMapping = ApiMappingArray[0];
|
||||||
|
|
||||||
|
// 获取多选基础资料银行类别(推送银行类别)
|
||||||
|
ArrayList<String> bankTypeArray = new ArrayList<>();
|
||||||
|
DynamicObjectCollection bankTypeArr = ApiMapping.getDynamicObjectCollection("shkd_banktype");
|
||||||
|
for (DynamicObject bankTypeData : bankTypeArr) {
|
||||||
|
DynamicObject bankType = bankTypeData.getDynamicObject("fbasedataid");//银行类别基础资料数据包
|
||||||
|
if (bankType != null) {
|
||||||
|
String bankTypeName = bankType.getString("name");//银行类别名称
|
||||||
|
bankTypeArray.add(bankTypeName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取多选基础资料业务单元(推送组织)
|
||||||
|
ArrayList<Long> orgArray = new ArrayList<>();
|
||||||
|
DynamicObjectCollection orgArr = ApiMapping.getDynamicObjectCollection("shkd_orgs");
|
||||||
|
for (DynamicObject orgData : orgArr) {
|
||||||
|
orgArray.add(orgData.getLong("fbasedataid_Id"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取推送开始时间
|
||||||
|
Date shkdStartdate = ApiMapping.getDate("shkd_startdate");
|
||||||
|
|
||||||
|
DynamicObject[] elecreceiptArays = BusinessDataServiceHelper.load("bei_elecreceipt",
|
||||||
|
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description," +
|
||||||
|
"company,oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount," +
|
||||||
|
"creditamount,detailid,uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||||
|
"filepath,receiptno,ismatch"
|
||||||
|
, new QFilter("bizdate", QCP.large_equals, shkdStartdate)
|
||||||
.and("ismatch", QCP.equals, "1")
|
.and("ismatch", QCP.equals, "1")
|
||||||
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
|
.and("shkd_pushstatus", QCP.not_equals, "已推送")
|
||||||
|
.and("company", QCP.in, orgArray).toArray());
|
||||||
Arrays.stream(elecreceiptArays).forEach(dynamicObject -> {
|
Arrays.stream(elecreceiptArays).forEach(dynamicObject -> {
|
||||||
DynamicObject companys = dynamicObject.getDynamicObject("company");
|
//开户银行(银行账户)
|
||||||
if (("SIG1040100、SIG1040901、SIG1040201、SIG1090000、SIG1040700、SIG000101135、SIG1040600、SIG1040300、SIG000100079、SIG000003001、SIG1041000、SIG1040802、SIG000101558、SIG1040808、SIG1040804、SIG1040803、SIG1040801、SIG1040400、SIG104010101、SIG104010102、SIG1040202、SIG1040203、SIG1040204、SIG1040902、SIG000101822、SIG000101799").contains(companys.getString("number"))) {
|
DynamicObject accountbank = dynamicObject.getDynamicObject("accountbank");
|
||||||
|
|
||||||
|
//开户行(合作金融机构)
|
||||||
|
DynamicObject bank = accountbank.getDynamicObject("bank");
|
||||||
|
|
||||||
|
String bank_number = bank.getString("number");
|
||||||
|
DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray());
|
||||||
|
|
||||||
|
//银行类别
|
||||||
|
DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate");
|
||||||
|
|
||||||
|
String bank_name = bank_cate.getString("name");
|
||||||
|
|
||||||
|
if (bankTypeArray.contains(bank_name)) {
|
||||||
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
|
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -235,7 +284,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
"entryentity.shkd_tartype,entryentity.shkd_parentfield,entryentity.shkd_soufield,entryentity.shkd_defaultdata," +
|
"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," +
|
"entryentity.shkd_required,entryentity.shkd_remarks,shkd_submiturl,shkd_xkusername,shkd_xkappid,shkd_xkacctid," +
|
||||||
"shkd_xkappsec,shkd_xkserverurl",
|
"shkd_xkappsec,shkd_xkserverurl",
|
||||||
new QFilter("shkd_targetsystem", QCP.equals, "XK").toArray());
|
new QFilter("shkd_targetsystem", QCP.equals, "XK").toArray());
|
||||||
String billNumber = dynamicObject.getString("billno");
|
String billNumber = dynamicObject.getString("billno");
|
||||||
HashMap<String, Object> resultMap = getBillObject(objects[0], dynamicObject.getDataEntityType().getName(), billNumber);
|
HashMap<String, Object> resultMap = getBillObject(objects[0], dynamicObject.getDataEntityType().getName(), billNumber);
|
||||||
if ((boolean) resultMap.get("result")) {
|
if ((boolean) resultMap.get("result")) {
|
||||||
|
@ -271,7 +320,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
||||||
paymentObjects.add(dynamicObject);// 付款处理单据收集
|
paymentObjects.add(dynamicObject);// 付款处理单据收集
|
||||||
logger.info("付款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果:" + uploadAttachmentResult);
|
logger.info("付款处理 → 电子回单推送星空,单据编码:" + dynamicObject.getString("billno") + "\n附件上传结果:" + uploadAttachmentResult);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
@ -349,7 +398,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
dynamicObject.set("shkd_xkfilestatus", "已推送");
|
||||||
receivableObjects.add(dynamicObject);// 收款处理单据收集
|
receivableObjects.add(dynamicObject);// 收款处理单据收集
|
||||||
logger.info("收款处理 → 电子回单推送星空,单据编码:"+ dynamicObject.getString("billno") +"\n附件上传结果:" + uploadAttachmentResult);
|
logger.info("收款处理 → 电子回单推送星空,单据编码:" + dynamicObject.getString("billno") + "\n附件上传结果:" + uploadAttachmentResult);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
@ -390,6 +439,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取指定月份的第一天
|
* 获取指定月份的第一天
|
||||||
|
*
|
||||||
* @param month
|
* @param month
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@ -406,6 +456,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前月份的第一天
|
* 获取当前月份的第一天
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private static Date getAdjustedFirstDayOfCurrentMonth() {
|
private static Date getAdjustedFirstDayOfCurrentMonth() {
|
||||||
|
|
Loading…
Reference in New Issue