apzl_leasing/src_cmb/com/tenwa/sdk/controller/CmbToCallbackController.java
zhangbb 4a070b0ee8 1.产品配置中去掉免罚息天数。
2.付款结果回盘按钮与付款明细中会判结果联动。
2018-07-26 18:04:32 +08:00

185 lines
7.2 KiB
Java

package com.tenwa.sdk.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.BizObjectQuery;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.tenwa.flow.action.comm.BaseFlowStartAction;
import com.tenwa.sdk.VO.SDKCheckCallBackVO;
import com.tenwa.sdk.VO.SDKCheckCallDetail;
import com.tenwa.sdk.VO.SDKCheckInfoVO;
import com.tenwa.sdk.VO.SDKNtstLinFxVo;
import com.tenwa.sdk.VO.SDKToCheckVO;
import com.tenwa.sdk.utils.HttpRequest;
import com.tenwa.sdk.utils.XMLStream;
import com.thoughtworks.xstream.XStream;
import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO;
import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP;
import jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT;
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_DETAIL_TEMP;
import net.sf.json.JSONObject;
public class CmbToCallbackController extends BaseFlowStartAction {
private String FLOWUNID ; //流程号
private String CallbackStatus;
public String getFLOWUNID() {
return FLOWUNID;
}
public void setFLOWUNID(String fLOWUNID) {
FLOWUNID = fLOWUNID;
}
public String getCallbackStatus() {
return CallbackStatus;
}
public void setCallbackStatus(String callbackStatus) {
CallbackStatus = callbackStatus;
}
@SuppressWarnings("unchecked")
public String action(JBOTransaction tx) throws Exception {
Map<String,String> map = new HashMap<String,String>();
map.put("code", "0") ;
map.put("msg", "") ;
if(FLOWUNID==null || "".equals(FLOWUNID)) {
map.put("code", "1") ;
map.put("msg", "流程编号不能为空,请检查") ;
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
/*
* 本方放款账户获取######开始
*/
BizObjectManager accountManager = JBOFactory.getBizObjectManager(OWN_ACCOUNT.CLASS_NAME);
List<BizObject> accountBoList = accountManager.createQuery("select o.acc_number,o.acc_bank,o.acc_name,o.branch_code,oi.OWN_NAME from o join jbo.com.tenwa.entity.comm.own.OWN_INFO oi on o.own_id = oi.OWN_NUMBER where o.money_type='01' and o.state_='0010' and acc_type='0010' and account_type='out_account' ").getResultList(false);
if( accountBoList==null ) {
map.put("code", "1") ;
map.put("msg", "本方账户不存在,请检查") ;
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
if( accountBoList!=null && accountBoList.size()>1 ) {
map.put("code", "1") ;
map.put("msg", "启用的汽车类放款账户有多个请检查,请检查") ;
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
BizObject accountBo = accountBoList.get(0);
/*
* 本方放款账户获取######结束
*/
String LGNNAM = accountBo.getAttribute("OWN_NAME").toString();
String FUNNAM = "NTSTLINF";
int DATTYP = 2;
SDKToCheckVO toCheckVO = new SDKToCheckVO();
SDKCheckInfoVO checkInfo = new SDKCheckInfoVO();
checkInfo.setDATTYP(DATTYP);
checkInfo.setFUNNAM(FUNNAM);
checkInfo.setLGNNAM(LGNNAM);
toCheckVO.setINFO(checkInfo);
BizObjectManager call_back_list_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME);
String sql = "select * from o where ( REQNBR is not null and REQNBR<>'' ) and FLOWUNID=:FLOWUNID ";
BizObjectQuery check_list_boo = call_back_list_bom.createQuery(sql);
check_list_boo.setParameter("FLOWUNID", FLOWUNID) ;
List<BizObject> check_list_bo = check_list_boo.getResultList(false);
if(check_list_bo!=null && check_list_bo.size()>0) {
List<SDKNtstLinFxVo> ntstLinFxList = new ArrayList<SDKNtstLinFxVo>();
SDKNtstLinFxVo ntstLinFxOne = null ;
for(BizObject check_list_one : check_list_bo) {
ntstLinFxOne = new SDKNtstLinFxVo();
String ONE_REQNBR = check_list_one.getAttribute("REQNBR").toString();
ntstLinFxOne.setREQNBR(ONE_REQNBR);
ntstLinFxList.add(ntstLinFxOne);
}
toCheckVO.setNtstLinFxList(ntstLinFxList);
XStream xStream = new XMLStream();
xStream.alias("NTSTLINFX", SDKNtstLinFxVo.class);
xStream.alias("CMBSDKPGK", SDKToCheckVO.class);
String xmlStr = xStream.toXML(toCheckVO);
xmlStr = xmlStr.replace("<ntstLinFxList>", "").replace("</ntstLinFxList>", "").replace("<ntstLinFxList/>", "");
HttpRequest request = new HttpRequest();
//HttpRequest request = new HttpRequest("http://172.16.20.242:65188");
//HttpRequest request = new HttpRequest("http://192.168.13.162:65188");
//request.setTimeout(3000);
String data = xmlStr;
SDKCheckCallBackVO result = request.sendCheckRequest(data);
if(result==null) {
map.put("code", "1") ;
map.put("msg", "请求出错") ;
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
if(result.getInfo().getSTATUS()==1) {
List<SDKCheckCallDetail> callback_list = result.getDetails();
if(callback_list!=null && callback_list.size()>0) {
BizObjectManager callback_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME) ;
tx.join(callback_detail_bom);
BizObjectQuery callback_detail_boo = callback_detail_bom.createQuery("select * from o where REQNBR=:REQNBR and YURREF=:YURREF and FLOWUNID=:FLOWUNID");
BizObject callback_detail_bo = null ;
for(SDKCheckCallDetail callback_detail : callback_list) {
callback_detail_boo.setParameter("REQNBR",callback_detail.getREQNBR()) ;
callback_detail_boo.setParameter("YURREF",callback_detail.getYURREF()) ;
callback_detail_boo.setParameter("FLOWUNID",FLOWUNID) ;
callback_detail_bo = callback_detail_boo.getSingleResult(true);
callback_detail_bo.setAttributeValue("REQSTS",callback_detail.getREQSTS());
callback_detail_bo.setAttributeValue("RTNFLG",callback_detail.getRTNFLG());
callback_detail_bo.setAttributeValue("RTNNAR",callback_detail.getRTNNAR());
this.initTabeUserInfo(callback_detail_bo);
callback_detail_bom.saveObject(callback_detail_bo);
}
map.put("code", "0") ;
map.put("msg", "查询结果刷新成功") ;
JSONObject jsonObj = JSONObject.fromObject(map);
sql();
return jsonObj.toString();
}else {
sql();
map.put("code", "1") ;
map.put("msg", "没有找到相关数据,请检查") ;
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
}else {
sql();
map.put("code", "1") ;
map.put("msg", result.getInfo().getERRMSG()) ;
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
}else {
map.put("code", "1") ;
map.put("msg", "暂无支付申请发起成功数据,请检查") ;
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}
}
public void sql() throws JBOException{
String sql2 = "update O left join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO lci on lci.id=O.contract_id"
+" left join jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_DETAIL_TEMP tt on tt.DISTRIBUTOR_ID=lci.distributor_id"
+" and O.FLOWUNID=tt.FLOWUNID set O.EBANK_STATUS=case when tt.RTNFLG='S' then '05' else '04' end where O.FLOWUNID="+"'"+FLOWUNID+"'" ;
JBOFactory.createBizObjectQuery(LC_FUND_INCOME_TEMP.CLASS_NAME,sql2).executeUpdate();
}
}