Merge remote-tracking branch 'origin/main' into main
This commit is contained in:
commit
d102769994
|
@ -79,13 +79,15 @@ public class TicketRegistration implements Serializable, ApiSavePlugin {
|
||||||
case "102":
|
case "102":
|
||||||
billtype.put("number", "cdm_recbill_bank_BT_S");
|
billtype.put("number", "cdm_recbill_bank_BT_S");
|
||||||
|
|
||||||
DynamicObject[] bd_bebank = BusinessDataServiceHelper.load("bd_bebank", "id,number,name", new QFilter("name", QCP.equals, map.get("acceptername")).toArray());
|
DynamicObject[] bd_bebank = BusinessDataServiceHelper.load("bd_bebank", "id,number,name", new QFilter("number", QCP.equals, map.get("acceptername")).toArray());
|
||||||
if (bd_bebank == null || bd_bebank.length == 0) {
|
if (bd_bebank == null || bd_bebank.length == 0) {
|
||||||
logger.info("进入收票登记 → 票据号:{},星空推送行名:{},未查到司库行名行号", map.get("draftbillno"), map.get("acceptername"));
|
logger.info("进入收票登记 → 票据号:{},星空推送联行号:{},未查到司库行名行号", map.get("draftbillno"), map.get("acceptername"));
|
||||||
|
} else {
|
||||||
|
map.put("acceptername", bd_bebank[0].getString("name"));
|
||||||
|
Map<String, Object> accepterbebank = new HashMap<>();
|
||||||
|
accepterbebank.put("number", bd_bebank[0].getString("number"));
|
||||||
|
map.put("accepterbebank", accepterbebank);
|
||||||
}
|
}
|
||||||
Map<String, Object> accepterbebank = new HashMap<>();
|
|
||||||
accepterbebank.put("name", map.get("acceptername"));
|
|
||||||
map.put("accepterbebank", accepterbebank);
|
|
||||||
break;
|
break;
|
||||||
//商业承兑汇票
|
//商业承兑汇票
|
||||||
case "103":
|
case "103":
|
||||||
|
@ -120,6 +122,7 @@ public class TicketRegistration implements Serializable, ApiSavePlugin {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
map.put("billtype", billtype);
|
map.put("billtype", billtype);
|
||||||
|
logger.info("收票登记 → 接口调用接口最终参数:{}", reqData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (map.get("receiver") != null) {//receiver_number
|
if (map.get("receiver") != null) {//receiver_number
|
||||||
|
@ -235,21 +238,21 @@ public class TicketRegistration implements Serializable, ApiSavePlugin {
|
||||||
|
|
||||||
//商业承兑电票
|
//商业承兑电票
|
||||||
case "104":
|
case "104":
|
||||||
case "CDMT-005D63A9":
|
|
||||||
case "CDMT-08B7B711":
|
case "CDMT-08B7B711":
|
||||||
case "CDMT-16FEE117":
|
case "CDMT-16FEE117":
|
||||||
case "CDMT-23C7A4D1":
|
case "CDMT-3320A540":
|
||||||
case "CDMT-491D50C5":
|
case "CDMT-3D17D179":
|
||||||
case "CDMT-4980CF6D":
|
case "CDMT-4980CF6D":
|
||||||
case "CDMT-550FDEAC":
|
case "CDMT-49ED9E02":
|
||||||
case "CDMT-5CD7302F":
|
case "CDMT-5CD7302F":
|
||||||
case "CDMT-6B2CEDA4":
|
case "CDMT-64FF686D":
|
||||||
|
case "CDMT-77D626A4":
|
||||||
case "CDMT-8C2B298B":
|
case "CDMT-8C2B298B":
|
||||||
case "CDMT-A452A1B3":
|
case "CDMT-A452A1B3":
|
||||||
case "CDMT-A773567D":
|
case "CDMT-DA385DD9":
|
||||||
case "CDMT-C16F2F43":
|
|
||||||
case "CDMT-D5D6C225":
|
|
||||||
case "CDMT-DF3B089B":
|
case "CDMT-DF3B089B":
|
||||||
|
case "CDMT-DF7BCFDD":
|
||||||
|
case "CDMT-EA7CA8B1":
|
||||||
case "CDMT-F8D0D70F":
|
case "CDMT-F8D0D70F":
|
||||||
case "CDMT-FE92FDAF":
|
case "CDMT-FE92FDAF":
|
||||||
billtype.put("number", "cdm_paybill_business_elec_BT_S");
|
billtype.put("number", "cdm_paybill_business_elec_BT_S");
|
||||||
|
@ -269,6 +272,7 @@ public class TicketRegistration implements Serializable, ApiSavePlugin {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
map.put("billtype", billtype);
|
map.put("billtype", billtype);
|
||||||
|
logger.info("开票登记 → 接口调用接口最终参数:{}", reqData);
|
||||||
}
|
}
|
||||||
} else if ("bos_org".equals(payeetype)) {
|
} else if ("bos_org".equals(payeetype)) {
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,361 @@
|
||||||
|
package shkd.sys.sys.plugin.api;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
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;
|
||||||
|
import kd.bos.openapi.api.plugin.ApiSerializerPlugin;
|
||||||
|
import kd.bos.openapi.api.plugin.SerializerResult;
|
||||||
|
import kd.bos.openapi.common.constant.MediaType;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.user.UserServiceHelper;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description
|
||||||
|
* @Author Tao
|
||||||
|
* @Date 2024/11/7
|
||||||
|
*/
|
||||||
|
public class XkPayBillApiSavePlugin implements ApiSavePlugin {
|
||||||
|
private static final Log logger = LogFactory.getLog(XkPayBillApiSavePlugin.class);
|
||||||
|
private static final long serialVersionUID = -2357039554260121859L;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) {
|
||||||
|
logger.info("接口调用接口参数:{}\n数据长度:{}", reqData, reqData.size());
|
||||||
|
String fieldName1;//字段名称(收/付人ID)
|
||||||
|
|
||||||
|
String bankNumber;//(收/付款银行账号.number)
|
||||||
|
String fieldName2;//字段名称(收/付款银行.number)
|
||||||
|
for (Map<String, Object> map : reqData) {
|
||||||
|
|
||||||
|
Object billtypeObject = map.get("billtype");// 单据类型
|
||||||
|
Object payeetype = map.get("payeetype");// 如果是收款人类型 则为付款处理保存接口
|
||||||
|
String shkd_businessname = map.get("shkd_businessname").toString();// 推送系统
|
||||||
|
|
||||||
|
if (billtypeObject != null) {
|
||||||
|
Map<String, Object> billtype = (Map<String, Object>) map.get("billtype");
|
||||||
|
String billtype_number = billtype.get("number").toString();
|
||||||
|
if ("cas_paybill_other_BT_S".equals(billtype_number) && "XK".equals(shkd_businessname)) {//星空推送的其他单据类型付款单
|
||||||
|
logger.info("单据类型 → 其他付款,推送系统 → XK");
|
||||||
|
// 收款人ID
|
||||||
|
fieldName1 = "payee";
|
||||||
|
// 付款银行编码
|
||||||
|
fieldName2 = "payerbank";
|
||||||
|
|
||||||
|
if ("BD_Supplier".equals(payeetype)) {
|
||||||
|
payeetype = "bd_supplier";
|
||||||
|
map.put("payeetype", "bd_supplier");
|
||||||
|
map.put("payeeformid", "bd_supplier");
|
||||||
|
} else if ("BD_Customer".equals(payeetype)) {
|
||||||
|
payeetype = "bd_customer";
|
||||||
|
map.put("payeetype", "bd_customer");
|
||||||
|
map.put("payeeformid", "bd_customer");
|
||||||
|
} else if ("BD_Empinfo".equals(payeetype)) {
|
||||||
|
payeetype = "bos_user";
|
||||||
|
map.put("payeetype", "bos_user");
|
||||||
|
map.put("payeeformid", "bos_user");
|
||||||
|
} else if ("ORG_Organizations".equals(payeetype)) {
|
||||||
|
payeetype = "bos_org";
|
||||||
|
map.put("payeetype", "bos_org");
|
||||||
|
map.put("payeeformid", "bos_org");
|
||||||
|
} else if ("FIN_OTHERS".equals(payeetype)) {
|
||||||
|
payeetype = "bd_supplier";
|
||||||
|
map.put("payeetype", "bd_supplier");
|
||||||
|
map.put("payeeformid", "bd_supplier");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 赋值付款金额折本位币
|
||||||
|
map.put("localamt", map.get("actpayamt"));
|
||||||
|
|
||||||
|
// 赋值分录应付折本币
|
||||||
|
List<Map<String, Object>> entryList = (List<Map<String, Object>>) map.get("entry");
|
||||||
|
if (entryList != null && !entryList.isEmpty()) {
|
||||||
|
Map<String, Object> stringObjectMap = entryList.get(0);
|
||||||
|
// 获取 e_payableamt 的值
|
||||||
|
stringObjectMap.put("e_payablelocamt", stringObjectMap.get("e_payableamt"));
|
||||||
|
map.put("entry", entryList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> payeebank = (Map<String, Object>) map.get("payeebank");
|
||||||
|
String payeebank_number = payeebank.get("number").toString();
|
||||||
|
DynamicObject[] bd_bebank = BusinessDataServiceHelper.load("bd_bebank", "id,number,provincetxt,citytxt", new QFilter("number", QCP.equals, payeebank_number).toArray());
|
||||||
|
if (bd_bebank.length > 0) {
|
||||||
|
map.put("recprovince", bd_bebank[0].getString("provincetxt"));
|
||||||
|
map.put("reccity", bd_bebank[0].getString("citytxt"));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> settletype = (Map<String, Object>) map.get("settletype");
|
||||||
|
String settletype_number = settletype.get("number").toString();
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> payeracctbank = (Map<String, Object>) map.get("payeracctbank");
|
||||||
|
bankNumber = payeracctbank.get("number").toString(); // 付款银行账号
|
||||||
|
|
||||||
|
// 账户查询,通过银行账号查对应的付款账户
|
||||||
|
DynamicObject[] amAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number,issetbankinterface", new QFilter("number", QCP.equals, bankNumber).toArray());
|
||||||
|
logger.info("账户查询,通过银行账号查对应的付款账户长度:{}", amAccountbanks.length);
|
||||||
|
Map<String, Object> payerbank = new HashMap<>();
|
||||||
|
if (amAccountbanks.length > 0) {
|
||||||
|
payerbank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number"));
|
||||||
|
logger.info("账户查询,通过银行账号查对应的付款账户信息:{}", amAccountbanks[0]);
|
||||||
|
|
||||||
|
if ("JSFS17、JSFS18".contains(settletype_number) && amAccountbanks[0].getBoolean("issetbankinterface")) {
|
||||||
|
map.put("paymentchannel", "bei");
|
||||||
|
} else {
|
||||||
|
map.put("paymentchannel", "counter");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
logger.info("付款银行:{}", payerbank);
|
||||||
|
map.put(fieldName2, payerbank);
|
||||||
|
|
||||||
|
|
||||||
|
// 如果为供应商或者客户
|
||||||
|
if ("bd_supplier".equals(payeetype)) {
|
||||||
|
logger.info("收款人类型 → 供应商");
|
||||||
|
Map<String, Object> societycreditcode = new HashMap<>();
|
||||||
|
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")).toArray());
|
||||||
|
|
||||||
|
if (objects.length > 0) {
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
||||||
|
logger.info("dynamicObjectCollection:{}", dynamicObjectCollection);
|
||||||
|
|
||||||
|
// 收款人编码
|
||||||
|
map.put("payeenumber", objects[0].getString("number"));
|
||||||
|
// 收款人ID
|
||||||
|
map.put(fieldName1, objects[0].getPkValue());
|
||||||
|
//收款人编码
|
||||||
|
}
|
||||||
|
} else if ("bd_customer".equals(payeetype)) {
|
||||||
|
logger.info("收款人类型 → 客户");
|
||||||
|
Map<String, Object> societycreditcode = new HashMap<>();
|
||||||
|
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")).toArray());
|
||||||
|
|
||||||
|
if (objects.length > 0) {
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
||||||
|
logger.info("dynamicObjectCollection:{}", dynamicObjectCollection);
|
||||||
|
// 收款人编码
|
||||||
|
map.put("payeenumber", objects[0].getString("number"));
|
||||||
|
// 收款人ID
|
||||||
|
map.put(fieldName1, objects[0].getPkValue());
|
||||||
|
//收款人编码
|
||||||
|
}
|
||||||
|
} else if ("bos_user".equals(payeetype)) {
|
||||||
|
logger.info("收款人类型 → 人员");
|
||||||
|
Map<String, Object> user_number = new HashMap<>();
|
||||||
|
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")).toArray());
|
||||||
|
logger.info("人员查询,通过人员工号查对应的人员数据长度:{}", objects.length);
|
||||||
|
if (objects.length > 0) {
|
||||||
|
// 收款人编码
|
||||||
|
map.put("payeenumber", objects[0].getString("number"));
|
||||||
|
// 付款人ID
|
||||||
|
map.put(fieldName1, objects[0].getPkValue());
|
||||||
|
}
|
||||||
|
} else if ("bos_org".equals(payeetype)) {
|
||||||
|
Map<String, Object> number = new HashMap<>();
|
||||||
|
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")).toArray());
|
||||||
|
if (objects.length > 0) {
|
||||||
|
// 收款人编码
|
||||||
|
map.put("payeenumber", objects[0].getString("number"));
|
||||||
|
// 收款人ID
|
||||||
|
map.put(fieldName1, objects[0].getPkValue());
|
||||||
|
//收款人编码
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ("cas_paybill_span_BT_S".equals(billtype_number) && "XK".equals(shkd_businessname)) {// 星空传的跨主体调拨
|
||||||
|
logger.info("单据类型 → 跨主体调拨,推送系统 → XK");
|
||||||
|
|
||||||
|
if ("BD_Supplier".equals(payeetype)) {
|
||||||
|
payeetype = "bd_supplier";
|
||||||
|
map.put("payeetype", "bd_supplier");
|
||||||
|
map.put("payeeformid", "bd_supplier");
|
||||||
|
} else if ("BD_Customer".equals(payeetype)) {
|
||||||
|
payeetype = "bd_customer";
|
||||||
|
map.put("payeetype", "bd_customer");
|
||||||
|
map.put("payeeformid", "bd_customer");
|
||||||
|
} else if ("BD_Empinfo".equals(payeetype)) {
|
||||||
|
payeetype = "bos_user";
|
||||||
|
map.put("payeetype", "bos_user");
|
||||||
|
map.put("payeeformid", "bos_user");
|
||||||
|
} else if ("ORG_Organizations".equals(payeetype)) {
|
||||||
|
payeetype = "bos_org";
|
||||||
|
map.put("payeetype", "bos_org");
|
||||||
|
map.put("payeeformid", "bos_org");
|
||||||
|
} else if ("FIN_OTHERS".equals(payeetype)) {
|
||||||
|
payeetype = "bd_supplier";
|
||||||
|
map.put("payeetype", "bd_supplier");
|
||||||
|
map.put("payeeformid", "bd_supplier");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 赋值付款金额折本位币
|
||||||
|
map.put("localamt", map.get("actpayamt"));
|
||||||
|
|
||||||
|
// 赋值分录应付折本币
|
||||||
|
List<Map<String, Object>> entryList = (List<Map<String, Object>>) map.get("entry");
|
||||||
|
if (entryList != null && !entryList.isEmpty()) {
|
||||||
|
Map<String, Object> stringObjectMap = entryList.get(0);
|
||||||
|
// 获取 e_payableamt 的值
|
||||||
|
stringObjectMap.put("e_payablelocamt", stringObjectMap.get("e_payableamt"));
|
||||||
|
map.put("entry", entryList);
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldName1 = "payee";// 收款人ID
|
||||||
|
// 付款银行编码
|
||||||
|
fieldName2 = "payerbank";
|
||||||
|
Map<String, Object> payeebank = (Map<String, Object>) map.get("payeebank");
|
||||||
|
String payeebank_number = payeebank.get("number").toString();
|
||||||
|
DynamicObject[] bd_bebank = BusinessDataServiceHelper.load("bd_bebank", "id,number,provincetxt,citytxt", new QFilter("number", QCP.equals, payeebank_number).toArray());
|
||||||
|
if (bd_bebank.length > 0) {
|
||||||
|
map.put("recprovince", bd_bebank[0].getString("provincetxt"));
|
||||||
|
map.put("reccity", bd_bebank[0].getString("citytxt"));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> settletype = (Map<String, Object>) map.get("settletype");
|
||||||
|
String settletype_number = settletype.get("number").toString();
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> payeracctbank = (Map<String, Object>) map.get("payeracctbank");
|
||||||
|
bankNumber = payeracctbank.get("number").toString(); // 付款银行账号
|
||||||
|
|
||||||
|
// 账户查询,通过银行账号查对应的付款账户
|
||||||
|
DynamicObject[] amAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number,issetbankinterface", new QFilter("number", QCP.equals, bankNumber).toArray());
|
||||||
|
logger.info("账户查询,通过银行账号查对应的付款账户长度:{}", amAccountbanks.length);
|
||||||
|
Map<String, Object> payerbank = new HashMap<>();
|
||||||
|
if (amAccountbanks.length > 0) {
|
||||||
|
payerbank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number"));
|
||||||
|
logger.info("账户查询,通过银行账号查对应的付款账户信息:{}", amAccountbanks[0]);
|
||||||
|
|
||||||
|
if ("JSFS17、JSFS18".contains(settletype_number) && amAccountbanks[0].getBoolean("issetbankinterface")) {
|
||||||
|
map.put("paymentchannel", "bei");
|
||||||
|
} else {
|
||||||
|
map.put("paymentchannel", "counter");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
logger.info("付款银行:{}", payerbank);
|
||||||
|
map.put(fieldName2, payerbank);
|
||||||
|
|
||||||
|
Map<String, Object> number = new HashMap<>();
|
||||||
|
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")).toArray());
|
||||||
|
if (objects.length > 0) {
|
||||||
|
// 收款人编码
|
||||||
|
map.put("payeenumber", objects[0].getString("number"));
|
||||||
|
// 收款人ID
|
||||||
|
map.put(fieldName1, objects[0].getPkValue());
|
||||||
|
//收款人编码
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ("cas_paybill_syn_BT_S".equals(billtype_number) && "XK".equals(shkd_businessname)) {// 星空传的同名转账
|
||||||
|
logger.info("单据类型 → 同名转账,推送系统 → XK");
|
||||||
|
|
||||||
|
// 赋值付款金额折本位币
|
||||||
|
map.put("localamt", map.get("actpayamt"));
|
||||||
|
|
||||||
|
// 赋值分录应付折本币
|
||||||
|
List<Map<String, Object>> entryList = (List<Map<String, Object>>) map.get("entry");
|
||||||
|
if (entryList != null && !entryList.isEmpty()) {
|
||||||
|
Map<String, Object> stringObjectMap = entryList.get(0);
|
||||||
|
// 获取 e_payableamt 的值
|
||||||
|
stringObjectMap.put("e_payablelocamt", stringObjectMap.get("e_payableamt"));
|
||||||
|
map.put("entry", entryList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 收款人ID
|
||||||
|
fieldName1 = "payee";
|
||||||
|
// 付款银行编码
|
||||||
|
fieldName2 = "payerbank";
|
||||||
|
Map<String, Object> payeebank = (Map<String, Object>) map.get("payeebank");
|
||||||
|
String payeebank_number = payeebank.get("number").toString();
|
||||||
|
DynamicObject[] bd_bebank = BusinessDataServiceHelper.load("bd_bebank", "id,number,provincetxt,citytxt", new QFilter("number", QCP.equals, payeebank_number).toArray());
|
||||||
|
if (bd_bebank.length > 0) {
|
||||||
|
map.put("recprovince", bd_bebank[0].getString("provincetxt"));
|
||||||
|
map.put("reccity", bd_bebank[0].getString("citytxt"));
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> settletype = (Map<String, Object>) map.get("settletype");
|
||||||
|
String settletype_number = settletype.get("number").toString();
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> payeracctbank = (Map<String, Object>) map.get("payeracctbank");
|
||||||
|
bankNumber = payeracctbank.get("number").toString(); // 付款银行账号
|
||||||
|
|
||||||
|
// 账户查询,通过银行账号查对应的付款账户
|
||||||
|
DynamicObject[] amAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number,issetbankinterface", new QFilter("number", QCP.equals, bankNumber).toArray());
|
||||||
|
logger.info("账户查询,通过银行账号查对应的付款账户长度:{}", amAccountbanks.length);
|
||||||
|
Map<String, Object> payerbank = new HashMap<>();
|
||||||
|
if (amAccountbanks.length > 0) {
|
||||||
|
payerbank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number"));
|
||||||
|
logger.info("账户查询,通过银行账号查对应的付款账户信息:{}", amAccountbanks[0]);
|
||||||
|
|
||||||
|
if ("JSFS17、JSFS18".contains(settletype_number) && amAccountbanks[0].getBoolean("issetbankinterface")) {
|
||||||
|
map.put("paymentchannel", "bei");
|
||||||
|
} else {
|
||||||
|
map.put("paymentchannel", "counter");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.info("付款银行:{}", payerbank);
|
||||||
|
map.put(fieldName2, payerbank);
|
||||||
|
|
||||||
|
Map<String, Object> number = new HashMap<>();
|
||||||
|
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")).toArray());
|
||||||
|
if (objects.length > 0) {
|
||||||
|
logger.info("收款人查询长度 → " + objects.length);
|
||||||
|
// 收款人ID
|
||||||
|
map.put(fieldName1, objects[0].getPkValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.info("最终处理 → 调用接口参数:{}", reqData);
|
||||||
|
|
||||||
|
}
|
||||||
|
return reqData;
|
||||||
|
}
|
||||||
|
}
|
|
@ -130,6 +130,72 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
String result = pushBillAttachment(dataEntity);
|
String result = pushBillAttachment(dataEntity);
|
||||||
this.getView().showTipNotification("返回结果:" + result);
|
this.getView().showTipNotification("返回结果:" + result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 补偿方案(推送BIP电子回单)
|
||||||
|
if ("shkd_compensatebip".equals(itemKey)) {
|
||||||
|
List<DynamicObject> dynamicObjectList = new ArrayList<>();
|
||||||
|
// 获取多选基础资料银行类别(推送银行类别)
|
||||||
|
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[] 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("shkd_pushstatus", QCP.not_equals, "已推送")
|
||||||
|
.and("company", QCP.in, orgArray)
|
||||||
|
.and("billno", QCP.equals, dataEntity.getString("shkd_sourcenumber")).toArray());
|
||||||
|
|
||||||
|
if (elecreceiptArays == null || elecreceiptArays.length == 0) {
|
||||||
|
this.getView().showTipNotification("未查询到符合条件的单据");
|
||||||
|
} else {
|
||||||
|
DynamicObject dynamicObject = elecreceiptArays[0];
|
||||||
|
//开户银行(银行账户)
|
||||||
|
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)) {
|
||||||
|
this.getView().showTipNotification("获取符合推送条件的单据:" + dynamicObject.getString("billno"));
|
||||||
|
// logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno"));
|
||||||
|
String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
|
||||||
|
if (result.contains("成功")) {
|
||||||
|
SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0]));
|
||||||
|
} else {
|
||||||
|
this.getView().showTipNotification("推送失败:" + dynamicObject.getString("billno"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseJson(Object obj, int level, String parentKey) {
|
private void parseJson(Object obj, int level, String parentKey) {
|
||||||
|
|
Loading…
Reference in New Issue