提交内容:整体代码更新

备注:整体代码更新(应收、应付API二开代码修改;银行流水电子回单定时任务代码修改)
提交人:邹江涛
This commit is contained in:
zoujiangtao 2025-03-18 09:23:06 +08:00
parent a4590b235a
commit 5d05698932
4 changed files with 161 additions and 31 deletions

View File

@ -59,6 +59,11 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
Object payeetype = map.get("payeetype");//如果是收款人类型 则为付款处理保存接口 Object payeetype = map.get("payeetype");//如果是收款人类型 则为付款处理保存接口
Object payertype = map.get("payertype");//如果是付款人类型 则为收款处理保存接口 Object payertype = map.get("payertype");//如果是付款人类型 则为收款处理保存接口
Object recorg = map.get("recorg");// 收款组织 财务应收单
Object payorg = map.get("payorg");// 付款组织 财务应付单
// 付款处理保存接口
if (payeetype != null) { if (payeetype != null) {
logger.info("进入付款处理单API"); logger.info("进入付款处理单API");
// 收款人ID // 收款人ID
@ -193,8 +198,12 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
} }
} }
// 收款处理保存接口
if (payertype != null) { if (payertype != null) {
// 付款人ID
fieldName1 = "payer"; fieldName1 = "payer";
// 收款银行.number
fieldName2 = "payeebank";
if ("BD_Supplier".equals(payertype)) { if ("BD_Supplier".equals(payertype)) {
payertype = "bd_supplier"; payertype = "bd_supplier";
@ -218,47 +227,128 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
map.put("payerformid", "other"); map.put("payerformid", "other");
} }
if ("bd_supplier".equals(payertype) || "bd_customer".equals(payertype)) { DynamicObject[] amAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number", new QFilter("number", QCP.equals, bankNumber).toArray());
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,number,name,societycreditcode", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray()); logger.info("收款账户,通过银行账号查对应的付款账户长度:{}", amAccountbanks.length);
Map<String, Object> payeebank = new HashMap<>();
if (amAccountbanks.length > 0) {
payeebank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number"));
}
logger.info("收款银行:{}", payeebank);
map.put(fieldName2, payeebank);
// 如果为供应商或者客户
if ("bd_supplier".equals(payeetype)) {
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("societycreditcode", map.get("payernumber").toString());
map.put("shkd_supplier", societycreditcode);
logger.info("付款供应商统一社会信用代码:{}", map.get("payernumber"));
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("payernumber").toString()).toArray());
if (objects.length > 0) { if (objects.length > 0) {
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
logger.info("dynamicObjectCollection{}", dynamicObjectCollection);
// 付款人编码
map.put("payernumber", objects[0].getString("number")); map.put("payernumber", objects[0].getString("number"));
// 付款人ID
map.put(fieldName1, objects[0].getPkValue());
//收款人编码 //收款人编码
objectNumber = objects[0].getString("number"); objectNumber = objects[0].getString("number");
} else { }
} else if ("bd_customer".equals(payeetype)) {
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("societycreditcode", map.get("payernumber").toString());
map.put("shkd_customer", societycreditcode);
logger.info("付款客户统一社会信用代码:{}", map.get("payernumber"));
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("payernumber").toString()).toArray());
if (objects.length > 0) {
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
logger.info("dynamicObjectCollection{}", dynamicObjectCollection);
// 付款人编码
map.put("payernumber", objects[0].getString("number"));
// 付款人ID
map.put(fieldName1, objects[0].getPkValue());
//收款人编码 //收款人编码
objectNumber = map.get("payernumber").toString(); objectNumber = objects[0].getString("number");
} }
} else { } else if ("bos_user".equals(payeetype)) {
//收款人编码 Map<String, Object> username = new HashMap<>();
objectNumber = map.get("payernumber").toString(); username.put("username", map.get("payernumber").toString());
} map.put("shkd_user", username);
objectType = payertype.toString(); DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payernumber").toString()).toArray());
if (!"other".equals(objectType)) { if (objects.length > 0) {
// 付款人编码
map.put("payernumber", objects[0].getString("number"));
// 付款人ID
map.put(fieldName1, objects[0].getPkValue());
// 付款人编码
objectNumber = objects[0].getString("number");
}
} else if ("bos_org".equals(payeetype)) {
Map<String, Object> number = new HashMap<>();
number.put("number", map.get("payernumber").toString());
map.put("shkd_org", number);
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payernumber").toString()).toArray());
Map<String, Object> accountbank = (Map<String, Object>) map.get("accountbank"); if (objects.length > 0) {
bankNumber = (String) accountbank.get("number"); // 收款人编码
logger.info("收款处理 → \nobjectType{}\nobjectNumber{}\nbankNumber:{}", objectType, objectNumber, bankNumber); map.put("payernumber", objects[0].getString("number"));
// 付款人ID
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load(objectType, "id,number", new QFilter("number", QCP.equals, objectNumber).toArray()); map.put(fieldName1, objects[0].getPkValue());
logger.info("dynamicObjects.length{}", dynamicObjects.length); //收款人编码
if (dynamicObjects.length > 0) { objectNumber = objects[0].getString("number");
map.put(fieldName1, dynamicObjects[0].getPkValue());
logger.info("dynamicObjects[0]{}", dynamicObjects[0]);
} }
} }
}
if ("bos_org".equals(objectType)) { // 财务应收保存接口 // 财务应付保存接口
fieldName2 = "payeebank"; if (recorg != null || payorg != null) {
DynamicObject[] amAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number", new QFilter("number", QCP.equals, bankNumber).toArray()); // 往来类型
logger.info("amAccountbanks.length:{}", amAccountbanks.length); String asstacttype = map.get("asstacttype").toString();
Map<String, Object> payeebank = new HashMap<>(); // 获取往来户
if (amAccountbanks.length > 0) { Map<String, Object> asstact = (Map<String, Object>) map.get("asstact");
payeebank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number")); // 如果为供应商或者客户
if ("bd_supplier".equals(asstacttype)) {
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("societycreditcode", asstact.get("number").toString());
map.put("shkd_supplier", societycreditcode);
logger.info("供应商统一社会信用代码:{}", asstact.get("number").toString());
DynamicObject[] objects = BusinessDataServiceHelper.load("bd_supplier", "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, asstact.get("number").toString()).toArray());
if (objects.length > 0) {
Map<String, Object> number = new HashMap<>();
number.put("number", objects[0].getString("number"));
map.put("asstact", number);
}
} else if ("bd_customer".equals(asstacttype)) {
Map<String, Object> societycreditcode = new HashMap<>();
societycreditcode.put("societycreditcode", asstact.get("number").toString());
map.put("shkd_customer", societycreditcode);
logger.info("客户统一社会信用代码:{}", asstact.get("number").toString());
DynamicObject[] objects = BusinessDataServiceHelper.load("bd_customer", "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, asstact.get("number").toString()).toArray());
if (objects.length > 0) {
Map<String, Object> number = new HashMap<>();
number.put("number", objects[0].getString("number"));
map.put("asstact", number);
}
} else if ("bos_user".equals(asstacttype)) {
Map<String, Object> username = new HashMap<>();
username.put("username", asstact.get("number").toString());
map.put("shkd_user", username);
logger.info("人员用户名:{}", asstact.get("number").toString());
DynamicObject[] objects = BusinessDataServiceHelper.load("bos_user", "id,name,number,username", new QFilter("username", QCP.equals, asstact.get("number").toString()).toArray());
if (objects.length > 0) {
Map<String, Object> number = new HashMap<>();
number.put("number", objects[0].getString("number"));
map.put("asstact", number);
} }
logger.info("payerbank:{}", payeebank);
map.put(fieldName2, payeebank);
} }
} }

View File

@ -248,7 +248,7 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
DynamicObject[] objects4 = BusinessDataServiceHelper.load("bei_elecreceipt", 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" "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);

View File

@ -0,0 +1,39 @@
package shkd.sys.sys.plugin.mob;
import kd.bos.bill.AbstractMobBillPlugIn;
import kd.bos.form.CloseCallBack;
import kd.bos.form.container.Container;
import kd.bos.form.control.Button;
import kd.bos.form.control.Toolbar;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.sdk.plugin.Plugin;
import shkd.sys.sys.plugin.form.ApiTestBillPlugin;
import java.util.EventObject;
import java.util.HashMap;
/**
* 单据界面插件(移动端)
*/
public class ApprovalMobBillPlugin extends AbstractMobBillPlugIn implements Plugin {
private static final Log logger = LogFactory.getLog(ApprovalMobBillPlugin.class);
@Override
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
super.afterDoOperation(afterDoOperationEventArgs);
logger.info("进入afterDoOperation方法");
if (afterDoOperationEventArgs.getOperateKey().equals("donothing")) {
logger.info("进入donothing");
// 插件代码
HashMap<String, Object> map = new HashMap<>();
map.put("method", "setLocalStorage");
HashMap<String, Object> args = new HashMap<>();
args.put("key", "123");
args.put("value", "456");
map.put("args", args);
this.getView().executeClientCommand("callAPPApi", map);
}
}
}

View File

@ -171,8 +171,9 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
DynamicObject[] elecreceiptArays = BusinessDataServiceHelper.load("bei_elecreceipt", DynamicObject[] elecreceiptArays = 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" "uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno,ismatch"
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth()) , new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth())
.and("ismatch", QCP.equals, "1")
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
Arrays.stream(elecreceiptArays).forEach(dynamicObject -> { Arrays.stream(elecreceiptArays).forEach(dynamicObject -> {
DynamicObject companys = dynamicObject.getDynamicObject("company"); DynamicObject companys = dynamicObject.getDynamicObject("company");