135 lines
4.8 KiB
Java
135 lines
4.8 KiB
Java
package com.tenwa.platform.controller;
|
|
|
|
import com.amarsoft.are.jbo.*;
|
|
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
|
import jbo.app.tenwa.customer.CUSTOMER_ACCOUNT;
|
|
import jbo.app.tenwa.customer.CUSTOMER_ACCOUNT_TEMP;
|
|
import jbo.com.tenwa.lease.carbrand.BUSINESS_STATUS;
|
|
import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO;
|
|
import jbo.sys.PF_CUSTOMER_ACCOUNT;
|
|
import org.codehaus.jackson.map.ObjectMapper;
|
|
|
|
import java.io.IOException;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public class CustomrAccountController {
|
|
|
|
public String serial;
|
|
public String currUserId;
|
|
public String channel;
|
|
public String sourcetype;
|
|
public String operationType;
|
|
public String applicationNo;
|
|
|
|
|
|
private String BUSINESS_STATUS_31 = "31";
|
|
|
|
public String change(JBOTransaction tx) {
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
|
try {
|
|
// 查询合同信息
|
|
BizObjectManager contractInfoManager = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME, tx);
|
|
BizObject contractInfo = contractInfoManager.createQuery("CONTRACT_NUMBER=:applicationNo").setParameter("applicationNo", applicationNo).getSingleResult(false);
|
|
String contractId = contractInfo.getAttribute(LB_CONTRACT_INFO.ID).toString();
|
|
|
|
// 新的扣款卡信息
|
|
BizObjectManager pfCustomerAccountManager = JBOFactory.getBizObjectManager(PF_CUSTOMER_ACCOUNT.CLASS_NAME, tx);
|
|
BizObject pfCustomerAccount = pfCustomerAccountManager.createQuery("SERIAL=:serial").setParameter("serial", serial).getSingleResult(false);
|
|
String newAccount = pfCustomerAccount.getAttribute(PF_CUSTOMER_ACCOUNT.account).toString();
|
|
String newAccNumber = pfCustomerAccount.getAttribute(PF_CUSTOMER_ACCOUNT.acc_number).toString();
|
|
String newBankName = pfCustomerAccount.getAttribute(PF_CUSTOMER_ACCOUNT.bank_name).toString();
|
|
String newMobile = pfCustomerAccount.getAttribute(PF_CUSTOMER_ACCOUNT.MOBILE).toString();
|
|
|
|
// 查询合同状态
|
|
BizObjectManager businessStatusManager = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME, tx);
|
|
BizObject businessStatus = businessStatusManager.createQuery("CONTRACT_NUMBER=:applicationNo").setParameter("applicationNo", applicationNo).getSingleResult(false);
|
|
|
|
if (businessStatus != null & BUSINESS_STATUS_31.equals(businessStatus.getAttribute(BUSINESS_STATUS.business_status).toString())) {
|
|
// TODO 查询流程状态,处于扣款卡变更流程中返回错误
|
|
|
|
// 发起扣款卡信息变更流程
|
|
Map<String, String> otherProperty = new HashMap<>();
|
|
otherProperty.put(CUSTOMER_ACCOUNT_TEMP.account, newAccount);
|
|
otherProperty.put(CUSTOMER_ACCOUNT_TEMP.acc_number, newAccNumber);
|
|
otherProperty.put(CUSTOMER_ACCOUNT_TEMP.bank_name, newBankName);
|
|
otherProperty.put(CUSTOMER_ACCOUNT_TEMP.MOBILE, newMobile);
|
|
|
|
Map<String, String> fromCondition = new HashMap<>();
|
|
fromCondition.put(CUSTOMER_ACCOUNT.contract_id, contractId);
|
|
DataOperatorUtil.copySingleJBO(CUSTOMER_ACCOUNT.CLASS_NAME, fromCondition, CUSTOMER_ACCOUNT_TEMP.CLASS_NAME, null, otherProperty, tx);
|
|
|
|
// TODO 发起扣款卡变更流程
|
|
|
|
result.put("success", true);
|
|
result.put("msg", "发起扣款卡信息变更流程成功");
|
|
} else {
|
|
// 直接变更扣款卡信息
|
|
BizObjectManager custmerAccountManager = JBOFactory.getBizObjectManager(CUSTOMER_ACCOUNT.CLASS_NAME, tx);
|
|
BizObject customerAccount = custmerAccountManager.createQuery("contract_id=:contractId").setParameter("contractId", contractId).getSingleResult(false);
|
|
customerAccount.setAttributeValue(CUSTOMER_ACCOUNT.account, newAccount);
|
|
customerAccount.setAttributeValue(CUSTOMER_ACCOUNT.acc_number, newAccNumber);
|
|
customerAccount.setAttributeValue(CUSTOMER_ACCOUNT.bank_name, newBankName);
|
|
customerAccount.setAttributeValue(CUSTOMER_ACCOUNT.MOBILE, newMobile);
|
|
custmerAccountManager.saveObject(customerAccount);
|
|
result.put("success", true);
|
|
result.put("msg", "扣款卡信息变更成功");
|
|
}
|
|
} catch (JBOException e) {
|
|
result.put("success", false);
|
|
result.put("msg", "扣款卡信息变更出现异常");
|
|
e.printStackTrace();
|
|
} finally {
|
|
try {
|
|
return new ObjectMapper().writeValueAsString(result);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
return "{'success': false, 'msg': '扣款卡信息变更出现异常'}";
|
|
}
|
|
}
|
|
}
|
|
|
|
public String getCurrUserId() {
|
|
return currUserId;
|
|
}
|
|
|
|
public void setCurrUserId(String currUserId) {
|
|
this.currUserId = currUserId;
|
|
}
|
|
|
|
public String getChannel() {
|
|
return channel;
|
|
}
|
|
|
|
public void setChannel(String channel) {
|
|
this.channel = channel;
|
|
}
|
|
|
|
public String getSourcetype() {
|
|
return sourcetype;
|
|
}
|
|
|
|
public void setSourcetype(String sourcetype) {
|
|
this.sourcetype = sourcetype;
|
|
}
|
|
|
|
public String getOperationType() {
|
|
return operationType;
|
|
}
|
|
|
|
public void setOperationType(String operationType) {
|
|
this.operationType = operationType;
|
|
}
|
|
|
|
public String getApplicationNo() {
|
|
return applicationNo;
|
|
}
|
|
|
|
public void setApplicationNo(String applicationNo) {
|
|
this.applicationNo = applicationNo;
|
|
}
|
|
|
|
|
|
}
|