package fi.cas.opplugin; import com.google.gson.Gson; import com.kingdee.bos.Context; import com.kingdee.bos.json.JSONUtils; import com.kingdee.bos.json.Kson; import json.JSON; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.EntityMetadataCache; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import java.io.*; import java.math.RoundingMode; import java.net.Socket; import java.sql.Timestamp; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import org.json.JSONArray; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.json.JSONObject; import org.json.XML; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; public class PayBillToolUtil { public static final String ENTITY_NAME = "cas_paybill"; public static final String AGENT_ENTITY_NAME = "cas_agentpaybill"; protected static final Log log = LogFactory.getLog(PayBillToolUtil.class); public static final String CHANNELCODE_PILIANG="JF"; /** * 对账接口 * @return */ public static String payDayCheckRequest(String begindzrq,String enddzrq) { try { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.newDocument(); Element rootElement = doc.createElement("Message"); doc.appendChild(rootElement); Element body = doc.createElement("Body"); rootElement.appendChild(body); createElement(doc, body, "transcode", "BTSMO013"); createElement(doc, body, "channelcode", "JF");//发起渠道 createElement(doc, body, "checkstadate", begindzrq);//对账开始日期 createElement(doc, body, "checkenddate", enddzrq);//对账结束日期 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); // 指定编码格式为GBK transformer.setOutputProperty(OutputKeys.ENCODING, "GBK"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); transformer.transform(source, result); return writer.toString(); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 代发单表头支付信息查询 * @param agentpayBillEntity * @return */ public static String createSingleAgentPaymentRequest_5(DynamicObject agentpayBillEntity) { try { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.newDocument(); Element rootElement = doc.createElement("Message"); doc.appendChild(rootElement); //agentPaymentXMLHead(agentpayBillEntity,doc,rootElement,"ACHRMSGQ"); Element body = doc.createElement("BodyInfo"); rootElement.appendChild(body); agentPaymentXMLBody_Msg(agentpayBillEntity,doc,body); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); // 指定编码格式为GBK transformer.setOutputProperty(OutputKeys.ENCODING, "GBK"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); transformer.transform(source, result); return writer.toString(); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 代发单付款请求拼接 * @return */ public static String createSingleAgentPaymentRequest_1(DynamicObject info) { try { JSONObject param = new JSONObject(); headJson(param); JSONObject data = new JSONObject(); //单据状态 if("C".equals(info.get("billstatus"))){ data.put("FBillStatus","12"); } //EAS付款单据号 String bbh=info.get("nckd_bbh")+"";//版本号 data.put("ERP_INS_ID",info.getPkValue()+"-"+bbh); //EAS付款单据号 data.put("ERP_PAYNO",info.get("billno")+"-"+bbh); //录入人 data.put("CREATOR",info.get("creator.name").toString()); //录入时间 data.put("CREATE_TIME",TypeUtils.date2String(new Date(((Timestamp)info.get("modifytime")).getTime()),TypeUtils.DEFAULT_DATE_FORMAT) ); //摘要 data.put("REMARK",info.get("description")+"-"+info.get("billno")); data.put("IS_TRANSFER","0"); //付款单位--->公司编号 if(info.get("org")!=null){//付款单位--->公司编号 String companyNumber = TypeUtils.nullToString(info.get("org.number")); data.put("PAY_CLT_NO",companyNumber); } DynamicObject payeracctbankEntity = BusinessDataServiceHelper.loadSingleFromCache(info.getDynamicObject("payeracctbank").getPkValue(), "am_accountbank"); String payeracc = payeracctbankEntity.getString("bankaccountnumber"); String payername = payeracctbankEntity.getString("acctname"); //付款方账号 ---> 付款账户基础资料银行账号 data.put("PAY_ACNT_NO",payeracc); //付款银行 ---> 金融机构行号编码 data.put("PAY_CNAPS",payeracctbankEntity.get("bank.number")+""); data.put("PAY_DATE",TypeUtils.date2String(new Date(),TypeUtils.DEFAULT_DATE_FORMAT));//付款日期 //付款金额 data.put("AMOUNT",info.getBigDecimal("payamount").setScale(2, RoundingMode.DOWN).toString()); //币别 if("CNY".equals(info.get("currency.number"))){ data.put("CURRENCY","BB01"); } //对公 if(!info.getBoolean("ispersonpay")){ data.put("IS_PERSON","0"); }else{ data.put("IS_PERSON","1"); } //加急 if(info.getBoolean("urgentflag")){ data.put("URGENT_FLAG","1"); }else{ data.put("URGENT_FLAG","0"); } //用途 data.put("PURPOSE","用途:"+info.get("nckd_usage")); //费用类型 data.put("BUSS_TYPE",JSONObject.NULL); //付款类型,工资 997 if("997".equals(info.get("paymenttype.number"))){ data.put("PAY_FLAG",2); }else{ data.put("PAY_FLAG","1"); } //明细条数 data.put("PAY_NUM",info.getString("count")); //明细数据 JSONArray OP_ACNT_LIST = new JSONArray(); // 获取分录数据 DynamicObjectCollection entryList = info.getDynamicObjectCollection("entry"); for (int i = 0; i 0){ if(entrycoll.get(0).get("e_expenseitem.number")==null){ data.put("BUSS_TYPE",""); }else{ data.put("BUSS_TYPE",entrycoll.get(0).get("e_expenseitem.number")+""); } } DynamicObject skyhinfo = BusinessDataServiceHelper.loadSingleFromCache(info.getDynamicObject("payeebank").getPkValue(), "bd_bebank"); //收款方开户行 名称 data.put("RECE_OPBANK_NAME",skyhinfo.get("name").toString());//收款方开户行 名称 //收款方开户行 CNAPS号 ,行号 data.put("RECE_CNAPS",skyhinfo.get("number")+""); //收款方户名 data.put("RECE_ACC_NAME",info.get("recaccbankname")+""); //收款方账号 data.put("RECE_ACC_NO",info.get("payeebanknum")+""); //付款单位--->公司编号 if(info.get("org")!=null){//付款单位--->公司编号 String companyNumber = TypeUtils.nullToString(info.get("org.number")); data.put("PAY_CLT_NO",companyNumber); } //付款账号 DynamicObject payeracctbankEntity = BusinessDataServiceHelper.loadSingle(info.getDynamicObject("payeracctbank").getPkValue(), "am_accountbank"); String payeracc = payeracctbankEntity.getString("bankaccountnumber"); String payername = payeracctbankEntity.getString("acctname"); //付款方账号 ---> 付款账户基础资料银行账号 data.put("PAY_ACNT_NO",payeracc); //付款银行 ---> 金融机构行号编码,是不是就是金融机构编码 data.put("PAY_CNAPS",payeracctbankEntity.get("bank.number")+""); data.put("AMOUNT",info.getBigDecimal("actpayamt").setScale(2, RoundingMode.DOWN)); //币别 if("CNY".equals(info.get("currency.number"))){ data.put("CURRENCY","BB01"); } //无用字段 data.put("CLT_NO",JSONObject.NULL); data.put("PAY_ACNT_NAME",JSONObject.NULL); data.put("PAY_BANK",JSONObject.NULL); data.put("CASHAMOUNT",JSONObject.NULL); data.put("BILLAMOUNT",JSONObject.NULL); data.put("RECE_BANK_NO",JSONObject.NULL); data.put("REG_NO",JSONObject.NULL); data.put("TERM",JSONObject.NULL); data.put("PAY_FLAG",JSONObject.NULL); data.put("PAY_NUM","0"); data.put("OP_ACNT_LIST",JSONObject.NULL); //应付票据逻辑,不需要付息方式了 // if ("012".equals(info.get("settletype.number"))) { // 012 应付票据(银行承兑汇票) // DynamicObject payInterest =info.getDynamicObject("payInterest"); // if (payInterest != null) { // paymentBill.setPAY_INTEREST(payInterest.get("number")+""); // } // } return data; } public static String createSinglePaymentRequest(DynamicObject payBillEntity,String JKNO) { try { JSONObject param = new JSONObject(); headJson(param); JSONObject datainfo=getServiceBean_youhua( payBillEntity); param.put("data",datainfo); param.put("txDateTime",Utils.getData(new Date(), "yyyyMMddHHmmss")); param.put("batchNo",TypeUtils.nullToString(payBillEntity.get("billno"))+"-"+TypeUtils.nullToString(payBillEntity.get("nckd_bbh"))+"-"+Utils.getData(new Date(), "yyyyMMddHHmmss")); param.put("code",JKNO); String text = param.toString(); return text; } catch (Exception e) { e.printStackTrace(); return null; } } public static void headJson(JSONObject param){ param.put("nodeId","client.001"); param.put("channelId","EAS"); param.put("clientId","001"); param.put("clientName","金蝶"); } private static void createElement(Document doc, Element parent, String name, String value) { Element element = doc.createElement(name); element.appendChild(doc.createTextNode(value)); parent.appendChild(element); } /** * 代发单支付 * @params billEntities * @returns 返回报错信息 * */ public static String agentpayBillForCBSSync(DynamicObject[] billEntities) { StringBuffer errMsg = new StringBuffer(); //获取接口链接等信息 DynamicObject jkpzxx = BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",new QFilter[]{new QFilter("number","=","paytoJHX")}); String url = jkpzxx.getString("nckd_servername"); for (DynamicObject dataEntity : billEntities) { boolean isSuccess = false;//是否成功标识 boolean isZFQZ = true; Map qzObject = new HashMap<>(); DynamicObject payBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), AGENT_ENTITY_NAME); /** * 判断是否可以走前置支付 * 1、代发单为审核状态 * 2、支付状态为未支付 */ String billNum = payBillEntity.getString("billno"); String billstatusString = payBillEntity.getString("billstatus"); String paystatus = payBillEntity.getString("nckd_paystatus"); int bbh = payBillEntity.getInt("nckd_bbh"); int fkcs = payBillEntity.getInt("nckd_fkcs"); if (!"C".equals(billstatusString)) { errMsg.append("单据号:").append(billNum).append(",代发单为审核状态,才能提交~\r\n"); isZFQZ = false; } if (!"1".equals(paystatus) && !"".equals(paystatus)) { errMsg.append("单据号:").append(billNum).append(",代发单为未支付,才能提交~\r\n"); isZFQZ = false; } if(bbh>=1 && bbh!=fkcs){ errMsg.append("单据号:").append(billNum).append(",代发单未调整,请调整数据,或点击重付~\r\n"); isZFQZ = false; } if(payBillEntity.getDynamicObject("payeracctbank")==null) { errMsg.append("单据号:").append(billNum).append(",付款账户为空~\r\n"); isZFQZ = false; } /*** * 审批时校验,如果资金银企行号包含,则提交九恒星,否则不提交。待补充 */ //构建支付数据导入请求xml String qjjson = createSingleAgentPaymentRequest_1(payBillEntity); if(qjjson==null){ isZFQZ = false; errMsg.append("单据号:").append(billNum).append("无法拼出正确的json请求~\r\n"); } if(!isZFQZ){ continue; } log.info("单据号:"+billNum+"传入参数"+qjjson); if("".equals(url)){ url="http://172.16.150.71:7081/FDLKF_OUTER/webservice/TxServiceGateway"; } JSONObject cbsReturnJson =httpjhxService(url,qjjson); log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString()); //存入日志表 saveAgentlog(payBillEntity,qjjson,cbsReturnJson.toString(),"1"); if(cbsReturnJson==null){ isSuccess = false; errMsg.append("单据号:").append(billNum).append(",推送资金系统失败,"); errMsg.append("错误号:").append("XXXXXXX"); errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果"); errMsg.append("\r\n"); }else if(!"000000".equals(cbsReturnJson.get("resultCode"))){ isSuccess = false; cbsReturnJson.get("resultCode"); String resultMsg = cbsReturnJson.get("resultMsg")+""; if(resultMsg.indexOf("单据是非驳回状态")>=0||resultMsg.indexOf("付款指令重复")>=0){//指令重复,说明已经传过去了,改状态为支付中,查询结果 isSuccess = true; errMsg.append("单据号:").append(billNum).append("付款指令重复,说明已推送到资金系统!"); payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1 payBillEntity.set("nckd_sbyy","指令重复,已推送到资金系统");//返回信息 payBillEntity.set("nckd_paystatus",2);//支付中 }else{ //如果不是驳回或重发,失败 errMsg.append("单据号:").append(billNum).append(",推送资金系统失败,"); errMsg.append("错误号:").append(cbsReturnJson.get("resultCode")); errMsg.append(",错误原因:").append(resultMsg); errMsg.append("\r\n"); payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1 payBillEntity.set("nckd_paystatus",4);//传输失败 payBillEntity.set("nckd_sbyy",cbsReturnJson.get("resultMsg")+"");//错误信息 SaveServiceHelper.update(new DynamicObject[]{payBillEntity}); } }else if("000000".equals(cbsReturnJson.get("resultCode"))){//已受理,改为支付中 String resultMsg = cbsReturnJson.get("resultMsg")+""; if("SUCCESS".equals(resultMsg)){ isSuccess = true; errMsg.append("单据号:").append(billNum).append(",推送资金系统成功!"); payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1 payBillEntity.set("nckd_sbyy","传输成功");//返回信息 payBillEntity.set("nckd_paystatus",2);//支付中 } } if (isSuccess) { SaveServiceHelper.update(new DynamicObject[]{payBillEntity}); } } return errMsg.toString(); } /** * 支付单同步 * @params billEntities * @returns 返回报错信息 * */ public static String payBillForCBSSync(DynamicObject[] billEntities) { StringBuffer errMsg = new StringBuffer(); //获取接口链接等信息 DynamicObject jkpzxx = BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",new QFilter[]{new QFilter("number","=","paytoJHX")}); String url = jkpzxx.get("nckd_servername")+""; for (DynamicObject dataEntity : billEntities) { boolean isSuccess = false; boolean isZFQZ = true; DynamicObject payBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), ENTITY_NAME); /** * 判断是否可以走前置支付 * 1、付款单为审核状态 * 2、支付状态为未支付 * 3、版本号>=1时,必须等于付款次数 */ String billNum = payBillEntity.getString("billno"); String billstatusString = payBillEntity.getString("billstatus"); String paystatus = payBillEntity.getString("nckd_paystatus"); int bbh = payBillEntity.getInt("nckd_bbh"); int fkcs = payBillEntity.getInt("nckd_fkcs"); //查询流水,如果存在流水,则不能支付 String billno = payBillEntity.get("billno")+""; // QFilter orgFilter = new QFilter("nckd_reserve80", "like", "%"+billno+"%"); // DynamicObject fkclinfo = BusinessDataServiceHelper.loadSingle("bei_transdetail","",new QFilter[]{orgFilter}); if (!"C".equals(billstatusString)) { errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能提交~\r\n"); isZFQZ = false; } if (!"1".equals(paystatus) && !"".equals(paystatus)) { errMsg.append("单据号:").append(billNum).append(",付款单为未支付,才能提交~\r\n"); isZFQZ = false; } if(bbh>=1 && bbh!=fkcs){ errMsg.append("单据号:").append(billNum).append(",付款单未调整,请调整数据,或点击重付~\r\n"); isZFQZ = false; } if(payBillEntity.getDynamicObject("payeracctbank")==null) { errMsg.append("单据号:").append(billNum).append(",付款账户为空~\r\n"); isZFQZ = false; } if(payBillEntity.getDynamicObject("payeebank")==null) { errMsg.append("单据号:").append(billNum).append(",收款账户为空~\r\n"); isZFQZ = false; } //流水判断 待补充 // if(fkclinfo!=null && isZFQZ) { // errMsg.append("单据号:").append(billNum).append(",已存在支付流水,为防止重复付款,无法提交。请联系运维核查数据\r\n"); // isZFQZ = false; // } //是否资金调度逻辑,用新增入口 boolean IS_TRANSFER=false;//判断是否资金调度 String entrance = payBillEntity.get("entrance")+""; if("SYN".equals(entrance)||"SPAN".equals(entrance)){ IS_TRANSFER = true; } // if(IS_TRANSFER){ // isZFQZ = false; // errMsg.append("单据号:").append(billNum).append(",跨主体调拨或者同名转账~\r\n"); // } /*** * 根据付款单结算方式,结算方式类似承兑的调用资金的票据接口,结算方式为其他的调用资金的对外付款接口 */ String JKNO=""; String settletype = payBillEntity.get("settletype.number")+""; if(settletype!=null&&!"".equals(settletype)){ if(settletype.equals("BILL")){//票据 JKNO="NSTC-T002"; }else{ JKNO="NSTC-T001"; } }else{ isZFQZ = false; errMsg.append("单据号:").append(billNum).append(",结算方式为空~\r\n"); } //付款单审批时校验未上线银行基础数据资料表,待补充 /*** * 审批时校验,如果资金银企行号包含,则提交九恒星,否则不提交。 */ String qjjson=""; if(isZFQZ) { //构建请求对象 qjjson = createSinglePaymentRequest(payBillEntity, JKNO); if (qjjson == null) { isZFQZ = false; errMsg.append("单据号:").append(billNum).append(",无法拼出正确的json请求~\r\n"); } } if(!isZFQZ){ continue; } //qjjson = "{\"code\":\"NSTC-T001\",\"batchNo\":\"PV-202504-000041-0-20250427106427\",\"nodeId\":\"client.001\",\"channelId\":\"EAS\",\"clientId\":\"001\",\"clientName\":\"金蝶\",\"txDateTime\":\"20250425175615\",\"data\":{\"ERP_INS_ID\":\""+billNum+"-"+bbh+"\",\"PAY_CLT_NO\":\"A004\",\"CLT_NO\":null,\"PAY_ACNT_NO\":\"824581178610001\",\"PAY_ACNT_NAME\":null,\"PAY_BANK\":null,\"PAY_CNAPS\":\"308421022063\",\"PAY_DATE\":\"2025-04-25\",\"AMOUNT\":3234,\"CASHAMOUNT\":null,\"BILLAMOUNT\":null,\"CURRENCY\":\"BB01\",\"BUSS_TYPE\":null,\"RECE_ACC_NO\":\"1\",\"RECE_ACC_NAME\":\"1\",\"RECE_OPBANK_NAME\":\"非税缴款\",\"RECE_BANK_NO\":null,\"RECE_CNAPS\":\"001100000001\",\"REG_NO\":null,\"IS_PERSON\":\"0\",\"URGENT_FLAG\":\"0\",\"PURPOSE\":\"用途\",\"REMARK\":\"缴款码(XXX)\",\"CREATOR\":\"张清全\",\"CREATE_TIME\":\"2025-04-25\",\"ERP_PAYNO\":\"PV-202504-000041-0\",\"TERM\":null,\"IS_TRANSFER\":\"0\",\"PAY_FLAG\":null,\"FBillStatus\":12,\"PAY_NUM\":0,\"OP_ACNT_LIST\":null}}"; log.info("单据号:"+billNum+"传入参数"+qjjson); if("".equals(url)){ url="http://172.16.150.71:7081/FDLKF_OUTER/webservice/TxServiceGateway"; } JSONObject cbsReturnJson =httpjhxService(url,qjjson); log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString()); //存入日志表 savelog(payBillEntity,qjjson,cbsReturnJson.toString()); if(cbsReturnJson==null){ isSuccess = false; errMsg.append("单据号:").append(billNum).append(",推送资金系统失败,"); errMsg.append("错误号:").append("XXXXXXX"); errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果"); errMsg.append("\r\n"); }else if(!"000000".equals(cbsReturnJson.get("resultCode"))){ isSuccess = false; cbsReturnJson.get("resultCode"); String resultMsg = cbsReturnJson.get("resultMsg")+""; if(resultMsg.indexOf("单据是非驳回状态")>=0||resultMsg.indexOf("付款指令重复")>=0){//指令重复,说明已经传过去了,改状态为支付中,查询结果 isSuccess = true; errMsg.append("单据号:").append(billNum).append("付款指令重复,说明已推送到资金系统!"); payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1 payBillEntity.set("nckd_sbyy","指令重复,已推送到资金系统");//返回信息 payBillEntity.set("nckd_paystatus",2);//支付中 }else{ //如果不是驳回或重发,失败 errMsg.append("单据号:").append(billNum).append(",推送资金系统失败,"); errMsg.append("错误号:").append(cbsReturnJson.get("resultCode")); errMsg.append(",错误原因:").append(resultMsg); errMsg.append("\r\n"); payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1 payBillEntity.set("nckd_paystatus",4);//传输失败 payBillEntity.set("nckd_sbyy",cbsReturnJson.get("resultMsg")+"");//错误信息 SaveServiceHelper.update(new DynamicObject[]{payBillEntity}); } }else if("000000".equals(cbsReturnJson.get("resultCode"))){//已受理,改为支付中 String resultMsg = cbsReturnJson.get("resultMsg")+""; if("SUCCESS".equals(resultMsg)){ isSuccess = true; errMsg.append("单据号:").append(billNum).append(",推送资金系统成功!"); payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1 payBillEntity.set("nckd_sbyy","传输成功");//返回信息 payBillEntity.set("nckd_paystatus",2);//支付中 } } if (isSuccess) { SaveServiceHelper.update(new DynamicObject[]{payBillEntity}); } } return errMsg.toString(); } public static void saveAgentlog(DynamicObject payBillEntity,String qqbw,String fhbw,String type){ try { DynamicObject logInfo = new DynamicObject( EntityMetadataCache.getDataEntityType("nckd_dfjkdyrz")); String channelserno = payBillEntity.getString("billno"); logInfo.set("number",channelserno); if("1".equals(type)){ logInfo.set("name",payBillEntity.get("billno")+"支付数据传输日志"); }else if("6".equals(type)){ logInfo.set("name",payBillEntity.get("billno")+"代发单支付信息查询日志"); } logInfo.set("nckd_jklx",type); logInfo.set("status","A"); logInfo.set("enable","1"); Calendar currentdate = Calendar.getInstance(); logInfo.set("nckd_redate",currentdate.getTime()); logInfo.set("nckd_billno",payBillEntity.get("billno")); logInfo.set("nckd_payid",payBillEntity.getPkValue()+""); logInfo.set("nckd_qqbw_tag",qqbw); logInfo.set("nckd_fhbw_tag",fhbw); logInfo.set("nckd_redate",new Date()); logInfo.set("nckd_djlx","2"); OperationServiceHelper.executeOperate("save","nckd_zfjkdyrz",new DynamicObject[]{logInfo}); }catch (Exception e){ log.info("保存日志报错"+e.getMessage()); } } public static void savePayDayChecklog(String qqbw,String fhbw){ try { DynamicObject logInfo = new DynamicObject( EntityMetadataCache.getDataEntityType("nckd_paydaycheck")); Calendar currentdate = Calendar.getInstance(); String enddzrq = TypeUtils.date2String(currentdate.getTime(),"yyyy-MM-dd HH:mm:ss"); logInfo.set("number",enddzrq); logInfo.set("name",enddzrq+"付款日结查询日志"); logInfo.set("status","A"); logInfo.set("enable","1"); logInfo.set("nckd_qqbw_tag",qqbw); logInfo.set("nckd_fhbw_tag",fhbw); OperationServiceHelper.executeOperate("save","nckd_paydaycheck",new DynamicObject[]{logInfo}); }catch (Exception e){ log.info("保存日志报错"+e.getMessage()); } } public static void savelog(DynamicObject payBillEntity,String qqbw,String fhbw){ try { DynamicObject logInfo = new DynamicObject( EntityMetadataCache.getDataEntityType("nckd_zfjkdyrz")); String channelserno = payBillEntity.get("billno")+"-"+payBillEntity.getInt("nckd_bbh"); logInfo.set("number",channelserno); logInfo.set("name",payBillEntity.get("billno")+"付款日志"); logInfo.set("status","A"); logInfo.set("enable","1"); Calendar currentdate = Calendar.getInstance(); logInfo.set("nckd_redate",currentdate.getTime()); logInfo.set("nckd_billno",payBillEntity.get("billno")); logInfo.set("nckd_payid",payBillEntity.getPkValue()+""); logInfo.set("nckd_qqbw_tag",qqbw); logInfo.set("nckd_fhbw_tag",fhbw); logInfo.set("nckd_redate",new Date()); logInfo.set("nckd_djlx","1"); OperationServiceHelper.executeOperate("save","nckd_zfjkdyrz",new DynamicObject[]{logInfo}); }catch (Exception e){ log.info("保存日志报错"+e.getMessage()); } } public static void saveupdatelog(DynamicObject payBillEntity,String qqbw,String fhbw){ try { DynamicObject logInfo = new DynamicObject( EntityMetadataCache.getDataEntityType("nckd_zfcxjkrz")); String channelserno = payBillEntity.get("billno")+"-"+payBillEntity.getInt("nckd_bbh"); logInfo.set("number",channelserno); logInfo.set("name",payBillEntity.get("billno")+"查询状态日志"); logInfo.set("status","A"); logInfo.set("enable","1"); Calendar currentdate = Calendar.getInstance(); logInfo.set("nckd_redate",currentdate.getTime()); logInfo.set("nckd_billno",payBillEntity.get("billno")); logInfo.set("nckd_payid",payBillEntity.getPkValue()+""); logInfo.set("nckd_qqbw_tag",qqbw); logInfo.set("nckd_fhbw_tag",fhbw); logInfo.set("nckd_redate",new Date()); logInfo.set("nckd_djlx","1"); OperationServiceHelper.executeOperate("save","nckd_zfcxjkrz",new DynamicObject[]{logInfo}); }catch (Exception e){ log.info("保存日志报错"+e.getMessage()); } } public static JSONObject httpjhxService(String url,String qjjson){ String result =""; try { Date d1 = new Date(); TxServiceGatewayProxy txServiceGatewayProxy=new TxServiceGatewayProxy("",url); result = txServiceGatewayProxy.send(qjjson); Date d2 = new Date(); long diffs = Math.abs(d2.getTime()-d1.getTime())/1000; JSONObject jsonObject=new JSONObject(result); if(jsonObject!=null){ if("{}".equals(jsonObject.toString())||"".equals(result)){ if(diffs>60){//超时 jsonObject.put("resultCode","JFXXXXC"); jsonObject.put("resultMsg","超时"); } } jsonObject.put("请求时间",TypeUtils.date2String(d1,TypeUtils.DEFAULT_TIMESTAMP_FORMAT)); jsonObject.put("返回时间",TypeUtils.date2String(d2,TypeUtils.DEFAULT_TIMESTAMP_FORMAT)); jsonObject.put("响应时长",diffs+""); } return jsonObject; } catch (IOException e) { e.printStackTrace(); log.info(e.getMessage()); } return null; } public static JSONObject JHXServiceQuery(String url,String bodyjson){ try { Date d1 = new Date(); TxServiceGatewayProxy txServiceGatewayProxy=new TxServiceGatewayProxy("",url); String result=txServiceGatewayProxy.send(bodyjson); Date d2 = new Date(); long diffs = Math.abs(d2.getTime()-d1.getTime())/1000; JSONObject jsonObject =new JSONObject(result); if(jsonObject!=null||"".equals(result)||result==null){ if("{}".equals(jsonObject.toString())){ if(diffs>60){//超时 jsonObject.put("resultCode","JFXXXXC"); jsonObject.put("resultMsg","超时"); } } jsonObject.put("请求时间",TypeUtils.date2String(d1,TypeUtils.DEFAULT_TIMESTAMP_FORMAT)); jsonObject.put("返回时间",TypeUtils.date2String(d2,TypeUtils.DEFAULT_TIMESTAMP_FORMAT)); jsonObject.put("响应时长",diffs+""); } return jsonObject; } catch (IOException e) { e.printStackTrace(); log.info(e.getMessage()); } return null; } public static JSONObject socketServiceAgent(String serverName,String port,String xmlData,String transcode){ try { Date d1 = new Date(); Socket client = new Socket(serverName,TypeUtils.nullToInt(port)); int messageLength = xmlData.getBytes("GBK").length; String header = String.format("%08d", messageLength); String fullMessage = header + xmlData; OutputStream outToServer = client.getOutputStream(); PrintWriter out = new PrintWriter(new OutputStreamWriter(outToServer, "GBK"), true); out.println(fullMessage); InputStream inFromServer = client.getInputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(inFromServer, "GBK")); StringBuilder responseBuilder = new StringBuilder(); String line; while ((line = in.readLine()) != null) { responseBuilder.append(line); } String responseJson = responseBuilder.toString(); if(responseJson.indexOf("0){ int index = responseJson.indexOf("50){//超时 JSONObject Message = new JSONObject(); JSONObject HeadInfo = new JSONObject(); HeadInfo.put("errorcode","JFXXXXC"); HeadInfo.put("errormsg","超时"); Message.put("HeadInfo",HeadInfo); jsonObject.put("Message",Message); } } jsonObject.put("请求时间",TypeUtils.date2String(d1,TypeUtils.DEFAULT_TIMESTAMP_FORMAT)); jsonObject.put("返回时间",TypeUtils.date2String(d2,TypeUtils.DEFAULT_TIMESTAMP_FORMAT)); jsonObject.put("响应时长",diffs+""); } client.close(); return jsonObject; } catch (IOException e) { e.printStackTrace(); log.info(e.getMessage()); } return null; } }