|
@@ -75,15 +75,48 @@ public class PayBillToolUtil {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * 代发单部分成功,关闭支付
|
|
|
|
|
|
+ * 代发单执行失败,关闭支付
|
|
* @param agentpayBillEntity
|
|
* @param agentpayBillEntity
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public static String createSingleAgentPaymentRequest_4(DynamicObject agentpayBillEntity) {
|
|
public static String createSingleAgentPaymentRequest_4(DynamicObject agentpayBillEntity) {
|
|
- return "";
|
|
|
|
|
|
+ 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,"ACHRDATF");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 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;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * 代发单全部成功,关闭支付
|
|
|
|
|
|
+ * 代发单执行成功,关闭支付
|
|
* @param agentpayBillEntity
|
|
* @param agentpayBillEntity
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -172,22 +205,88 @@ public class PayBillToolUtil {
|
|
* @param agentpayBillEntity
|
|
* @param agentpayBillEntity
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public static String createSingleAgentPaymentRequest_6(DynamicObject agentpayBillEntity) {
|
|
|
|
- return "";
|
|
|
|
|
|
+ public static String createSingleAgentPaymentRequest_6(DynamicObject agentpayBillEntity,String filename) {
|
|
|
|
+ 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,"ACHRDTLQ");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Element body = doc.createElement("BodyInfo");
|
|
|
|
+ rootElement.appendChild(body);
|
|
|
|
+
|
|
|
|
+ agentPaymentXMLBody_EntryQuery(agentpayBillEntity,filename,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;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 代发单重发,只传失败的数据
|
|
|
|
|
|
+ * 代发单重发
|
|
* @param agentpayBillEntity
|
|
* @param agentpayBillEntity
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public static String createSingleAgentPaymentRequest_7(DynamicObject agentpayBillEntity) {
|
|
public static String createSingleAgentPaymentRequest_7(DynamicObject agentpayBillEntity) {
|
|
- return "";
|
|
|
|
|
|
+ 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,"ACHRDATR");
|
|
|
|
+
|
|
|
|
+ Element body = doc.createElement("BodyInfo");
|
|
|
|
+ rootElement.appendChild(body);
|
|
|
|
+ agentPaymentXMLBody_Msg(agentpayBillEntity,doc,body);
|
|
|
|
+
|
|
|
|
+ agentPaymentXMLBody_Entry(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;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 代发单发起支付..待完善
|
|
|
|
|
|
+ * 代发单发起支付
|
|
* @param agentpayBillEntity
|
|
* @param agentpayBillEntity
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -279,51 +378,87 @@ public class PayBillToolUtil {
|
|
createElement(doc, head, "channelcode", CHANNELCODE_PILIANG);//发起渠道
|
|
createElement(doc, head, "channelcode", CHANNELCODE_PILIANG);//发起渠道
|
|
Calendar currentdate = Calendar.getInstance();
|
|
Calendar currentdate = Calendar.getInstance();
|
|
String datacur = TypeUtils.date2String(currentdate.getTime(),"yyyyMMdd");
|
|
String datacur = TypeUtils.date2String(currentdate.getTime(),"yyyyMMdd");
|
|
|
|
+ String datacur_Hms = TypeUtils.date2String(currentdate.getTime(),"HHmmss");
|
|
createElement(doc, head, "channeldate", datacur);//发起渠道日期
|
|
createElement(doc, head, "channeldate", datacur);//发起渠道日期
|
|
- String channelserno = datacur+"-"+currentdate.get(Calendar.HOUR)+""+currentdate.get(Calendar.MINUTE)+""+currentdate.get(Calendar.SECOND);
|
|
|
|
- createElement(doc, head, "channelserno", channelserno);//发起渠道流水
|
|
|
|
- createElement(doc, head, "channeltime", currentdate.get(Calendar.HOUR)+""+currentdate.get(Calendar.MINUTE)+""+currentdate.get(Calendar.SECOND));
|
|
|
|
|
|
+ String channelserno = datacur+"-"+datacur_Hms+agentpayBillEntity.getString("billNo");
|
|
|
|
+ createElement(doc, head, "channelserno", channelserno.substring(0,20));//发起渠道流水
|
|
|
|
+ createElement(doc, head, "channeltime", datacur_Hms);
|
|
|
|
|
|
createElement(doc, head, "brno", "");//交易发起机构,可为空,默认100800
|
|
createElement(doc, head, "brno", "");//交易发起机构,可为空,默认100800
|
|
- createElement(doc, head, "bustype", "");
|
|
|
|
- createElement(doc, head, "buskind", "");
|
|
|
|
|
|
+ createElement(doc, head, "tellerno", "");
|
|
|
|
+ createElement(doc, head, "terminalno", "");
|
|
createElement(doc, head, "reserve", "");
|
|
createElement(doc, head, "reserve", "");
|
|
}
|
|
}
|
|
|
|
|
|
public static void agentPaymentXMLBody_Msg(DynamicObject agentpayBillEntity,Document doc,Element body) {
|
|
public static void agentPaymentXMLBody_Msg(DynamicObject agentpayBillEntity,Document doc,Element body) {
|
|
- createElement(doc, body, "FileName",agentpayBillEntity.getString("nckd_filename") );//文件名称
|
|
|
|
- createElement(doc, body, "FileType",agentpayBillEntity.getString("nckd_filetype") );//文件类型
|
|
|
|
|
|
|
|
- //付款账号
|
|
|
|
DynamicObject payeracctbankEntity = BusinessDataServiceHelper.loadSingleFromCache(agentpayBillEntity.getDynamicObject("payeracctbank").getPkValue(), "am_accountbank");
|
|
DynamicObject payeracctbankEntity = BusinessDataServiceHelper.loadSingleFromCache(agentpayBillEntity.getDynamicObject("payeracctbank").getPkValue(), "am_accountbank");
|
|
String payeracc = payeracctbankEntity.getString("bankaccountnumber");
|
|
String payeracc = payeracctbankEntity.getString("bankaccountnumber");
|
|
String payername = payeracctbankEntity.getString("acctname");
|
|
String payername = payeracctbankEntity.getString("acctname");
|
|
|
|
+ String jgh = payeracctbankEntity.getString("nckd_jgh");
|
|
|
|
+ if("".equals(jgh)){
|
|
|
|
+ jgh = "791100";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String filename=agentpayBillEntity.getString("nckd_filename");
|
|
|
|
+ if("".equals(filename)){
|
|
|
|
+ filename = agentpayBillEntity.getString("billNo");
|
|
|
|
+ }
|
|
|
|
+ filename=jgh+filename;//机构号
|
|
|
|
+ createElement(doc, body, "FileName",filename );//文件名称
|
|
|
|
+ createElement(doc, body, "FileType","01" );//文件类型
|
|
|
|
+
|
|
|
|
+ //付款账号
|
|
|
|
+
|
|
createElement(doc, body, "OutRichNbr", payeracc);//出款户口号
|
|
createElement(doc, body, "OutRichNbr", payeracc);//出款户口号
|
|
|
|
|
|
- createElement(doc, body, "HrSignnbr", agentpayBillEntity.getString("billno"));//人力流水号
|
|
|
|
|
|
+ createElement(doc, body, "HrSignNbr", agentpayBillEntity.getString("billno"));//人力流水号
|
|
createElement(doc, body, "CcyNbr", "156");//币种,写死人名币
|
|
createElement(doc, body, "CcyNbr", "156");//币种,写死人名币
|
|
- createElement(doc, body, "CCYTYPE", "0");//币种,写死人名币
|
|
|
|
- createElement(doc, body, "TOTALNUM", agentpayBillEntity.getString("count"));//汇总笔数
|
|
|
|
- createElement(doc, body, "TOTALAMT", agentpayBillEntity.getBigDecimal("payamount").setScale(2, RoundingMode.DOWN).toString());//汇总金额
|
|
|
|
|
|
+ createElement(doc, body, "CcyType", "0");//币种,写死人名币
|
|
|
|
+ createElement(doc, body, "TotalNum", agentpayBillEntity.getString("count"));//汇总笔数
|
|
|
|
+ createElement(doc, body, "TotalAmt", agentpayBillEntity.getBigDecimal("payamount").setScale(2, RoundingMode.DOWN).toString());//汇总金额
|
|
createElement(doc, body, "FeeFlag", "0");//收费标志
|
|
createElement(doc, body, "FeeFlag", "0");//收费标志
|
|
|
|
+
|
|
|
|
+ createElement(doc, body, "RichNbr", payeracc);
|
|
|
|
+ createElement(doc, body, "FundType", "7");
|
|
|
|
+ createElement(doc, body, "RichName", payername);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ createElement(doc, body, "QryBrnNbr", jgh);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
public static void agentPaymentXMLBody_Entry(DynamicObject agentpayBillEntity,Document doc,Element body) {
|
|
public static void agentPaymentXMLBody_Entry(DynamicObject agentpayBillEntity,Document doc,Element body) {
|
|
// 获取分录数据
|
|
// 获取分录数据
|
|
DynamicObjectCollection entryList = agentpayBillEntity.getDynamicObjectCollection("entry");
|
|
DynamicObjectCollection entryList = agentpayBillEntity.getDynamicObjectCollection("entry");
|
|
|
|
|
|
- for (DynamicObject entry : entryList) {
|
|
|
|
- Element achrapaydtl_i = doc.createElement("achrapaydtl_i"); // 每条数据用一个achrapaydtl_i元素包裹
|
|
|
|
|
|
+ for (int i = 0; i <entryList.size() ; i++) {
|
|
|
|
+ DynamicObject entry = entryList.get(i);
|
|
|
|
+ Element achrapaydtl_i = doc.createElement("achrpaydtl_i"); // 每条数据用一个achrapaydtl_i元素包裹
|
|
body.appendChild(achrapaydtl_i);
|
|
body.appendChild(achrapaydtl_i);
|
|
|
|
|
|
createElement(doc, achrapaydtl_i, "IdenNbr", entry.getString("nckd_zjh"));//证件号
|
|
createElement(doc, achrapaydtl_i, "IdenNbr", entry.getString("nckd_zjh"));//证件号
|
|
createElement(doc, achrapaydtl_i, "InRichNbr", entry.getString("payeeacctbank"));//收款户口号
|
|
createElement(doc, achrapaydtl_i, "InRichNbr", entry.getString("payeeacctbank"));//收款户口号
|
|
- createElement(doc, achrapaydtl_i, "PayAmt", entry.getBigDecimal("e_amount").setScale(2, RoundingMode.DOWN).toString());//支付金额
|
|
|
|
|
|
+ createElement(doc, achrapaydtl_i, "PayAmt", entry.getBigDecimal("entryunmatchamount").setScale(2, RoundingMode.DOWN).toString());//支付金额
|
|
|
|
+ createElement(doc, achrapaydtl_i, "CurContentSeq", i+1+"");//展示条数
|
|
createElement(doc, achrapaydtl_i, "RowCnt", "10000");//展示条数
|
|
createElement(doc, achrapaydtl_i, "RowCnt", "10000");//展示条数
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+ public static void agentPaymentXMLBody_EntryQuery(DynamicObject agentpayBillEntity,String filename,Document doc,Element body) {
|
|
|
|
+
|
|
|
|
+ createElement(doc, body, "IdenNbr", "");//证件号
|
|
|
|
+ createElement(doc, body, "InRichNbr","");//收款户口号
|
|
|
|
+ createElement(doc, body, "PayAmt", "");//支付金额
|
|
|
|
+
|
|
|
|
+ createElement(doc, body, "QryFileName",filename );//文件名称
|
|
|
|
+ createElement(doc, body, "RowCnt", "10000");//展示条数
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
public static String createSinglePaymentRequest(DynamicObject payBillEntity) {
|
|
public static String createSinglePaymentRequest(DynamicObject payBillEntity) {
|
|
try {
|
|
try {
|
|
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
|
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
|
@@ -401,6 +536,199 @@ public class PayBillToolUtil {
|
|
parent.appendChild(element);
|
|
parent.appendChild(element);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 代发单重新支付-第四步
|
|
|
|
+ * @params billEntities
|
|
|
|
+ * @returns 返回报错信息
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ public static String repaytozfqz(DynamicObject[] billEntities) {
|
|
|
|
+ StringBuffer errMsg = new StringBuffer();
|
|
|
|
+ //获取接口链接等信息
|
|
|
|
+ DynamicObject jkpzxx = BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",new QFilter[]{new QFilter("number","=","paytozfqz")});
|
|
|
|
+ String servername = jkpzxx.getString("nckd_servername");
|
|
|
|
+ String port = jkpzxx.getString("nckd_port");
|
|
|
|
+
|
|
|
|
+ for (DynamicObject dataEntity : billEntities) {
|
|
|
|
+ boolean isSuccess = false;//第四步是否成功标识
|
|
|
|
+ boolean isZFQZ = true;
|
|
|
|
+ Map<String, String> qzObject = new HashMap<>();
|
|
|
|
+ DynamicObject payBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), AGENT_ENTITY_NAME);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断是否可以走前置支付
|
|
|
|
+ * 1、代发单为审核状态
|
|
|
|
+ * 2、支付状态为支付中
|
|
|
|
+ * 3、核心状态为支付处理部分成功
|
|
|
|
+ */
|
|
|
|
+ String billNum = payBillEntity.getString("billno");
|
|
|
|
+ String billstatusString = payBillEntity.getString("billstatus");
|
|
|
|
+ String paystatus = payBillEntity.getString("nckd_paystatus");
|
|
|
|
+ String nckd_hxzt = payBillEntity.getString("nckd_hxzt");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (!"C".equals(billstatusString)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能重发~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if (!"B".equals(paystatus) && !"".equals(paystatus)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款单为支付中,才能重发~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if (!"B".equals(nckd_hxzt) && !"".equals(nckd_hxzt)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",核心状态为支付处理部分成功,才能重发~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if(payBillEntity.getDynamicObject("payeracctbank")==null) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款账户为空~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String[] returnmsg_2 = agentpayBillFukuan_chongfa(servername,port,payBillEntity);
|
|
|
|
+ errMsg.append(returnmsg_2[1]);
|
|
|
|
+ if("2".equals(returnmsg_2[0])){//第四步成功
|
|
|
|
+ isSuccess=true;
|
|
|
|
+ payBillEntity.set("nckd_hxzt","R");//改核心状态为已登记等待执行结果
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (isSuccess) {
|
|
|
|
+ SaveServiceHelper.update(new DynamicObject[]{payBillEntity});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return errMsg.toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 代发单支付-补传第二步
|
|
|
|
+ * @params billEntities
|
|
|
|
+ * @returns 返回报错信息
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ public static String agentpayzx(DynamicObject[] billEntities) {
|
|
|
|
+ StringBuffer errMsg = new StringBuffer();
|
|
|
|
+ //获取接口链接等信息
|
|
|
|
+ DynamicObject jkpzxx = BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",new QFilter[]{new QFilter("number","=","paytozfqz")});
|
|
|
|
+ String servername = jkpzxx.getString("nckd_servername");
|
|
|
|
+ String port = jkpzxx.getString("nckd_port");
|
|
|
|
+
|
|
|
|
+ for (DynamicObject dataEntity : billEntities) {
|
|
|
|
+ boolean isSuccess = false;//第二步是否成功标识
|
|
|
|
+ boolean isZFQZ = true;
|
|
|
|
+ Map<String, String> qzObject = new HashMap<>();
|
|
|
|
+ DynamicObject payBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), AGENT_ENTITY_NAME);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断是否可以走前置支付
|
|
|
|
+ * 1、代发单为审核状态
|
|
|
|
+ * 2、支付状态为支付中
|
|
|
|
+ * 3、核心状态为已登记执行失败
|
|
|
|
+ */
|
|
|
|
+ String billNum = payBillEntity.getString("billno");
|
|
|
|
+ String billstatusString = payBillEntity.getString("billstatus");
|
|
|
|
+ String paystatus = payBillEntity.getString("nckd_paystatus");
|
|
|
|
+ String nckd_hxzt = payBillEntity.getString("nckd_hxzt");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (!"C".equals(billstatusString)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能提交执行~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if (!"B".equals(paystatus) && !"".equals(paystatus)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款单为支付中,才能提交执行~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if (!"A".equals(nckd_hxzt) && !"".equals(nckd_hxzt)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",核心状态为已登记执行失败,才能提交执行~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if(payBillEntity.getDynamicObject("payeracctbank")==null) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款账户为空~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String[] returnmsg_2 = agentpayBillFukuan(servername,port,payBillEntity);
|
|
|
|
+ errMsg.append(returnmsg_2[1]);
|
|
|
|
+ if("2".equals(returnmsg_2[0])){//第二步成功
|
|
|
|
+ isSuccess=true;
|
|
|
|
+ payBillEntity.set("nckd_hxzt","R");//改核心状态为已登记等待执行结果
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (isSuccess) {
|
|
|
|
+ SaveServiceHelper.update(new DynamicObject[]{payBillEntity});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return errMsg.toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 代发单支付-手工关闭
|
|
|
|
+ * @params billEntities
|
|
|
|
+ * @returns 返回报错信息
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ public static String payclose(DynamicObject[] billEntities) {
|
|
|
|
+ StringBuffer errMsg = new StringBuffer();
|
|
|
|
+ //获取接口链接等信息
|
|
|
|
+ DynamicObject jkpzxx = BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",new QFilter[]{new QFilter("number","=","paytozfqz")});
|
|
|
|
+ String servername = jkpzxx.getString("nckd_servername");
|
|
|
|
+ String port = jkpzxx.getString("nckd_port");
|
|
|
|
+
|
|
|
|
+ for (DynamicObject dataEntity : billEntities) {
|
|
|
|
+ boolean isSuccess = false;//手工关闭是否成功标识
|
|
|
|
+ boolean isZFQZ = true;
|
|
|
|
+ Map<String, String> qzObject = new HashMap<>();
|
|
|
|
+ DynamicObject payBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), AGENT_ENTITY_NAME);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断是否可以走前置支付
|
|
|
|
+ * 1、代发单为审核状态
|
|
|
|
+ * 2、支付状态为支付中
|
|
|
|
+ * 3、核心状态为支付处理部分成功,或执行失败D
|
|
|
|
+ */
|
|
|
|
+ String billNum = payBillEntity.getString("billno");
|
|
|
|
+ String billstatusString = payBillEntity.getString("billstatus");
|
|
|
|
+ String paystatus = payBillEntity.getString("nckd_paystatus");
|
|
|
|
+ String nckd_hxzt = payBillEntity.getString("nckd_hxzt");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (!"C".equals(billstatusString)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能手工关闭~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if (!"B".equals(paystatus) && !"".equals(paystatus)) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款单为支付中,才能手工关闭~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if (!("B".equals(nckd_hxzt) ||"D".equals(nckd_hxzt))) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",核心状态为支付处理部分成功或执行失败,才能手工关闭~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+ if(payBillEntity.getDynamicObject("payeracctbank")==null) {
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",付款账户为空~\r\n");
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String[] returnmsg_2 = agentpayBillFukuan_payclose(servername,port,payBillEntity);
|
|
|
|
+ errMsg.append(returnmsg_2[1]);
|
|
|
|
+ if("2".equals(returnmsg_2[0])){//手工关闭成功
|
|
|
|
+ isSuccess=true;
|
|
|
|
+ payBillEntity.set("nckd_paystatus","D");//支付状态为支付关闭
|
|
|
|
+ payBillEntity.set("nckd_hxzt","W");//改核心状态为支付处理流程结束
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (isSuccess) {
|
|
|
|
+ SaveServiceHelper.update(new DynamicObject[]{payBillEntity});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return errMsg.toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
/**
|
|
/**
|
|
* 代发单支付-开始传输第一步及后续
|
|
* 代发单支付-开始传输第一步及后续
|
|
@@ -435,7 +763,7 @@ public class PayBillToolUtil {
|
|
errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能提交~\r\n");
|
|
errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能提交~\r\n");
|
|
isZFQZ = false;
|
|
isZFQZ = false;
|
|
}
|
|
}
|
|
- if (!"1".equals(paystatus) && !"".equals(paystatus)) {
|
|
|
|
|
|
+ if (!"A".equals(paystatus) && !"".equals(paystatus)) {
|
|
errMsg.append("单据号:").append(billNum).append(",付款单为未支付,才能提交~\r\n");
|
|
errMsg.append("单据号:").append(billNum).append(",付款单为未支付,才能提交~\r\n");
|
|
isZFQZ = false;
|
|
isZFQZ = false;
|
|
}
|
|
}
|
|
@@ -457,7 +785,7 @@ public class PayBillToolUtil {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
log.info("单据号:"+billNum+"传入参数"+bodyxml);
|
|
log.info("单据号:"+billNum+"传入参数"+bodyxml);
|
|
- JSONObject cbsReturnJson =socketServiceQuery(servername,port,bodyxml,"ACHRDATI");
|
|
|
|
|
|
+ JSONObject cbsReturnJson =socketServiceAgent(servername,port,bodyxml,"ACHRDATI");
|
|
log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString());
|
|
log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString());
|
|
//存入日志表
|
|
//存入日志表
|
|
saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),"1");
|
|
saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),"1");
|
|
@@ -469,7 +797,7 @@ public class PayBillToolUtil {
|
|
errMsg.append("错误号:").append("XXXXXXX");
|
|
errMsg.append("错误号:").append("XXXXXXX");
|
|
errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
|
|
errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
|
|
errMsg.append("\r\n");
|
|
errMsg.append("\r\n");
|
|
- }else if(cbsReturnJson.get("Message")==null){
|
|
|
|
|
|
+ }else if("{}".equals(cbsReturnJson.toString())|| cbsReturnJson.get("Message")==null){
|
|
isSuccess = false;
|
|
isSuccess = false;
|
|
errMsg.append("单据号:").append(billNum).append(",第一步支付数据导入失败,");
|
|
errMsg.append("单据号:").append(billNum).append(",第一步支付数据导入失败,");
|
|
errMsg.append("错误号:").append("DDDDDD1");
|
|
errMsg.append("错误号:").append("DDDDDD1");
|
|
@@ -486,7 +814,7 @@ public class PayBillToolUtil {
|
|
}else{
|
|
}else{
|
|
String errcode =head.getString("errorcode");
|
|
String errcode =head.getString("errorcode");
|
|
|
|
|
|
- if ("FIN0000".equals(errcode)) {//已受理,表示传输成功
|
|
|
|
|
|
+ if ("000000".equals(errcode)) {//已受理,表示传输成功
|
|
isSuccess = true;
|
|
isSuccess = true;
|
|
errMsg.append("单据号:").append(billNum).append(",第一步支付数据导入成功!");
|
|
errMsg.append("单据号:").append(billNum).append(",第一步支付数据导入成功!");
|
|
|
|
|
|
@@ -533,7 +861,7 @@ public class PayBillToolUtil {
|
|
return new String[]{"-1",errMsg.toString()};
|
|
return new String[]{"-1",errMsg.toString()};
|
|
}
|
|
}
|
|
log.info("单据号:"+billNum+"关闭传入参数"+bodyxml);
|
|
log.info("单据号:"+billNum+"关闭传入参数"+bodyxml);
|
|
- JSONObject cbsReturnJson =socketServiceQuery(servername,port,bodyxml,"XXXX3");
|
|
|
|
|
|
+ JSONObject cbsReturnJson =socketServiceAgent(servername,port,bodyxml,"XXXX3");
|
|
log.info("单据号:"+billNum+"关闭返回参数"+cbsReturnJson.toString());
|
|
log.info("单据号:"+billNum+"关闭返回参数"+cbsReturnJson.toString());
|
|
saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),"4");
|
|
saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),"4");
|
|
String errmark = "4";
|
|
String errmark = "4";
|
|
@@ -572,6 +900,144 @@ public class PayBillToolUtil {
|
|
return new String[]{errmark,errMsg.toString()};
|
|
return new String[]{errmark,errMsg.toString()};
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 代发单-手工关闭
|
|
|
|
+ * @param servername
|
|
|
|
+ * @param port
|
|
|
|
+ * @param payBillEntity
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static String[] agentpayBillFukuan_payclose(String servername,String port,DynamicObject payBillEntity) {
|
|
|
|
+ StringBuffer errMsg = new StringBuffer();
|
|
|
|
+ boolean isZFQZ = true;
|
|
|
|
+ String billNum = payBillEntity.getString("billno");
|
|
|
|
+
|
|
|
|
+ String nckd_hxzt = payBillEntity.getString("nckd_hxzt");
|
|
|
|
+ String bodyxml = "";
|
|
|
|
+ if("B".equals(nckd_hxzt)){
|
|
|
|
+ bodyxml = createSingleAgentPaymentRequest_3(payBillEntity);
|
|
|
|
+ }else{
|
|
|
|
+ bodyxml = createSingleAgentPaymentRequest_4(payBillEntity);
|
|
|
|
+ }
|
|
|
|
+ if(bodyxml==null){
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",无法拼出正确的xml请求~\r\n");
|
|
|
|
+ }
|
|
|
|
+ if(!isZFQZ){
|
|
|
|
+ return new String[]{"-1",errMsg.toString()};
|
|
|
|
+ }
|
|
|
|
+ log.info("单据号:"+billNum+"传入参数"+bodyxml);
|
|
|
|
+ String transcode= "ACHRDATE";
|
|
|
|
+ String type="";
|
|
|
|
+ if("B".equals(nckd_hxzt)){
|
|
|
|
+ transcode= "ACHRDATE";
|
|
|
|
+ type = "4";
|
|
|
|
+ }else{
|
|
|
|
+ transcode= "ACHRDATF";
|
|
|
|
+ type = "5";
|
|
|
|
+ }
|
|
|
|
+ JSONObject cbsReturnJson =socketServiceAgent(servername,port,bodyxml,transcode);
|
|
|
|
+ log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString());
|
|
|
|
+ saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),type);
|
|
|
|
+ String errmark = "4";
|
|
|
|
+
|
|
|
|
+ if(cbsReturnJson==null){
|
|
|
|
+ errmark = "1";
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",手工关闭失败,");
|
|
|
|
+ errMsg.append("错误号:").append("XXXXXXX");
|
|
|
|
+ errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
|
|
|
|
+ errMsg.append("\r\n");
|
|
|
|
+ }else if("{}".equals(cbsReturnJson.toString())|| cbsReturnJson.get("Message")==null){
|
|
|
|
+ errmark = "1";
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",手工关闭失败,");
|
|
|
|
+ errMsg.append("错误号:").append("DDDDDD1");
|
|
|
|
+ errMsg.append(",错误原因:").append("接口已连通,但未获取到返回结果");
|
|
|
|
+ errMsg.append("\r\n");
|
|
|
|
+ }else{
|
|
|
|
+ JSONObject head = cbsReturnJson.getJSONObject("Message").getJSONObject("HeadInfo");
|
|
|
|
+ if(head==null){
|
|
|
|
+ errmark = "1";
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",手工关闭失败,");
|
|
|
|
+ errMsg.append("错误号:").append("DDDDDDD2");
|
|
|
|
+ errMsg.append(",错误原因:").append("接口已连通,但无法解析返回结果"+cbsReturnJson.toString());
|
|
|
|
+ errMsg.append("\r\n");
|
|
|
|
+ }else{
|
|
|
|
+ String errcode =head.getString("errorcode");
|
|
|
|
+
|
|
|
|
+ if ("000000".equals(errcode)) {//已受理,表示传输成功
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",手工关闭成功!");
|
|
|
|
+ errmark = "2";
|
|
|
|
+ }else{
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",手工关闭失败!"+head.getString("errormsg"));
|
|
|
|
+ errmark = "3";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return new String[]{errmark,errMsg.toString()};
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 代发单-第四步重发
|
|
|
|
+ * @param servername
|
|
|
|
+ * @param port
|
|
|
|
+ * @param payBillEntity
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static String[] agentpayBillFukuan_chongfa(String servername,String port,DynamicObject payBillEntity) {
|
|
|
|
+ StringBuffer errMsg = new StringBuffer();
|
|
|
|
+ boolean isZFQZ = true;
|
|
|
|
+ String billNum = payBillEntity.getString("billno");
|
|
|
|
+ String bodyxml = createSingleAgentPaymentRequest_7(payBillEntity);
|
|
|
|
+ if(bodyxml==null){
|
|
|
|
+ isZFQZ = false;
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",无法拼出正确的xml请求~\r\n");
|
|
|
|
+ }
|
|
|
|
+ if(!isZFQZ){
|
|
|
|
+ return new String[]{"-1",errMsg.toString()};
|
|
|
|
+ }
|
|
|
|
+ log.info("单据号:"+billNum+"传入参数"+bodyxml);
|
|
|
|
+ JSONObject cbsReturnJson =socketServiceAgent(servername,port,bodyxml,"ACHRDATR");
|
|
|
|
+ log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString());
|
|
|
|
+ saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),"3");
|
|
|
|
+ String errmark = "4";
|
|
|
|
+
|
|
|
|
+ if(cbsReturnJson==null){
|
|
|
|
+ errmark = "1";
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",第四步调用重发失败,");
|
|
|
|
+ errMsg.append("错误号:").append("XXXXXXX");
|
|
|
|
+ errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
|
|
|
|
+ errMsg.append("\r\n");
|
|
|
|
+ }else if("{}".equals(cbsReturnJson.toString())|| cbsReturnJson.get("Message")==null){
|
|
|
|
+ errmark = "1";
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",第四步调用重发失败,");
|
|
|
|
+ errMsg.append("错误号:").append("DDDDDD1");
|
|
|
|
+ errMsg.append(",错误原因:").append("接口已连通,但未获取到返回结果");
|
|
|
|
+ errMsg.append("\r\n");
|
|
|
|
+ }else{
|
|
|
|
+ JSONObject head = cbsReturnJson.getJSONObject("Message").getJSONObject("HeadInfo");
|
|
|
|
+ if(head==null){
|
|
|
|
+ errmark = "1";
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",第四步调用重发失败,");
|
|
|
|
+ errMsg.append("错误号:").append("DDDDDDD2");
|
|
|
|
+ errMsg.append(",错误原因:").append("接口已连通,但无法解析返回结果"+cbsReturnJson.toString());
|
|
|
|
+ errMsg.append("\r\n");
|
|
|
|
+ }else{
|
|
|
|
+ String errcode =head.getString("errorcode");
|
|
|
|
+
|
|
|
|
+ if ("000000".equals(errcode)) {//已受理,表示传输成功
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",第四步调用重发成功!");
|
|
|
|
+ errmark = "2";
|
|
|
|
+ }else{
|
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",第四步调用重发失败!"+head.getString("errormsg"));
|
|
|
|
+ errmark = "3";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return new String[]{errmark,errMsg.toString()};
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 代发单-第二步
|
|
* 代发单-第二步
|
|
@@ -593,7 +1059,7 @@ public class PayBillToolUtil {
|
|
return new String[]{"-1",errMsg.toString()};
|
|
return new String[]{"-1",errMsg.toString()};
|
|
}
|
|
}
|
|
log.info("单据号:"+billNum+"传入参数"+bodyxml);
|
|
log.info("单据号:"+billNum+"传入参数"+bodyxml);
|
|
- JSONObject cbsReturnJson =socketServiceQuery(servername,port,bodyxml,"ACHRDATD");
|
|
|
|
|
|
+ JSONObject cbsReturnJson =socketServiceAgent(servername,port,bodyxml,"ACHRDATD");
|
|
log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString());
|
|
log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString());
|
|
saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),"2");
|
|
saveAgentlog(payBillEntity,bodyxml,cbsReturnJson.toString(),"2");
|
|
String errmark = "4";
|
|
String errmark = "4";
|
|
@@ -604,7 +1070,7 @@ public class PayBillToolUtil {
|
|
errMsg.append("错误号:").append("XXXXXXX");
|
|
errMsg.append("错误号:").append("XXXXXXX");
|
|
errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
|
|
errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
|
|
errMsg.append("\r\n");
|
|
errMsg.append("\r\n");
|
|
- }else if(cbsReturnJson.get("Message")==null){
|
|
|
|
|
|
+ }else if("{}".equals(cbsReturnJson.toString())|| cbsReturnJson.get("Message")==null){
|
|
errmark = "1";
|
|
errmark = "1";
|
|
errMsg.append("单据号:").append(billNum).append(",第二步调用执行失败,");
|
|
errMsg.append("单据号:").append(billNum).append(",第二步调用执行失败,");
|
|
errMsg.append("错误号:").append("DDDDDD1");
|
|
errMsg.append("错误号:").append("DDDDDD1");
|
|
@@ -621,7 +1087,7 @@ public class PayBillToolUtil {
|
|
}else{
|
|
}else{
|
|
String errcode =head.getString("errorcode");
|
|
String errcode =head.getString("errorcode");
|
|
|
|
|
|
- if ("FIN0000".equals(errcode)) {//已受理,表示传输成功
|
|
|
|
|
|
+ if ("000000".equals(errcode)) {//已受理,表示传输成功
|
|
errMsg.append("单据号:").append(billNum).append(",第二步调用执行成功!");
|
|
errMsg.append("单据号:").append(billNum).append(",第二步调用执行成功!");
|
|
errmark = "2";
|
|
errmark = "2";
|
|
}else{
|
|
}else{
|
|
@@ -768,7 +1234,7 @@ public class PayBillToolUtil {
|
|
|
|
|
|
public static void saveAgentlog(DynamicObject payBillEntity,String qqbw,String fhbw,String type){
|
|
public static void saveAgentlog(DynamicObject payBillEntity,String qqbw,String fhbw,String type){
|
|
try {
|
|
try {
|
|
- DynamicObject logInfo = new DynamicObject( EntityMetadataCache.getDataEntityType("nckd_zfjkdyrz"));
|
|
|
|
|
|
+ DynamicObject logInfo = new DynamicObject( EntityMetadataCache.getDataEntityType("nckd_dfjkdyrz"));
|
|
String channelserno = payBillEntity.getString("billno");
|
|
String channelserno = payBillEntity.getString("billno");
|
|
logInfo.set("number",channelserno);
|
|
logInfo.set("number",channelserno);
|
|
if("1".equals(type)){
|
|
if("1".equals(type)){
|
|
@@ -780,11 +1246,11 @@ public class PayBillToolUtil {
|
|
}else if("4".equals(type)){
|
|
}else if("4".equals(type)){
|
|
logInfo.set("name",payBillEntity.get("billno")+"支付结束(成功)日志");
|
|
logInfo.set("name",payBillEntity.get("billno")+"支付结束(成功)日志");
|
|
}else if("5".equals(type)){
|
|
}else if("5".equals(type)){
|
|
- logInfo.set("name",payBillEntity.get("billno")+"代发单表头支付信息查询日志");
|
|
|
|
|
|
+ logInfo.set("name",payBillEntity.get("billno")+"支付结束(失败)日志");
|
|
}else if("6".equals(type)){
|
|
}else if("6".equals(type)){
|
|
- logInfo.set("name",payBillEntity.get("billno")+"代发单分录支付信息查询日志");
|
|
|
|
|
|
+ logInfo.set("name",payBillEntity.get("billno")+"代发单表头支付信息查询日志");
|
|
}else if("7".equals(type)){
|
|
}else if("7".equals(type)){
|
|
- logInfo.set("name",payBillEntity.get("billno")+"支付结束(失败)日志");
|
|
|
|
|
|
+ logInfo.set("name",payBillEntity.get("billno")+"代发单分录支付信息查询日志");
|
|
}
|
|
}
|
|
logInfo.set("nckd_jklx",type);
|
|
logInfo.set("nckd_jklx",type);
|
|
logInfo.set("status","A");
|
|
logInfo.set("status","A");
|
|
@@ -1066,4 +1532,38 @@ public class PayBillToolUtil {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ public static JSONObject socketServiceAgent(String serverName,String port,String xmlData,String transcode){
|
|
|
|
+ try {
|
|
|
|
+ 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("<?xml")>0){
|
|
|
|
+ int index = responseJson.indexOf("<?xml");
|
|
|
|
+ responseJson = responseJson.substring(index);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ JSONObject jsonObject = XML.toJSONObject(responseJson);
|
|
|
|
+ client.close();
|
|
|
|
+ return jsonObject;
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.info(e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
}
|
|
}
|