parent
7ff901528e
commit
c8e7c54950
|
@ -57,7 +57,27 @@ public class InfoSecService extends AbstractCAService {
|
|||
log.info("验签失败,未找到当前用户绑定证书");
|
||||
return result;
|
||||
} else {
|
||||
String puKey = certificateManagement.getString("publickey");
|
||||
try {
|
||||
String response = verifyPkcs7(cleartext, signData, "" + System.currentTimeMillis());
|
||||
JSONObject jsonObject = JSON.parseObject(response);
|
||||
String code = jsonObject.getString("code");
|
||||
if ("200".equals(code)) {
|
||||
result.setSuccess(true);
|
||||
result.setMessage("验签通过。");
|
||||
} else {
|
||||
result.setSuccess(false);
|
||||
result.setMessage("验签失败。");
|
||||
}
|
||||
log.info("验签响应: " + response);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e);
|
||||
result.setSuccess(false);
|
||||
result.setMessage("验签失败:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
|
||||
/*String puKey = certificateManagement.getString("publickey");
|
||||
log.info("证书验签publicKey:{}\n当前登录人绑定证书的publicKey:{}", publicKey, puKey);
|
||||
if (publicKey.equals(puKey)) {
|
||||
try {
|
||||
|
@ -84,7 +104,7 @@ public class InfoSecService extends AbstractCAService {
|
|||
result.setMessage("验签失败,签名人员和验签人员不同");
|
||||
log.info("验签失败,签名人员和验签人员不同");
|
||||
return result;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ 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;
|
||||
|
@ -17,6 +18,12 @@ 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.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -43,7 +50,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
|
||||
|
||||
String objectType;//对象类型(收/付人类型)
|
||||
String objectNumber;//对象编码(收/付人编码)
|
||||
String objectNumber = null;//对象编码(收/付人编码)
|
||||
String fieldName1;//字段名称(收/付人ID)
|
||||
|
||||
String bankNumber = null;//(收/付款银行账号.number)
|
||||
|
@ -53,7 +60,11 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
Object payeetype = map.get("payeetype");//如果是收款人类型 则为付款处理保存接口
|
||||
Object payertype = map.get("payertype");//如果是付款人类型 则为收款处理保存接口
|
||||
if (payeetype != null) {
|
||||
|
||||
logger.info("进入付款处理单API");
|
||||
// 收款人ID
|
||||
fieldName1 = "payee";
|
||||
// 付款银行编码
|
||||
fieldName2 = "payerbank";
|
||||
String billstatus = map.get("billstatus").toString();
|
||||
if ("B".equals(billstatus)) {
|
||||
map.put("shkd_pushstatus", "未结算");
|
||||
|
@ -85,66 +96,259 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
map.put("payeeformid", "other");
|
||||
}
|
||||
|
||||
// 如果为供应商或者客户
|
||||
if ("bd_supplier".equals(payeetype) || "bd_customer".equals(payeetype)) {
|
||||
logger.info("收款人ID:{}", map.get("payeenumber"));
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,societycreditcode", new QFilter("societycreditcode", QCP.equals, map.get("payeenumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
map.put("payeenumber", objects[0].getString("number"));
|
||||
//收款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
} else {
|
||||
//收款人编码
|
||||
objectNumber = map.get("payeenumber").toString();
|
||||
}
|
||||
} else if ("bos_user".equals(payeetype)) {
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,username", new QFilter("username", QCP.equals, map.get("payeenumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
map.put("payeenumber", objects[0].getString("number"));
|
||||
//收款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
} else {
|
||||
//收款人编码
|
||||
objectNumber = map.get("payeenumber").toString();
|
||||
}
|
||||
} else {
|
||||
//收款人编码
|
||||
objectNumber = map.get("payeenumber").toString();
|
||||
}
|
||||
// 收款账号
|
||||
String payeebanknum = map.get("payeebanknum").toString();
|
||||
// 收款银行名称
|
||||
String payeebankname = map.get("payeebankname").toString();
|
||||
// 收款行行号
|
||||
String recbanknumber = map.get("recbanknumber").toString();
|
||||
|
||||
Map<String, Object> payeracctbank = (Map<String, Object>) map.get("payeracctbank");
|
||||
bankNumber = payeracctbank.get("number").toString(); // 付款银行账号
|
||||
|
||||
logger.info("进入付款处理单API");
|
||||
//收款人类型
|
||||
objectType = payeetype.toString();
|
||||
if (!"other".equals(objectType)) {
|
||||
//收款人ID
|
||||
fieldName1 = "payee";
|
||||
Map<String, Object> payeebankObj = (Map<String, Object>) map.get("payeebank");
|
||||
bankNumber = (String) payeebankObj.get("number");
|
||||
logger.info("付款处理 → \nobjectType:{}\nobjectNumber:{}\nbankNumber:{}", objectType, objectNumber, bankNumber);
|
||||
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load(objectType, "id,number", new QFilter("number", QCP.equals, objectNumber).toArray());
|
||||
logger.info("dynamicObjects.length:{}", dynamicObjects.length);
|
||||
if (dynamicObjects.length > 0) {
|
||||
map.put(fieldName1, dynamicObjects[0].getPkValue());
|
||||
logger.info("dynamicObjects[0]:{}", dynamicObjects[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if ("bos_org".equals(objectType)) {
|
||||
fieldName2 = "payerbank";
|
||||
// 账户查询,通过银行账号查对应的付款账户
|
||||
DynamicObject[] amAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number", new QFilter("number", QCP.equals, bankNumber).toArray());
|
||||
logger.info("amAccountbanks.length:{}", amAccountbanks.length);
|
||||
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]:{}", amAccountbanks[0]);
|
||||
logger.info("账户查询,通过银行账号查对应的付款账户信息:{}", amAccountbanks[0]);
|
||||
}
|
||||
logger.info("payerbank:{}", payerbank);
|
||||
logger.info("付款银行:{}", payerbank);
|
||||
map.put(fieldName2, payerbank);
|
||||
|
||||
// 如果为供应商或者客户
|
||||
if ("bd_supplier".equals(payeetype)) {
|
||||
Map<String, Object> societycreditcode = new HashMap<>();
|
||||
societycreditcode.put("societycreditcode", map.get("payeenumber").toString());
|
||||
map.put("shkd_supplier", 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").toString()).toArray());
|
||||
|
||||
if (objects.length > 0) {
|
||||
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
||||
logger.info("dynamicObjectCollection:{}", dynamicObjectCollection);
|
||||
int result = 0;
|
||||
for (DynamicObject dynamicObject : dynamicObjectCollection) {
|
||||
if (dynamicObject.getString("bankaccount").equals(payeebanknum)) {
|
||||
result = 1;
|
||||
logger.info("存在银行账号");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (result == 0) {
|
||||
/*JSONObject app_token_jsonBody = new JSONObject();
|
||||
app_token_jsonBody.put("appId", "BIP");
|
||||
app_token_jsonBody.put("appSecret", "1qaz2wsx#EDC$RFV");
|
||||
app_token_jsonBody.put("tenantid", "ctsk-test");
|
||||
app_token_jsonBody.put("accountId", "2063187796394248192");
|
||||
String app_token_body = app_token_jsonBody.toString();
|
||||
|
||||
String app_token = updateBankInformation("http://10.1.7.83:8022/ierp/api/getAppToken.do", app_token_body, null);
|
||||
logger.info("app_token_body:{}\napp_token:{}", app_token_body, app_token);
|
||||
|
||||
JSONObject jsonObject = JSON.parseObject(app_token);
|
||||
String key = jsonObject.getJSONObject("data").getString("app_token");
|
||||
|
||||
JSONObject access_token_jsonBody = new JSONObject();
|
||||
access_token_jsonBody.put("user", "17779007624");
|
||||
access_token_jsonBody.put("usertype", "Mobile");
|
||||
access_token_jsonBody.put("apptoken", key);
|
||||
access_token_jsonBody.put("tenantid", "ctsk-test");
|
||||
access_token_jsonBody.put("accountId", "2063187796394248192");
|
||||
access_token_jsonBody.put("language", "zh_CN");
|
||||
String access_token_body = access_token_jsonBody.toString();
|
||||
|
||||
String access_token = updateBankInformation("http://10.1.7.83:8022/ierp/api/login.do", access_token_body, null);
|
||||
logger.info("access_token_body:{}\naccess_token:{}", access_token_body, access_token);
|
||||
String token = JSON.parseObject(access_token).getJSONObject("data").getString("access_token");
|
||||
|
||||
// 创建内部 JSON 对象
|
||||
JSONObject entryBank = new JSONObject();
|
||||
entryBank.put("bankaccount", payeebanknum);// 银行账号
|
||||
entryBank.put("accountname", payeebanknum);// 账户名称
|
||||
Map<String, Object> payeebank = (Map<String, Object>) map.get("payeebank");
|
||||
entryBank.put("bank_union_number", payeebank.get("number").toString());// 联行号
|
||||
entryBank.put("currency_number", "CNY");
|
||||
entryBank.put("isdefault_bank", "false");
|
||||
|
||||
// 创建 entry_bank 数组
|
||||
JSONArray entryBankArray = new JSONArray();
|
||||
entryBankArray.add(entryBank);
|
||||
|
||||
// 创建 data 内部对象
|
||||
JSONObject dataObject = new JSONObject();
|
||||
dataObject.put("societycreditcode", map.get("payeenumber").toString());// 统一社会信用代码
|
||||
dataObject.put("entry_bank", entryBankArray);
|
||||
|
||||
// 创建 data 数组
|
||||
JSONArray dataArray = new JSONArray();
|
||||
dataArray.add(dataObject);
|
||||
|
||||
// 创建最外层 JSON 对象
|
||||
JSONObject body = new JSONObject();
|
||||
body.put("data", dataArray);
|
||||
|
||||
// 将 JSONObject 转换为字符串
|
||||
String bodyString = body.toString();
|
||||
String resultBody = updateBankInformation("http://10.1.7.83:8022/ierp/kapi/v2/shkd/basedata/bd_supplier/supplier_save", bodyString, token);
|
||||
logger.info("resultBody:{}", resultBody);*/
|
||||
|
||||
logger.info("不存在银行账号");
|
||||
}
|
||||
|
||||
// 收款人编码
|
||||
map.put("payeenumber", objects[0].getString("number"));
|
||||
// 收款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
//收款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
} else if ("bd_customer".equals(payeetype)) {
|
||||
Map<String, Object> societycreditcode = new HashMap<>();
|
||||
societycreditcode.put("societycreditcode", map.get("payeenumber").toString());
|
||||
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").toString()).toArray());
|
||||
|
||||
if (objects.length > 0) {
|
||||
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
||||
logger.info("dynamicObjectCollection:{}", dynamicObjectCollection);
|
||||
int result = 0;
|
||||
for (DynamicObject dynamicObject : dynamicObjectCollection) {
|
||||
if (dynamicObject.getString("bankaccount").equals(payeebanknum)) {
|
||||
result = 1;
|
||||
logger.info("存在银行账号");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (result == 0) {
|
||||
/*JSONObject app_token_jsonBody = new JSONObject();
|
||||
app_token_jsonBody.put("appId", "BIP");
|
||||
app_token_jsonBody.put("appSecret", "1qaz2wsx#EDC$RFV");
|
||||
app_token_jsonBody.put("tenantid", "ctsk-test");
|
||||
app_token_jsonBody.put("accountId", "2063187796394248192");
|
||||
String app_token_body = app_token_jsonBody.toString();
|
||||
|
||||
String app_token = updateBankInformation("http://10.1.7.83:8022/ierp/api/getAppToken.do", app_token_body, null);
|
||||
logger.info("app_token_body:{}\napp_token:{}", app_token_body, app_token);
|
||||
|
||||
JSONObject jsonObject = JSON.parseObject(app_token);
|
||||
String key = jsonObject.getJSONObject("data").getString("app_token");
|
||||
|
||||
JSONObject access_token_jsonBody = new JSONObject();
|
||||
access_token_jsonBody.put("user", "17779007624");
|
||||
access_token_jsonBody.put("usertype", "Mobile");
|
||||
access_token_jsonBody.put("apptoken", key);
|
||||
access_token_jsonBody.put("tenantid", "ctsk-test");
|
||||
access_token_jsonBody.put("accountId", "2063187796394248192");
|
||||
access_token_jsonBody.put("language", "zh_CN");
|
||||
String access_token_body = access_token_jsonBody.toString();
|
||||
|
||||
String access_token = updateBankInformation("http://10.1.7.83:8022/ierp/api/login.do", access_token_body, null);
|
||||
logger.info("access_token_body:{}\naccess_token:{}", access_token_body, access_token);
|
||||
|
||||
String token = JSON.parseObject(access_token).getJSONObject("data").getString("access_token");
|
||||
|
||||
// 创建内部 JSON 对象
|
||||
JSONObject entryBank = new JSONObject();
|
||||
entryBank.put("bankaccount", payeebanknum);// 银行账号
|
||||
entryBank.put("accountname", payeebanknum);// 账户名称
|
||||
Map<String, Object> payeebank = (Map<String, Object>) map.get("payeebank");
|
||||
entryBank.put("bank_union_number", payeebank.get("number").toString());// 联行号
|
||||
entryBank.put("currency_number", "CNY");
|
||||
entryBank.put("isdefault_bank", "false");
|
||||
|
||||
// 创建 entry_bank 数组
|
||||
JSONArray entryBankArray = new JSONArray();
|
||||
entryBankArray.add(entryBank);
|
||||
|
||||
// 创建 data 内部对象
|
||||
JSONObject dataObject = new JSONObject();
|
||||
dataObject.put("societycreditcode", map.get("payeenumber").toString());// 统一社会信用代码
|
||||
dataObject.put("entry_bank", entryBankArray);
|
||||
|
||||
// 创建 data 数组
|
||||
JSONArray dataArray = new JSONArray();
|
||||
dataArray.add(dataObject);
|
||||
|
||||
// 创建最外层 JSON 对象
|
||||
JSONObject body = new JSONObject();
|
||||
body.put("data", dataArray);
|
||||
|
||||
// 将 JSONObject 转换为字符串
|
||||
String bodyString = body.toString();
|
||||
String resultBody = updateBankInformation("http://10.1.7.83:8022/ierp/kapi/v2/shkd/basedata/bd_customer/customer_save", bodyString, token);
|
||||
logger.info("resultBody:{}", resultBody);*/
|
||||
|
||||
logger.info("不存在银行账号");
|
||||
}
|
||||
|
||||
// 收款人编码
|
||||
map.put("payeenumber", objects[0].getString("number"));
|
||||
// 收款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
//收款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
} else if ("bos_user".equals(payeetype)) {
|
||||
Map<String, Object> username = new HashMap<>();
|
||||
username.put("username", map.get("payeenumber").toString());
|
||||
map.put("shkd_user", username);
|
||||
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payeenumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 收款银行(收款信息) 添加,如果没有收款信息则会报错
|
||||
DynamicObject[] er_payeers = BusinessDataServiceHelper.load("er_payeer", "id,outpayer,payeraccount", new QFilter("outpayer", QCP.equals, objects[0].getString("name")).and(new QFilter("payeraccount", QCP.equals, payeebanknum)).toArray());
|
||||
if (er_payeers.length > 0) {
|
||||
Map<String, Object> payeraccount = new HashMap<>();
|
||||
payeraccount.put("payeraccount", payeebanknum);
|
||||
map.put("shkd_reebankuser", payeraccount);
|
||||
} else {
|
||||
Map<String, Object> payeraccount = new HashMap<>();
|
||||
payeraccount.put("payeraccount", "");
|
||||
map.put("shkd_reebankuser", payeraccount);
|
||||
}
|
||||
|
||||
// 收款人编码
|
||||
map.put("payeenumber", 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("payeenumber").toString());
|
||||
map.put("shkd_org", number);
|
||||
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 收款银行(账户查询) 添加,如果没有账户查询则会报错
|
||||
DynamicObject[] amAccountbanks1 = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number,company,company.name",
|
||||
new QFilter("number", QCP.equals, payeebanknum).and(
|
||||
new QFilter("bank.number", QCP.equals, objects[0].getString("name"))).toArray());
|
||||
logger.info("账户查询,通过银行账号查对应的收款账户长度:{}", amAccountbanks1.length);
|
||||
if (amAccountbanks1.length > 0) {
|
||||
Map<String, Object> payeraccount = new HashMap<>();
|
||||
payeraccount.put("bankaccountnumber", payeebanknum);
|
||||
map.put("shkd_reebankorg", payeraccount);
|
||||
} else {
|
||||
Map<String, Object> payeraccount = new HashMap<>();
|
||||
payeraccount.put("bankaccountnumber", "");
|
||||
map.put("shkd_reebankorg", payeraccount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (payertype != null) {
|
||||
fieldName1 = "payer";
|
||||
|
||||
if ("BD_Supplier".equals(payertype)) {
|
||||
payertype = "bd_supplier";
|
||||
map.put("payertype", "bd_supplier");
|
||||
|
@ -184,7 +388,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
|
||||
objectType = payertype.toString();
|
||||
if (!"other".equals(objectType)) {
|
||||
fieldName1 = "payer";
|
||||
|
||||
|
||||
Map<String, Object> accountbank = (Map<String, Object>) map.get("accountbank");
|
||||
bankNumber = (String) accountbank.get("number");
|
||||
|
@ -216,4 +420,69 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
}
|
||||
return reqData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送单条数据
|
||||
*
|
||||
* @param linkUrl 请求URL
|
||||
* @param requestBody 请求体数据
|
||||
* @param access_token 令牌
|
||||
* @return 推送结果
|
||||
*/
|
||||
private static String updateBankInformation(String linkUrl, String requestBody, String access_token) {
|
||||
// 响应数据
|
||||
String formattedContent;
|
||||
try {
|
||||
// 请求URL
|
||||
URL url = new URL(linkUrl);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
|
||||
// 设置请求方法为POST
|
||||
connection.setRequestMethod("POST");
|
||||
|
||||
// 设置请求头
|
||||
connection.setRequestProperty("Content-Type", "application/json");
|
||||
if (access_token != null && !access_token.isEmpty()) {
|
||||
connection.setRequestProperty("access_token", access_token);
|
||||
}
|
||||
|
||||
// 允许输出
|
||||
connection.setDoOutput(true);
|
||||
|
||||
// 写入请求体
|
||||
try (OutputStream os = connection.getOutputStream()) {
|
||||
byte[] input = requestBody.getBytes(StandardCharsets.UTF_8);
|
||||
os.write(input, 0, input.length);
|
||||
}
|
||||
|
||||
// 获取响应码
|
||||
int responseCode = connection.getResponseCode();
|
||||
|
||||
// 读取响应内容
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) { // 成功响应
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));
|
||||
String inputLine;
|
||||
StringBuilder content = new StringBuilder();
|
||||
while ((inputLine = in.readLine()) != null) {
|
||||
content.append(inputLine);
|
||||
}
|
||||
in.close();
|
||||
// 替换 \n 为实际的换行符
|
||||
formattedContent = content.toString().replace("\\n", "\n");
|
||||
} else {
|
||||
// 读取错误流
|
||||
BufferedReader errorReader = new BufferedReader(new InputStreamReader(connection.getErrorStream(), StandardCharsets.UTF_8));
|
||||
String errorLine;
|
||||
StringBuilder errorContent = new StringBuilder();
|
||||
while ((errorLine = errorReader.readLine()) != null) {
|
||||
errorContent.append(errorLine);
|
||||
}
|
||||
errorReader.close();
|
||||
formattedContent = "响应失败: " + errorContent;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
formattedContent = "请求失败," + e.getMessage();
|
||||
}
|
||||
return formattedContent;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -214,9 +214,11 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
|||
case "cas_paybill":
|
||||
DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("billno", QCP.equals, billNumber).toArray());
|
||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,org.number,org.name,bizdate," +
|
||||
"description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("billno", QCP.equals, billNumber)
|
||||
.and("org.name", QCP.in, new String[]{"四川川投能源股份有限公司", "川投(攀枝花)新能源开发有限公司", "四川川投屏山书楼抽水蓄能开发有限公司", "四川天彭电力开发有限公司"})//目前四家公司
|
||||
.toArray());
|
||||
billObject = objects1[0];
|
||||
logger.info("获取付款处理推送对象 → billObject:{}", billObject);
|
||||
break;
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package shkd.sys.sys.plugin.list;
|
||||
|
||||
import kd.bos.form.events.SetFilterEvent;
|
||||
import kd.bos.list.plugin.AbstractListPlugin;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标准单据列表插件
|
||||
*/
|
||||
public class OrgExpansionListPlugin extends AbstractListPlugin implements Plugin {
|
||||
@Override
|
||||
public void setFilter(SetFilterEvent e) {
|
||||
super.setFilter(e);
|
||||
List<QFilter> basedataCoreQFilters = e.getBasedataCoreQFilters();
|
||||
for (QFilter qFilter : basedataCoreQFilters) {
|
||||
System.out.println(qFilter);
|
||||
if (qFilter.getValue().equals("08")) {
|
||||
QFilter qFilter1 = new QFilter("orgpattern", "!=", 7L);
|
||||
QFilter qFilter2 = new QFilter("orgpattern", "!=", 8L);
|
||||
e.addCustomQFilter(qFilter1);
|
||||
e.addCustomQFilter(qFilter2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -43,7 +43,17 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,org.number,bizdate,description," +
|
||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
|
||||
.and("org.number", QCP.in, new String[]{"SIG1040100", "SIG000101135", "SIG1041000", "SIG1040400"})//目前四家公司
|
||||
.and("org.number", QCP.in, new String[]{
|
||||
"SIG1040100",
|
||||
"SIG1090000",
|
||||
"SIG000101135",
|
||||
"SIG1041000",
|
||||
"SIG1040802",
|
||||
"SIG1040804",
|
||||
"SIG1040803",
|
||||
"SIG1040801",
|
||||
"SIG1040400"
|
||||
})//目前四家公司
|
||||
.and("shkd_pushstatus", QCP.not_equals, "已结算")
|
||||
.and("shkd_pushstatus", QCP.not_equals, "结算失败")
|
||||
.and("billstatus", QCP.equals, "D").toArray());
|
||||
|
@ -67,14 +77,16 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
|
||||
.and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
|
||||
.and("shkd_pushstatus", QCP.equals, "未结算").toArray());
|
||||
.and("shkd_pushstatus", QCP.equals, "未结算")
|
||||
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
|
||||
|
||||
DynamicObject[] objects5 = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("bankpaystatus", QCP.equals, "TS")
|
||||
.and("shkd_pushstatus", QCP.equals, "结算失败").toArray());
|
||||
.and("shkd_pushstatus", QCP.equals, "结算失败")
|
||||
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
|
||||
dynamicObjects = Arrays.asList(objects4);
|
||||
dynamicObjects.addAll(Arrays.asList(objects5));
|
||||
dynamicObjects.forEach(dynamicObject -> ApiService.paymentSlipsJson(dynamicObject, "BIPNO", dynamicObjectList, null));
|
||||
|
@ -105,32 +117,27 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
* 收款 → 先有流水 后有单据
|
||||
*/
|
||||
case "bei_transdetail_cas":
|
||||
// DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
|
||||
// "id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
|
||||
// "bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
|
||||
// "shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
|
||||
// "recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
|
||||
// , new QFilter("bizdate", QCP.large_equals, calculateTheDate(7))
|
||||
// .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
|
||||
|
||||
DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
|
||||
"id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
|
||||
"bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
|
||||
"shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
|
||||
"recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
|
||||
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(7))
|
||||
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
|
||||
ArrayList<DynamicObject> transdetailCollection = new ArrayList<>();
|
||||
, new QFilter("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
|
||||
|
||||
Arrays.stream(objects3).forEach(dynamicObject -> {
|
||||
DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("recedbillentry");
|
||||
if (!dynamicObjectCollection.isEmpty()) {
|
||||
DynamicObject object = dynamicObjectCollection.get(0);
|
||||
String billType = object.getString("e_recedbilltype");// 接收单据类型
|
||||
String billNumber = object.getString("e_recedbillnumber");// 接受单据编号
|
||||
String billId = object.getString("e_recedbillid");// 接受单据ID
|
||||
if (billType.equals("cas_paybill")) {
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(billId, billType);
|
||||
String businessName = dynamicObject1.getString("shkd_businessname");// 推送系统
|
||||
String pushStatus = dynamicObject1.getString("shkd_pushstatus");// 推送状态
|
||||
if ("共享系统".equals(businessName) && "已结算".equals(pushStatus)) {
|
||||
transdetailCollection.add(dynamicObject);
|
||||
}
|
||||
}
|
||||
DynamicObject companys = dynamicObject.getDynamicObject("company");
|
||||
if ("SIG1040100、SIG1090000、SIG000101135、SIG1041000、SIG1040802、SIG1040804、SIG1040803、SIG1040801、SIG1040400".contains(companys.getString("number"))) {
|
||||
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
|
||||
}
|
||||
});
|
||||
transdetailCollection.forEach(dynamicObject -> ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null));
|
||||
SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0]));
|
||||
break;
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue