|
@@ -1,1091 +0,0 @@
|
|
|
-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 <entryList.size() ; i++) {
|
|
|
- DynamicObject entry = entryList.get(i);
|
|
|
- JSONObject entrydata = new JSONObject();
|
|
|
- //明细id
|
|
|
- entrydata.put("ERP_PVT_ID", entry.getPkValue()+"");
|
|
|
- //收款方账号
|
|
|
- entrydata.put("RECE_ACC_NO", entry.get("payeeacctbank")+"");
|
|
|
- //收款方户名
|
|
|
- entrydata.put("RECE_ACC_NAME", entry.get("payeename")+"");
|
|
|
- //收款行行号
|
|
|
- entrydata.put("RECE_CNAPS",entry.get("payeebanknumber")+"");
|
|
|
- //付款金额,待补充
|
|
|
- entrydata.put("AMOUNT", entry.getBigDecimal("e_amount").setScale(2, RoundingMode.DOWN).toString());
|
|
|
- //明细用途
|
|
|
- entrydata.put("PURPOSE","用途:"+info.get("nckd_usage"));
|
|
|
-
|
|
|
- OP_ACNT_LIST.put(entrydata);
|
|
|
- }
|
|
|
- data.put("OP_ACNT_LIST",OP_ACNT_LIST);
|
|
|
-
|
|
|
-
|
|
|
- //无用字段
|
|
|
- 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_ACC_NO",JSONObject.NULL);
|
|
|
- data.put("RECE_ACC_NAME",JSONObject.NULL);
|
|
|
- data.put("RECE_OPBANK_NAME",JSONObject.NULL);
|
|
|
- data.put("RECE_OPBANK_NAME",JSONObject.NULL);
|
|
|
- data.put("RECE_BANK_NO",JSONObject.NULL);
|
|
|
- data.put("RECE_CNAPS",JSONObject.NULL);
|
|
|
- data.put("REG_NO",JSONObject.NULL);
|
|
|
- data.put("TERM",JSONObject.NULL);
|
|
|
-
|
|
|
-
|
|
|
- param.put("data",data);
|
|
|
- param.put("txDateTime",Utils.getData(new Date(), "yyyyMMddHHmmss"));
|
|
|
- param.put("batchNo",TypeUtils.nullToString(info.get("billno"))+"-"+TypeUtils.nullToString(info.get("nckd_bbh"))+"-"+Utils.getData(new Date(), "yyyyMMddHHmmss"));
|
|
|
- param.put("code","NSTC-T003");
|
|
|
-
|
|
|
- return param.toString();
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public static void agentPaymentXMLBody_Msg(DynamicObject agentpayBillEntity,Document doc,Element body) {
|
|
|
-
|
|
|
- DynamicObject payeracctbankEntity = BusinessDataServiceHelper.loadSingleFromCache(agentpayBillEntity.getDynamicObject("payeracctbank").getPkValue(), "am_accountbank");
|
|
|
- String payeracc = payeracctbankEntity.getString("bankaccountnumber");
|
|
|
- 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, "HrSignNbr", agentpayBillEntity.getString("billno"));//人力流水号
|
|
|
- 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, "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) {
|
|
|
- // 获取分录数据
|
|
|
- DynamicObjectCollection entryList = agentpayBillEntity.getDynamicObjectCollection("entry");
|
|
|
-
|
|
|
- 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);
|
|
|
-
|
|
|
- createElement(doc, achrapaydtl_i, "IdenNbr", entry.getString("nckd_zjh"));//证件号
|
|
|
- createElement(doc, achrapaydtl_i, "InRichNbr", entry.getString("payeeacctbank"));//收款户口号
|
|
|
- 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");//展示条数
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public static void agentPaymentXMLBody_Entry_chongfa(DynamicObject agentpayBillEntity,Document doc,Element body) {
|
|
|
- // 获取分录数据
|
|
|
- DynamicObjectCollection entryList = agentpayBillEntity.getDynamicObjectCollection("entry");
|
|
|
-
|
|
|
- for (int i = 0; i <entryList.size() ; i++) {
|
|
|
- DynamicObject entry = entryList.get(i);
|
|
|
- if("true".equals(entry.get("e_issuccess")+"")){
|
|
|
- continue;
|
|
|
- }
|
|
|
- Element achrapaydtl_i = doc.createElement("achrpaydtl_i"); // 每条数据用一个achrapaydtl_i元素包裹
|
|
|
- body.appendChild(achrapaydtl_i);
|
|
|
-
|
|
|
- createElement(doc, achrapaydtl_i, "IdenNbr", entry.getString("nckd_zjh"));//证件号
|
|
|
- createElement(doc, achrapaydtl_i, "InRichNbr", entry.getString("payeeacctbank"));//收款户口号
|
|
|
- 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");//展示条数
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- public static void agentPaymentXMLBody_EntryQuery(DynamicObject agentpayBillEntity,String filename,Document doc,Element body,String CurContentSeq) {
|
|
|
-
|
|
|
- createElement(doc, body, "IdenNbr", "");//证件号
|
|
|
- createElement(doc, body, "InRichNbr","");//收款户口号
|
|
|
- createElement(doc, body, "PayAmt", "");//支付金额
|
|
|
-
|
|
|
- createElement(doc, body, "QryFileName",filename );//文件名称
|
|
|
-
|
|
|
- if(CurContentSeq==null||"".equals(CurContentSeq)){
|
|
|
-
|
|
|
- }else{
|
|
|
- createElement(doc, body, "CurContentSeq",CurContentSeq);//xuhao
|
|
|
- }
|
|
|
- createElement(doc, body, "RowCnt", "100");//展示条数
|
|
|
-
|
|
|
- createElement(doc, body, "GoHead","Y" );//文件名称
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /***
|
|
|
- * 拼接json对象
|
|
|
- */
|
|
|
- public static JSONObject getServiceBean_youhua( DynamicObject info) {
|
|
|
- JSONObject data = new JSONObject();
|
|
|
-
|
|
|
- //单据状态
|
|
|
- if("C".equals(info.get("billstatus"))){
|
|
|
- data.put("FBillStatus","12");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- //录入人
|
|
|
- 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"));
|
|
|
-
|
|
|
-
|
|
|
- String entrance = info.get("entrance")+"";//是否资金调度,待补充
|
|
|
- if("SYN".equals(entrance)||"SPAN".equals(entrance)){
|
|
|
- data.put("IS_TRANSFER","1");
|
|
|
- }else{
|
|
|
- data.put("IS_TRANSFER","0");
|
|
|
- }
|
|
|
- data.put("IS_TRANSFER","0");
|
|
|
-
|
|
|
-
|
|
|
- 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("PAY_DATE",TypeUtils.date2String(new Date(),TypeUtils.DEFAULT_DATE_FORMAT));
|
|
|
- //对公
|
|
|
- if(!info.getBoolean("ispersonpay")){
|
|
|
- data.put("IS_PERSON","0");
|
|
|
- }else{
|
|
|
- data.put("IS_PERSON","1");
|
|
|
- }
|
|
|
-
|
|
|
- //加急
|
|
|
- if(info.get("priority")!=null){
|
|
|
- if("prior".equals(info.get("priority"))){//优先
|
|
|
- data.put("URGENT_FLAG","1");
|
|
|
- }else{
|
|
|
- data.put("URGENT_FLAG","0");
|
|
|
- }
|
|
|
- }
|
|
|
- data.put("PURPOSE","用途:"+info.get("nckd_usage"));
|
|
|
- //费用类型,取分录第一条费用项目编码
|
|
|
- DynamicObjectCollection entrycoll = info.getDynamicObjectCollection("entry");
|
|
|
- if(entrycoll.size()>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<String, String> 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("<?xml")>0){
|
|
|
- int index = responseJson.indexOf("<?xml");
|
|
|
- responseJson = responseJson.substring(index);
|
|
|
- }
|
|
|
- Date d2 = new Date();
|
|
|
-
|
|
|
- long diffs = Math.abs(d2.getTime()-d1.getTime())/1000;
|
|
|
-
|
|
|
- JSONObject jsonObject = XML.toJSONObject(responseJson);
|
|
|
-
|
|
|
- if(jsonObject!=null){
|
|
|
- if("{}".equals(jsonObject.toString())){
|
|
|
- if(diffs>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;
|
|
|
- }
|
|
|
-}
|