parent
							
								
									7ff901528e
								
							
						
					
					
						commit
						c8e7c54950
					
				| 
						 | 
					@ -57,7 +57,27 @@ public class InfoSecService extends AbstractCAService {
 | 
				
			||||||
                log.info("验签失败,未找到当前用户绑定证书");
 | 
					                log.info("验签失败,未找到当前用户绑定证书");
 | 
				
			||||||
                return result;
 | 
					                return result;
 | 
				
			||||||
            } else {
 | 
					            } 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);
 | 
					                log.info("证书验签publicKey:{}\n当前登录人绑定证书的publicKey:{}", publicKey, puKey);
 | 
				
			||||||
                if (publicKey.equals(puKey)) {
 | 
					                if (publicKey.equals(puKey)) {
 | 
				
			||||||
                    try {
 | 
					                    try {
 | 
				
			||||||
| 
						 | 
					@ -84,7 +104,7 @@ public class InfoSecService extends AbstractCAService {
 | 
				
			||||||
                    result.setMessage("验签失败,签名人员和验签人员不同");
 | 
					                    result.setMessage("验签失败,签名人员和验签人员不同");
 | 
				
			||||||
                    log.info("验签失败,签名人员和验签人员不同");
 | 
					                    log.info("验签失败,签名人员和验签人员不同");
 | 
				
			||||||
                    return result;
 | 
					                    return result;
 | 
				
			||||||
                }
 | 
					                }*/
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
 | 
				
			||||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
					import com.fasterxml.jackson.core.JsonProcessingException;
 | 
				
			||||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
					import com.fasterxml.jackson.databind.ObjectMapper;
 | 
				
			||||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
					import kd.bos.dataentity.entity.DynamicObject;
 | 
				
			||||||
 | 
					import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
				
			||||||
import kd.bos.logging.Log;
 | 
					import kd.bos.logging.Log;
 | 
				
			||||||
import kd.bos.logging.LogFactory;
 | 
					import kd.bos.logging.LogFactory;
 | 
				
			||||||
import kd.bos.openapi.api.plugin.ApiSavePlugin;
 | 
					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.BusinessDataServiceHelper;
 | 
				
			||||||
import kd.bos.servicehelper.user.UserServiceHelper;
 | 
					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.HashMap;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
| 
						 | 
					@ -43,7 +50,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String objectType;//对象类型(收/付人类型)
 | 
					        String objectType;//对象类型(收/付人类型)
 | 
				
			||||||
        String objectNumber;//对象编码(收/付人编码)
 | 
					        String objectNumber = null;//对象编码(收/付人编码)
 | 
				
			||||||
        String fieldName1;//字段名称(收/付人ID)
 | 
					        String fieldName1;//字段名称(收/付人ID)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String bankNumber = null;//(收/付款银行账号.number)
 | 
					        String bankNumber = null;//(收/付款银行账号.number)
 | 
				
			||||||
| 
						 | 
					@ -53,7 +60,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");//如果是付款人类型 则为收款处理保存接口
 | 
				
			||||||
            if (payeetype != null) {
 | 
					            if (payeetype != null) {
 | 
				
			||||||
 | 
					                logger.info("进入付款处理单API");
 | 
				
			||||||
 | 
					                // 收款人ID
 | 
				
			||||||
 | 
					                fieldName1 = "payee";
 | 
				
			||||||
 | 
					                // 付款银行编码
 | 
				
			||||||
 | 
					                fieldName2 = "payerbank";
 | 
				
			||||||
                String billstatus = map.get("billstatus").toString();
 | 
					                String billstatus = map.get("billstatus").toString();
 | 
				
			||||||
                if ("B".equals(billstatus)) {
 | 
					                if ("B".equals(billstatus)) {
 | 
				
			||||||
                    map.put("shkd_pushstatus", "未结算");
 | 
					                    map.put("shkd_pushstatus", "未结算");
 | 
				
			||||||
| 
						 | 
					@ -85,66 +96,259 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
 | 
				
			||||||
                    map.put("payeeformid", "other");
 | 
					                    map.put("payeeformid", "other");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // 收款账号
 | 
				
			||||||
 | 
					                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(); // 付款银行账号
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // 账户查询,通过银行账号查对应的付款账户
 | 
				
			||||||
 | 
					                DynamicObject[] amAccountbanks = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number", 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]);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                logger.info("付款银行:{}", payerbank);
 | 
				
			||||||
 | 
					                map.put(fieldName2, payerbank);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // 如果为供应商或者客户
 | 
					                // 如果为供应商或者客户
 | 
				
			||||||
                if ("bd_supplier".equals(payeetype) || "bd_customer".equals(payeetype)) {
 | 
					                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"));
 | 
					                    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());
 | 
					                    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) {
 | 
					                    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"));
 | 
					                        map.put("payeenumber", 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("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 = map.get("payeenumber").toString();
 | 
					                        objectNumber = objects[0].getString("number");
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                } else if ("bos_user".equals(payeetype)) {
 | 
					                } 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());
 | 
					                    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) {
 | 
					                    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"));
 | 
					                        map.put("payeenumber", objects[0].getString("number"));
 | 
				
			||||||
 | 
					                        // 收款人ID
 | 
				
			||||||
 | 
					                        map.put(fieldName1, objects[0].getPkValue());
 | 
				
			||||||
                        //收款人编码
 | 
					                        //收款人编码
 | 
				
			||||||
                        objectNumber = objects[0].getString("number");
 | 
					                        objectNumber = objects[0].getString("number");
 | 
				
			||||||
                    } else {
 | 
					 | 
				
			||||||
                        //收款人编码
 | 
					 | 
				
			||||||
                        objectNumber = map.get("payeenumber").toString();
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                } else {
 | 
					                } else if ("bos_org".equals(payeetype)) {
 | 
				
			||||||
                    //收款人编码
 | 
					                    Map<String, Object> number = new HashMap<>();
 | 
				
			||||||
                    objectNumber = map.get("payeenumber").toString();
 | 
					                    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());
 | 
				
			||||||
                logger.info("进入付款处理单API");
 | 
					                    if (objects.length > 0) {
 | 
				
			||||||
                //收款人类型
 | 
					                        // 收款银行(账户查询) 添加,如果没有账户查询则会报错
 | 
				
			||||||
                objectType = payeetype.toString();
 | 
					                        DynamicObject[] amAccountbanks1 = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number,company,company.name",
 | 
				
			||||||
                if (!"other".equals(objectType)) {
 | 
					                                new QFilter("number", QCP.equals, payeebanknum).and(
 | 
				
			||||||
                    //收款人ID
 | 
					                                        new QFilter("bank.number", QCP.equals, objects[0].getString("name"))).toArray());
 | 
				
			||||||
                    fieldName1 = "payee";
 | 
					                        logger.info("账户查询,通过银行账号查对应的收款账户长度:{}", amAccountbanks1.length);
 | 
				
			||||||
                    Map<String, Object> payeebankObj = (Map<String, Object>) map.get("payeebank");
 | 
					                        if (amAccountbanks1.length > 0) {
 | 
				
			||||||
                    bankNumber = (String) payeebankObj.get("number");
 | 
					                            Map<String, Object> payeraccount = new HashMap<>();
 | 
				
			||||||
                    logger.info("付款处理 → \nobjectType:{}\nobjectNumber:{}\nbankNumber:{}", objectType, objectNumber, bankNumber);
 | 
					                            payeraccount.put("bankaccountnumber", payeebanknum);
 | 
				
			||||||
                    DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load(objectType, "id,number", new QFilter("number", QCP.equals, objectNumber).toArray());
 | 
					                            map.put("shkd_reebankorg", payeraccount);
 | 
				
			||||||
                    logger.info("dynamicObjects.length:{}", dynamicObjects.length);
 | 
					                        } else {
 | 
				
			||||||
                    if (dynamicObjects.length > 0) {
 | 
					                            Map<String, Object> payeraccount = new HashMap<>();
 | 
				
			||||||
                        map.put(fieldName1, dynamicObjects[0].getPkValue());
 | 
					                            payeraccount.put("bankaccountnumber", "");
 | 
				
			||||||
                        logger.info("dynamicObjects[0]:{}", dynamicObjects[0]);
 | 
					                            map.put("shkd_reebankorg", payeraccount);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					 | 
				
			||||||
                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);
 | 
					 | 
				
			||||||
                    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("payerbank:{}", payerbank);
 | 
					 | 
				
			||||||
                    map.put(fieldName2, payerbank);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (payertype != null) {
 | 
					            if (payertype != null) {
 | 
				
			||||||
 | 
					                fieldName1 = "payer";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if ("BD_Supplier".equals(payertype)) {
 | 
					                if ("BD_Supplier".equals(payertype)) {
 | 
				
			||||||
                    payertype = "bd_supplier";
 | 
					                    payertype = "bd_supplier";
 | 
				
			||||||
                    map.put("payertype", "bd_supplier");
 | 
					                    map.put("payertype", "bd_supplier");
 | 
				
			||||||
| 
						 | 
					@ -184,7 +388,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                objectType = payertype.toString();
 | 
					                objectType = payertype.toString();
 | 
				
			||||||
                if (!"other".equals(objectType)) {
 | 
					                if (!"other".equals(objectType)) {
 | 
				
			||||||
                    fieldName1 = "payer";
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    Map<String, Object> accountbank = (Map<String, Object>) map.get("accountbank");
 | 
					                    Map<String, Object> accountbank = (Map<String, Object>) map.get("accountbank");
 | 
				
			||||||
                    bankNumber = (String) accountbank.get("number");
 | 
					                    bankNumber = (String) accountbank.get("number");
 | 
				
			||||||
| 
						 | 
					@ -216,4 +420,69 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return reqData;
 | 
					        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":
 | 
					            case "cas_paybill":
 | 
				
			||||||
                DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
 | 
					                DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
 | 
				
			||||||
                        "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
 | 
					                        "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
 | 
				
			||||||
                                "payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
 | 
					                                "payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,org.number,org.name,bizdate," +
 | 
				
			||||||
                                "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
 | 
					                                "description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
 | 
				
			||||||
                        , new QFilter("billno", QCP.equals, billNumber).toArray());
 | 
					                        , new QFilter("billno", QCP.equals, billNumber)
 | 
				
			||||||
 | 
					                                .and("org.name", QCP.in, new String[]{"四川川投能源股份有限公司", "川投(攀枝花)新能源开发有限公司", "四川川投屏山书楼抽水蓄能开发有限公司", "四川天彭电力开发有限公司"})//目前四家公司
 | 
				
			||||||
 | 
					                                .toArray());
 | 
				
			||||||
                billObject = objects1[0];
 | 
					                billObject = objects1[0];
 | 
				
			||||||
                logger.info("获取付款处理推送对象 → billObject:{}", billObject);
 | 
					                logger.info("获取付款处理推送对象 → billObject:{}", billObject);
 | 
				
			||||||
                break;
 | 
					                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," +
 | 
					                                    "payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,org.number,bizdate,description," +
 | 
				
			||||||
                                    "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
 | 
					                                    "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
 | 
				
			||||||
                            , new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
 | 
					                            , 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("shkd_pushstatus", QCP.not_equals, "结算失败")
 | 
					                                    .and("shkd_pushstatus", QCP.not_equals, "结算失败")
 | 
				
			||||||
                                    .and("billstatus", QCP.equals, "D").toArray());
 | 
					                                    .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"
 | 
					                                    "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
 | 
				
			||||||
                            , new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
 | 
					                            , new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
 | 
				
			||||||
                                    .and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
 | 
					                                    .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",
 | 
					                    DynamicObject[] objects5 = BusinessDataServiceHelper.load("cas_paybill",
 | 
				
			||||||
                            "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
 | 
					                            "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
 | 
				
			||||||
                                    "payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
 | 
					                                    "payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
 | 
				
			||||||
                                    "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
 | 
					                                    "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
 | 
				
			||||||
                            , new QFilter("bankpaystatus", QCP.equals, "TS")
 | 
					                            , 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 = Arrays.asList(objects4);
 | 
				
			||||||
                    dynamicObjects.addAll(Arrays.asList(objects5));
 | 
					                    dynamicObjects.addAll(Arrays.asList(objects5));
 | 
				
			||||||
                    dynamicObjects.forEach(dynamicObject -> ApiService.paymentSlipsJson(dynamicObject, "BIPNO", dynamicObjectList, null));
 | 
					                    dynamicObjects.forEach(dynamicObject -> ApiService.paymentSlipsJson(dynamicObject, "BIPNO", dynamicObjectList, null));
 | 
				
			||||||
| 
						 | 
					@ -105,32 +117,27 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
 | 
				
			||||||
                 * 收款 → 先有流水 后有单据
 | 
					                 * 收款 → 先有流水 后有单据
 | 
				
			||||||
                 */
 | 
					                 */
 | 
				
			||||||
                case "bei_transdetail_cas":
 | 
					                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",
 | 
					                    DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
 | 
				
			||||||
                            "id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
 | 
					                            "id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
 | 
				
			||||||
                                    "bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
 | 
					                                    "bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
 | 
				
			||||||
                                    "shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
 | 
					                                    "shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
 | 
				
			||||||
                                    "recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
 | 
					                                    "recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
 | 
				
			||||||
                            , new QFilter("bizdate", QCP.large_equals, calculateTheDate(7))
 | 
					                            , new QFilter("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
 | 
				
			||||||
                                    .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
 | 
					
 | 
				
			||||||
                    ArrayList<DynamicObject> transdetailCollection = new ArrayList<>();
 | 
					 | 
				
			||||||
                    Arrays.stream(objects3).forEach(dynamicObject -> {
 | 
					                    Arrays.stream(objects3).forEach(dynamicObject -> {
 | 
				
			||||||
                        DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("recedbillentry");
 | 
					                        DynamicObject companys = dynamicObject.getDynamicObject("company");
 | 
				
			||||||
                        if (!dynamicObjectCollection.isEmpty()) {
 | 
					                        if ("SIG1040100、SIG1090000、SIG000101135、SIG1041000、SIG1040802、SIG1040804、SIG1040803、SIG1040801、SIG1040400".contains(companys.getString("number"))) {
 | 
				
			||||||
                            DynamicObject object = dynamicObjectCollection.get(0);
 | 
					                            ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
 | 
				
			||||||
                            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);
 | 
					 | 
				
			||||||
                                }
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
                    transdetailCollection.forEach(dynamicObject -> ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null));
 | 
					 | 
				
			||||||
                    SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0]));
 | 
					                    SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0]));
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                /**
 | 
					                /**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue