apzl_leasing/src_cmb/com/tenwa/cgb/controller/OperateOfCGBController.java
2021-12-29 17:17:21 +08:00

477 lines
24 KiB
Java
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.tenwa.cgb.controller;
import com.amarsoft.are.jbo.*;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.manage.CodeManager;
import com.tenwa.cgb.conf.CGBconfProperties;
import com.tenwa.cgb.util.CGBLogAssistant;
import com.tenwa.cgb.util.HttpAssistant;
import com.tenwa.comm.exception.BusinessException;
import com.tenwa.comm.util.date.DateAssistant;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import jbo.app.tenwa.calc.LB_ACTUAL_PAYMENT_INFO_TEMP;
import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP;
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_DETAIL_TEMP;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @program: apzl_leasing
* @author: yjf
* @create: 2021-07-19 11:39
**/
public class OperateOfCGBController {
private static final String XMLDECLARE = "<?xml version=\"1.0\" encoding = \"GBK\"?>";
private static Log log = LogFactory.getLog(OperateOfCGBController.class);
private String flowUnid;
private String userId;
private String orgId;
private String contractIds;
public void setFlowUnid(String flowUnid) {
this.flowUnid = flowUnid;
}
public void setContractIds(String contractIds) {
this.contractIds = contractIds;
}
public void setUserId(String userId) {
this.userId = userId;
}
public void setOrgId(String orgId) {
this.orgId = orgId;
}
/**
* ÅúÁ¿×ªÕË
*
* @param tx
* @return
* @throws Exception
*/
public String batchPayOfCGB(JBOTransaction tx) throws Exception {
String retResult = "success·¢Æð¸¶¿î³É¹¦!";
contractIds = contractIds.replaceAll("@", "','");
String subjectSql = "SELECT subjectId AS subjectuid FROM lb_contract_info WHERE id IN ('" + contractIds + "') GROUP BY subjectId ";
List<Map<String, String>> lciList = DataOperatorUtil.getDataBySql(subjectSql);
if (lciList.size() > 1) {
return "·Å¿îºÏͬÖÐÓжà¸öÖ÷Ì壬Çë¼ì²é£¡£¡£¡";
}
BizObjectManager actualPaymentMan = JBOFactory.getBizObjectManager(LB_ACTUAL_PAYMENT_INFO_TEMP.CLASS_NAME, tx);
BizObject actualBo = actualPaymentMan.createQuery("flowunid=:flowunid").setParameter("flowunid", flowUnid).getSingleResult(false);
if (actualBo == null || actualBo.getAttribute("acc_number").getString().length() == 0) {
throw new BusinessException("ûÓÐÆ¥ÅäµÄ±¾·½ÕË»§,Çë¼ì²é£¡£¡£¡");
}
String payAccountNum = actualBo.getAttribute("acc_number").getString();
BizObjectManager incomeMan = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME, tx);
BizObject singleResult = incomeMan.createQuery("select v.count(1) as v.allCount from O where FLOWUNID=:FLOWUNID and o.contract_id in ('" + contractIds + "') and o.PAY_TYPE = 'pay_type_out' and o.CMB_PAY_LOG is null ").setParameter("FLOWUNID", flowUnid).getSingleResult(false);
if (singleResult != null && singleResult.getAttribute("allCount").getInt() > 0) {
int start = 0;
int maxCount = 200;
while (singleResult.getAttribute("allCount").getInt() > start) {
String customerBatchNo = "AP" + System.currentTimeMillis();
log.info("CGB FLOWUNID[" + flowUnid + "]---¿ªÊ¼µÚ" + start + "ÖÁ" + (start + maxCount) + "ÌõÑ­»·");
List<BizObject> income_all_list = incomeMan.createQuery("select o.ID,o.CMB_PAY_NO,o.FACT_MONEY,o.FLOWUNID,o.CONTRACT_ID,contract_info.CONTRACT_NO,contract_info.ZC_CONTRACT_NUMBER,lul.CUSTOMER_NAME,distributor.distributor_id,distributor.acc_number,distributor.open_bank,distributor.account from o join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO contract_info on o.CONTRACT_ID = contract_info.id join jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul on contract_info.id = lul.contract_id join jbo.app.tenwa.customer.DISTRIBUTOR_ACCOUNT distributor on contract_info.distributor_id = distributor.distributor_id and distributor.is_main='Y' " +
" where o.FLOWUNID=:FLOWUNID and o.contract_id in ('" + contractIds + "') and o.PAY_TYPE = 'pay_type_out' and o.CMB_PAY_LOG is null ")
.setParameter("FLOWUNID", flowUnid).setFirstResult(start).setMaxResults(maxCount).getResultList(false);
//ÅúÁ¿×ªÕ˱¨ÎÄ
String batchPayMsgXml = createBatchPayMsg(customerBatchNo, payAccountNum, income_all_list);
//±£´æ·¢ÆðÈÕÖ¾
CGBLogAssistant.insertCGBlog(flowUnid, "pay", customerBatchNo, null, batchPayMsgXml);
HashMap<String, Object> map = new HashMap<>();
map.put("cgb_data", batchPayMsgXml);
String retMsg = HttpAssistant.post(CGBconfProperties.CGBURL, map);
if (retMsg == null) return "Á¬½ÓǰÖûúÒì³£,ÇëÁªÏµ¹ÜÀíÔ±!";
log.info("CGB [" + customerBatchNo + "] BATCHPAY RETURN XML : " + retMsg);
//¸üзµ»ØÈÕÖ¾
CGBLogAssistant.updateCGBlog(customerBatchNo, null, retMsg);
//ÅúÁ¿×ªÕ˱¨ÎĽâÎö
Map<String, String> batchPayResult = getBatchPayResult(retMsg);
if (batchPayResult.size() > 0 && "000".equals(batchPayResult.get("retCode"))) {
for (BizObject incomeObj : income_all_list) {
payBackResultHandle(incomeObj, customerBatchNo, batchPayResult, actualBo);
}
} else {
return "·¢Æð¸¶¿îʧ°Ü,¹ã·¢·µ»Ø´íÎó:[" + CodeManager.getItemName("cgb_describe", batchPayResult.get("retCode")) + "]";
}
start += 200;
}
} else {
return "Ñ¡ÔñÊý¾Ý°üº¬¸¶¿îÖÐÊý¾Ý,Çë¼ì²é£¡£¡£¡";
}
return retResult;
}
/**
* ÅúÁ¿²éѯ
*
* @param tx
* @return
* @throws Exception
*/
public String batchQueryOfCGB(JBOTransaction tx) throws Exception {
BizObjectManager bm = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME);
List<BizObject> bizObjects = bm.createQuery(" flowunid = :flowunid and cmb_pay_log is not null and ERRTXT='¸¶¿îÖÐ' ")
.setParameter("flowunid", flowUnid).getResultList(false);
if (bizObjects.isEmpty()) return "´ý»ØÅÌÊý¾ÝΪ¿Õ,Çë¼ì²é";
String customerBatchNo = null, customerSalarySeq = null;
for (BizObject bizObject : bizObjects) {
customerBatchNo = bizObject.getAttribute("cmb_pay_log").getString();
customerSalarySeq = bizObject.getAttribute("cmb_pay_no").getString();
String batchPayQueryXml = createBatchPayQueryMsg(customerBatchNo, customerSalarySeq);
//±£´æ·¢ÆðÈÕÖ¾
CGBLogAssistant.insertCGBlog(flowUnid, "query", customerBatchNo, customerSalarySeq, batchPayQueryXml);
HashMap<String, Object> map = new HashMap<>();
map.put("cgb_data", batchPayQueryXml);
String retMsg = HttpAssistant.post(CGBconfProperties.CGBURL, map);
if (retMsg == null) return "Á¬½ÓǰÖûúÒì³£,ÇëÁªÏµ¹ÜÀíÔ±!";
log.info("CGB customerBatchNo[" + customerBatchNo + "] customerSalarySeq[" + customerSalarySeq + "] QUERY RETURN XML : " + retMsg);
//¸üзµ»ØÈÕÖ¾
CGBLogAssistant.updateCGBlog(customerBatchNo, customerSalarySeq, retMsg);
Map<String, String> batchQueryResult = getBatchQueryResult(retMsg);
JBOTransaction tx1 = null;
try {
tx1 = JBOFactory.createJBOTransaction();
Transaction sqlca = Transaction.createTransaction(tx1);
String retCode = batchQueryResult.get("retCode");
if ("000".equals(retCode)) {
String bankstatus = batchQueryResult.get("bankstatus");
String errText = "¸¶¿îÖÐ";
String business_status = null, ebankStatus = null;
if ("6,B".indexOf(bankstatus) != -1) { //½»Ò׳ɹ¦
business_status = "31";
ebankStatus = "05";
errText = "¸¶¿î³É¹¦";
} else if ("4,7,9,C,b".indexOf(bankstatus) != -1) { //½»Ò×ʧ°Ü
business_status = "32";
ebankStatus = "04";
errText = "¸¶¿îʧ°Ü";
}
errText = batchQueryResult.get("errorreason") == null ? errText : batchQueryResult.get("errorreason");
//¸üлص÷½á¹û״̬
SqlObject sqlObject = new SqlObject("update LC_FUND_INCOME_CALLBACK_DETAIL_TEMP set ERRCOD=:errCode,ERRTXT=:errText,RTNNAR=:rtnNar where id =:id")
.setParameter("errCode", bankstatus)
.setParameter("errText", errText)
.setParameter("rtnNar", getbankstatusMsg(bankstatus))
.setParameter("id", bizObject.getAttribute("id").getString());
sqlca.executeSQL(sqlObject);
if (business_status != null) {
//²åÈëÏîÄ¿½ø¶È±í
sqlObject = new SqlObject("");
sqlObject.setOriginalSql("insert into BUSINESS_STATUS select replace(uuid(),'-',''),contract_no,'" + business_status + "','" + userId + "','" + orgId + "','" + DateAssistant.getTodayNow() + "',null,null,null,null from lb_contract_info where id = '" + bizObject.getAttribute("contract_id").getString() + "'");
sqlca.executeSQL(sqlObject);
//¸üÐÂ×ʽðʵÊÕÁÙʱ±í
sqlObject = new SqlObject("update LC_FUND_INCOME_TEMP set EBANK_STATUS=:ebankStatus,CMB_PAY_NO=:customerSalarySeq,CMB_PAY_LOG=:customerBatchNo where flowunid=:flowunid and contract_id =:contractId ")
.setParameter("ebankStatus", ebankStatus)
.setParameter("customerSalarySeq", "04".equals(ebankStatus) ? null : customerSalarySeq)
.setParameter("customerBatchNo", "04".equals(ebankStatus) ? null : customerBatchNo)
.setParameter("flowunid", flowUnid)
.setParameter("contractId", bizObject.getAttribute("contract_id").getString());
sqlca.executeSQL(sqlObject);
}
} else {
//¸üлص÷½á¹û״̬
SqlObject sqlObject = new SqlObject("update LC_FUND_INCOME_CALLBACK_DETAIL_TEMP set ERRCOD=:errCode,ERRTXT=:errText where id =:id")
.setParameter("errCode", retCode)
.setParameter("errText", CodeManager.getItemName("cgb_describe", retCode))
.setParameter("id", bizObject.getAttribute("id").getString());
sqlca.executeSQL(sqlObject);
}
tx1.commit();
} catch (Exception e) {
log.error("customerBatchNo:[" + customerBatchNo + "] customerSalarySeq:[" + customerSalarySeq + "] ²éѯ½á¹û´¦ÀíÒì³£:", e);
if (tx1 != null) try {
tx1.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
}
}
return "success²éѯ¸¶¿î½á¹û³É¹¦";
}
/**
* ÅúÁ¿×ªÕ˱¨ÎÄ
*
* @param tx
* @return
* @throws Exception
*/
private String createBatchPayMsg(String customerBatchNo, String accountNo, List<BizObject> payObjs) throws Exception {
StringBuilder sb = new StringBuilder();
sb.append(XMLDECLARE);
sb.append("<BEDC>");
sb.append("<Message>");
sb.append(commonMseeage("0033"));
sb.append("<Body>");
sb.append("<customerBatchNo>").append(customerBatchNo).append("</customerBatchNo>");//¿Í»§Åú´ÎºÅ ÆóÒµÄÚΨһ[±ØÊä] ³¤¶È20
sb.append("<accountNo>").append(accountNo).append("</accountNo>");//¸¶¿îÕ˺Š[±ØÊä]
int allCount = 0;
BigDecimal allSalary = new BigDecimal(0);
for (BizObject payObj : payObjs) {
allSalary = allSalary.add(BigDecimal.valueOf(payObj.getAttribute("fact_money").getDouble()));
allCount++;
}
sb.append("<allCount>").append(allCount).append("</allCount>");//×ܱÊÊý [±ØÊä]
sb.append("<allSalary>").append(allSalary.toString()).append("</allSalary>");//×ܽð¶î µ¥Î»£ºÔª[±ØÊä]
sb.append("<records>");
int i = 0;
String customerSalarySeq = null, customerName = null, contractNo = null, contractNoZC = null, remark = null;
for (BizObject payObj : payObjs) {
customerSalarySeq = customerBatchNo + String.format("%04d", ++i);
customerName = payObj.getAttribute("CUSTOMER_NAME").getString();
contractNo = payObj.getAttribute("contract_no").getString();
contractNoZC = payObj.getAttribute("ZC_CONTRACT_NUMBER").getString();
remark = "".equals(contractNoZC) ? customerName + "-" + contractNo : customerName + "-" + contractNoZC + "-" + contractNo;
sb.append("<record>");
sb.append("<customerSalarySeq>").append(customerSalarySeq).append("</customerSalarySeq>");//¿Í»§Åú´Î×ÓÁ÷Ë®ºÅ ÆóÒµÄÚΨһ[±ØÊä] ³¤¶È20
sb.append("<transType>").append(checkCGB(payObj.getAttribute("open_bank").getString()) ? "0" : "1").append("</transType>"); //½»Ò×ÀàÐÍ 0£ºÐÐÄÚ 1£º¿çÐÐ [±ØÊä]
sb.append("<inaccname>").append(payObj.getAttribute("account")).append("</inaccname>"); //ÊÕ¿îÈË [±ØÊä]
sb.append("<inacc>").append(payObj.getAttribute("acc_number")).append("</inacc>"); //ÊÕ¿îÕ˺Š[±ØÊä]
sb.append("<inaccbank>").append(payObj.getAttribute("open_bank").getString()).append("</inaccbank>"); //ÊÕ¿îÒøÐÐ [±ØÊä]
sb.append("<inaccadd>").append("").append("</inaccadd>"); //ÊÕ¿îÒøÐеØÖ·
sb.append("<bankCode>").append("").append("</bankCode>"); //ÁªÐкŠ¿çÐÐʱ [±ØÊä] ¹ã·¢×Ô¶¯¸ù¾ÝÒøÐÐÃû³ÆÆ¥Åä--¼¼Êõ»Ø¸´
sb.append("<salary>").append(payObj.getAttribute("fact_money").getString()).append("</salary>"); //½ð¶î µ¥Î»£ºÔª [±ØÊä]
sb.append("<remark>").append(payObj.getAttribute("id").getString()).append("</remark>"); //±¸×¢ °ó¶¨Ö§¸¶¶ÔÏóÖ÷¼ü
sb.append("<comment>").append(remark).append("</comment>"); //¸½ÑÔ ¿Í»§Ãû+ºÏ×÷·½ºÏͬºÅ+°²ÅôºÏͬºÅ
sb.append("</record>");
payObj.setAttributeValue("CMB_PAY_NO", customerSalarySeq);
}
sb.append("</records>");
sb.append("</Body>");
sb.append("</Message>");
sb.append("</BEDC>");
log.info("CGB [" + customerBatchNo + "] BATCHPAY SEND XML : " + sb.toString());
return sb.toString();
}
/**
* ½âÎöÅúÁ¿×ªÕ˽á¹û
*
* @param strXML
* @return
*/
private Map<String, String> getBatchPayResult(String strXML) {
Map<String, String> res = new HashMap<String, String>();
//»ñÈ¡Åú´ÎºÅ
Pattern pm = Pattern.compile("(?<=<customerBatchNo>)([\\S\\s]*?)(?=</customerBatchNo>)");
Matcher mm = pm.matcher(strXML);
if (mm.find()) {
res.put("customerBatchNo", mm.group());
}
pm = Pattern.compile("(?<=<retCode>)([\\S\\s]*?)(?=</retCode>)");
mm = pm.matcher(strXML);
if (mm.find()) {
res.put("retCode", mm.group());
}
return res;
}
/**
* ÅúÁ¿×ªÕ˲éѯ±¨ÎÄ
*
* @param customerBatchNo
* @param customerSalarySeq
* @return
* @throws Exception
*/
private String createBatchPayQueryMsg(String customerBatchNo, String customerSalarySeq) throws Exception {
StringBuilder sb = new StringBuilder();
sb.append(XMLDECLARE);
sb.append("<BEDC>");
sb.append("<Message>");
sb.append(commonMseeage("0034"));
sb.append("<Body>");
sb.append("<customerBatchNo>").append(customerBatchNo).append("</customerBatchNo>"); //¿Í»§Åú´ÎºÅ [±ØÊä]
sb.append("<customerSalarySeq>").append(customerSalarySeq == null ? "" : customerSalarySeq).append("</customerSalarySeq>"); //¿Í»§Åú´Î×ÓÁ÷Ë®ºÅ
sb.append("</Body>");
sb.append("</Message>");
sb.append("</BEDC>");
log.info("CGB customerBatchNo[" + customerBatchNo + "] customerSalarySeq[" + customerSalarySeq + "] QUERY SEND XML : " + sb.toString());
return sb.toString();
}
/**
* ½âÎö²éѯ½á¹û
*
* @param strXML
* @return
*/
private Map<String, String> getBatchQueryResult(String strXML) {
Map<String, String> res = new HashMap<String, String>();
Pattern pm = Pattern.compile("(?<=<retCode>)([\\S\\s]*?)(?=</retCode>)");
Matcher mm = pm.matcher(strXML);
if (mm.find()) {
res.put("retCode", mm.group());
}
//»ñÈ¡Åú´ÎºÅ
pm = Pattern.compile("(?<=<customerSalarySeq>)([\\S\\s]*?)(?=</customerSalarySeq>)");
mm = pm.matcher(strXML);
if (mm.find()) {
res.put("customerSalarySeq", mm.group());
}
pm = Pattern.compile("(?<=<bankstatus>)([\\S\\s]*?)(?=</bankstatus>)");
mm = pm.matcher(strXML);
if (mm.find()) {
res.put("bankstatus", mm.group());
}
pm = Pattern.compile("(?<=<errorreason>)([\\S\\s]*?)(?=</errorreason>)");
mm = pm.matcher(strXML);
if (mm.find()) {
if (mm.group().length() > 0) res.put("errorreason", mm.group());
}
return res;
}
/**
* ¹«¹²±¨ÎÄÍ·Æ´½Ó
*
* @param tranCode ½»Ò×Âë
* @return
*/
private String commonMseeage(String tranCode) throws Exception {
StringBuilder sb = new StringBuilder();
sb.append("<commHead>");
sb.append("<tranCode>").append(tranCode).append("</tranCode>");//½»Ò×Âë
sb.append("<cifMaster>").append(CGBconfProperties.CIFMASTER).append("</cifMaster>");//¿Í»§ºÅ
sb.append("<entSeqNo>").append("CGB").append(System.currentTimeMillis()).append("</entSeqNo>");//ÆóÒµ²ÆÎñϵͳÁ÷Ë®ºÅ ÆóÒµ²ÆÎñϵͳ×Ô¼º²úÉúµÄÁ÷Ë®ºÅ,ÿÌìΨһ ³¤¶È20
sb.append("<tranDate>").append(DateAssistant.getFormatDate("yyyyMMdd")).append("</tranDate>");//ÈÕÆÚ
sb.append("<tranTime>").append(DateAssistant.getFormatDate("HHmmss")).append("</tranTime>");//ʱ¼ä
sb.append("<retCode></retCode>");//·µ»ØÂë,ÇëÇó±¨ÎÄÊÇ,ĬÈÏΪ¿Õ
sb.append("<entUserId>").append(CGBconfProperties.ENTUSERID).append("</entUserId>");//²Ù×÷Ô±
sb.append("<password> <![CDATA[").append(CGBconfProperties.PASSWORD).append("]]></password>");//²Ù×÷ÃÜÂë
sb.append("</commHead>");
return sb.toString();
}
/**
* ¼ì²éÊÇ·ñ¹ã·¢ÒøÐÐÕ˺Å
*
* @param str
* @return
*/
private boolean checkCGB(String str) {
if (str.indexOf("¹ã·¢") != -1) {
return true;
} else {
return false;
}
}
/**
* Ö§¸¶»Øµ÷½á¹û´¦Àí
*/
private void payBackResultHandle(BizObject payObj, String customerBatchNo, Map<String, String> retResult, BizObject actualObj) {
JBOTransaction tx = null;
String serialNum = null;
try {
serialNum = payObj.getAttribute("CMB_PAY_NO").getString();
tx = JBOFactory.createJBOTransaction();
Transaction sqlca = Transaction.createTransaction(tx);
//ÐÞ¸ÄÉϴοۿî¼Ç¼,±ÜÃâÏÔʾ¶àÌõÊý¾Ý
SqlObject sqlObject = new SqlObject("update LC_FUND_INCOME_CALLBACK_DETAIL_TEMP set contract_id = null where flowunid=:flowunid and contract_id =:contractId")
.setParameter("flowunid", flowUnid).setParameter("contractId", payObj.getAttribute("contract_id").getString());
sqlca.executeSQL(sqlObject);
//Ìí¼ÓеĿۿî¼Ç¼
sqlObject = new SqlObject("insert into LC_FUND_INCOME_CALLBACK_DETAIL_TEMP (id,FLOWUNID,CMB_PAY_LOG,CMB_PAY_NO,ERRTXT,CONTRACT_ID,DISTRIBUTOR_ID,INPUTUSERID,INPUTORGID,INPUTTIME) "
+ " values (replace(uuid(),'-',''),:flowunid,:cmbPayLog,:serialNum,'¸¶¿îÖÐ',:contractId,:distributorId,:userId,:orgId,:inputTime)")
.setParameter("flowunid", flowUnid)
.setParameter("cmbPayLog", customerBatchNo) //Åú´ÎºÅ
.setParameter("serialNum", serialNum) //ÐòºÅ
.setParameter("contractId", payObj.getAttribute("contract_id").getString()) //ºÏͬid
.setParameter("distributorId", payObj.getAttribute("distributor_id").getString())//¾­ÏúÉÌid
.setParameter("userId", userId)
.setParameter("orgId", orgId)
.setParameter("inputTime", DateAssistant.getTodayNow());
sqlca.executeSQL(sqlObject);
//¸üÐÂÅú´ÎºÅ£¬ÐòºÅµ½Ö§¸¶Ã÷ϸÊý¾Ý
sqlObject = new SqlObject("update LC_FUND_INCOME_TEMP set CMB_PAY_LOG=:customerBatchNo,CMB_PAY_NO=:serialNum,bank=:bank,account=:account,acc_number=:accNumber where id = :id ")
.setParameter("customerBatchNo", customerBatchNo)
.setParameter("serialNum", serialNum)
.setParameter("bank", actualObj.getAttribute("bank").getString())//±¾·½ÒøÐÐ
.setParameter("account", actualObj.getAttribute("account").getString())//±¾·½ÕË»§
.setParameter("accNumber", actualObj.getAttribute("acc_number").getString())//±¾·½Õ˺Å
.setParameter("id", payObj.getAttribute("id").getString());
sqlca.executeSQL(sqlObject);
tx.commit();
} catch (Exception e) {
log.error("customerBatchNo:[" + customerBatchNo + "] customerSalarySeq:[" + serialNum + "] ÅúÁ¿×ªÕ˽á¹û´¦ÀíÒì³£!", e);
if (tx != null) try {
tx.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
}
}
/**
* ½»Ò×´¦Àí״̬
*
* @param bankstatus
* @return
*/
private String getbankstatusMsg(String bankstatus) {
String msg = null;
//ÐÐÄÚ»ã¿î:6,7,8 ¿çÐлã¿î:A,B,C,E
switch (bankstatus) {
case "6":
msg = "Ö÷»ú½»Ò׳ɹ¦";
break;
case "7":
msg = "Ö÷»ú½»Ò×ʧ°Ü";
break;
case "8":
msg = "״̬δ֪,ûÓÐÊÕµ½ºǫ́ϵͳ·µ»ØµÄÓ¦´ð";
break;
case "A":
msg = "Ö§¸¶ÏµÍ³ÕýÔÚ´¦Àí";
break;
case "B":
msg = "´¦Àí³É¹¦";
break;
case "C":
msg = "´¦Àíʧ°Ü";
break;
case "E":
msg = "´ó¶î²éÖ¤";
break;
case "9":
msg = "²é֤ȡÏû½»Ò×";
break;
default:
msg = bankstatus;
}
return msg;
}
public String vaildate(Transaction sqlCa) throws Exception {
ASResultSet as = sqlCa.getASResultSet("select count(1) as nums," +
"sum(case when cmb_pay_log is not null or locate(RTNFLG,'F')>0 and length(RTNFLG)>0 then 0 else 1 end ) cmb_succ_num," +
"sum(case when cmb_pay_log is null or locate(ERRCOD,'4,7,9,C,b,W')>0 and length(ERRCOD)>0 then 0 else 1 end ) cgb_succ_num" +
" from LC_FUND_INCOME_CALLBACK_DETAIL_TEMP where flowunid = '" + flowUnid + "'");
if (as.next()) {
int nums = as.getInt("nums");
int CMBNums = as.getInt("cmb_succ_num"); //ÕÐÉÌ·¢Æð³É¹¦Êý
int CGBNums = as.getInt("cgb_succ_num"); //¹ã·¢·¢Æð³É¹¦Êý
if (nums > 0 && (CMBNums > 0 || CGBNums > 0)) {
return "ÒÑ·¢ÆðÖ§¸¶,½ûÖ¹±ä¸ü";
}
}
return "succ";
}
}