提交内容:整体代码更新

备注:整体代码更新(新增银行收付处理/电子回单调度计划二开代码)
提交人:邹江涛
This commit is contained in:
zoujiangtao 2025-02-25 10:35:07 +08:00
parent 7ff901528e
commit c8e7c54950
5 changed files with 395 additions and 69 deletions

View File

@ -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;
}
}*/
}
}
}

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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);
}
}
}
}

View File

@ -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;
/**