233 lines
8.1 KiB
Java

package com.tenwa.lease.app.ebank;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.app.tenwa.calc.LC_EBANK;
import jbo.app.tenwa.calc.LC_EBANK_PROCESS;
import jbo.voucher.LV_VOUCHER_CONFIG;
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.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.amarsoft.dict.als.manage.NameManager;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class EbankUse {
private String ebdataid;
private String VOUCHERNO;
private String SUMMARY;
public String getVOUCHERNO() {
return VOUCHERNO;
}
public void setVOUCHERNO(String vOUCHERNO) {
VOUCHERNO = vOUCHERNO;
}
public String getSUMMARY() {
return SUMMARY;
}
public void setSUMMARY(String sUMMARY) {
SUMMARY = sUMMARY;
}
public String getEbdataid() {
return ebdataid;
}
public void setEbdataid(String ebdataid) {
this.ebdataid = ebdataid;
}
/**
* 判断网银是否在使用
*/
public String isEbankUse(JBOTransaction tx) throws Exception {
String sql = "select * from O where ebank_number=:ebankid";
BizObjectManager ebankbom = JBOFactory.getBizObjectManager(LC_EBANK_PROCESS.CLASS_NAME);
tx.join(ebankbom);
BizObjectQuery boq = ebankbom.createQuery(sql);
boq.setParameter("ebankid", this.getEbdataid());
List<BizObject> bolist = boq.getResultList(false);
if (bolist.size() != 0) {
return "fail";
}
return "success";
}
/**
* 让网银变成废弃
*/
public String setEbankAbandon(JBOTransaction tx) throws Exception {
String sql = "update O set invalid=:invalid where id=:id";
BizObjectManager ebankbom = JBOFactory.getBizObjectManager(LC_EBANK.CLASS_NAME);
tx.join(ebankbom);
ebankbom.createQuery(sql).setParameter("invalid", "Y").setParameter("id", this.getEbdataid()).executeUpdate();
return "success";
}
public void createEbankVoucher(JBOTransaction tx) throws Exception {
Transaction Sqlca = null;
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String voucherNo = "PZ2018081600000120";
Map<String, String> param = new HashMap<String, String>();
BizObjectManager ebankbom = JBOFactory.getBizObjectManager(LC_EBANK.CLASS_NAME);
tx.join(ebankbom);
String fact_money = "";
String fact_date = "";
String ownnumber = "";
String EBANK_SUBJECTS = "";
String CONTRACT_NUMBER="";
List<BizObject> bolist = ebankbom.createQuery("DEBIT_MONEY IS NULL or DEBIT_MONEY=0.00").getResultList(true);
CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl();
String VOUCHER_TYPE = "1";// 凭证分类 金蝶
String userid = "admin";
for (BizObject bo : bolist) {
fact_money = bo.getAttribute("fact_money").getString();
fact_date = bo.getAttribute("fact_date").getString();
ownnumber = bo.getAttribute("ownacc_number").getString();
CONTRACT_NUMBER=bo.getAttribute("EBANK_SN").getString();
EBANK_SUBJECTS=bo.getAttribute("EBANK_SUBJECTS").getString();
param.put("FACT_MONEY", fact_money);
param.put("ACCOUNT_DATE", fact_date);
param.put("FACT_DATE", fact_date);
param.put("ACC_NUMBER", ownnumber);
param.put("CONTRACT_NUMBER", CONTRACT_NUMBER);
param.put("VOUCHERNO", voucherNo);
param.put("EBANK_SUBJECTS", EBANK_SUBJECTS);
param.put("CASHFLOW", "11113");
Map<String, String> map = new HashMap<String, String>();
if(Double.parseDouble(fact_money)<0) {
voucherNo="PZ2018121800000005";
}
map.put("PROJ_TYPE", "02");
map.put("VOUCHER_NO", voucherNo);
BizObject vouch = DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
if (vouch != null) {
vs.createVoucher(vouch.getAttribute("MODULAR_NUMBER").getString(),
vouch.getAttribute("OWNED_COMPANY").getString(), "02", VOUCHER_TYPE, userid, param, Sqlca);
}
bo.setAttributeValue("DEBIT_MONEY", fact_money);
ebankbom.saveObject(bo);
}
Sqlca.commit();
}
/**
* 合同到期申请-将多余还款确认为收入/将多余还款退回
* @param tx
* @throws Exception
*/
public String createLeftEbankIncomeVoucher(JBOTransaction tx) {
Transaction Sqlca = null;
String sMessage = "";
try {
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
Map<String, String> map = new HashMap<String, String>();
Map<String, String> param = new HashMap<String, String>();
// 获取页面传入参数
String VOUCHERNO = this.getVOUCHERNO();
String ID = this.getEbdataid();
// 通过传入id查询所需数据
map.put("ID", ID);
String sql1 = "SELECT LE.MAYOPE_MONEY AS MONEY,ROUND(LE.MAYOPE_MONEY / 1.06, 2) AS MONEYNOTAX,LE.MAYOPE_MONEY - ROUND(LE.MAYOPE_MONEY / 1.06, 2) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LE.OWNACC_NUMBER AS ACC_NUMBER,LE.EBANK_SN AS CONTRACT_NUMBER,CI.CUSTOMER_NUM as CUSTOMERID,CI.CUSTOMERNAME FROM LC_EBANK LE LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LE.CUSTOMER_ID WHERE ID = :ID ";
List<Map<String, String>> dataList;
dataList = DataOperatorUtil.getDataBySql(Sqlca, sql1, map);
// 获取所需数据
String VOUCHER_TYPE = "1";// 凭证分类 金蝶
String userid = "admin";
for (Map<String, String> jbo : dataList) {
String MONEY = jbo.get("MONEY").toString();
if ("".equals(MONEY) || MONEY == null)MONEY = "0.00";
double mon = Double.parseDouble(MONEY);
if (mon > 0) {
String MONEYNOTAX = jbo.get("MONEYNOTAX").toString();
String TAX = jbo.get("TAX").toString();
String ACCOUNT_DATE = jbo.get("ACCOUNT_DATE").toString();
String FACT_DATE = jbo.get("FACT_DATE").toString();
String ACC_NUMBER = jbo.get("ACC_NUMBER").toString();
String CONTRACT_NUMBER = jbo.get("CONTRACT_NUMBER").toString();
String CUSTOMERID = jbo.get("CUSTOMERID");
String CUSTOMERNAME = jbo.get("CUSTOMERNAME");
//NameManager.getCustomerName(CUSTOMERID);
// 将数据封装如param中
param.put("FACT_MONEY", MONEY);
param.put("INTERESTNOTAX", MONEYNOTAX);
param.put("TAX", TAX);
param.put("ACCOUNT_DATE", ACCOUNT_DATE);
param.put("FACT_DATE", FACT_DATE);
param.put("ACC_NUMBER", ACC_NUMBER);
param.put("CONTRACT_NUMBER", CONTRACT_NUMBER);
param.put("CUSTID", CUSTOMERID);
param.put("CUSTNAME", CUSTOMERNAME);
param.put("VOUCHERNO", VOUCHERNO);
param.put("DEPT", "02"); // 部门
// 通过凭证编号获取对应编号的凭证信息
map.clear();
map.put("VOUCHER_NO", VOUCHERNO);
BizObject voucher = DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
// 如果有有此凭证, 生成当前凭证
CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl();
if (voucher != null) {
vs.createVoucher(voucher.getAttribute("MODULAR_NUMBER").getString(),voucher.getAttribute("OWNED_COMPANY").getString(), "02", VOUCHER_TYPE, userid, param,Sqlca);
}
}
}
// 获取参数, 按需修改数据
String SUMMARY = this.getSUMMARY();
// 执行确认收入时, 可核销金额转入已核销金额
if("PZ2018072100000052".equals(VOUCHERNO)) {
String sql2="UPDATE LC_EBANK SET HAD_MONEY=(MAYOPE_MONEY+HAD_MONEY),MAYOPE_MONEY='0.00',SUMMARY=CONCAT_WS(',',SUMMARY,'"+ SUMMARY + "') WHERE ID='" + ID + "'";
SqlObject s2= new SqlObject(sql2);
Sqlca.executeSQL(s2);
}else if("PZ2018072100000051".equals(VOUCHERNO)) {// 执行确认退回时, 可核销金额转入非业务金额
String sql3="UPDATE LC_EBANK SET NOWITH_MONEY=(MAYOPE_MONEY+NOWITH_MONEY),MAYOPE_MONEY='0.00',SUMMARY=CONCAT_WS(',',SUMMARY,'"+ SUMMARY + "') WHERE ID='" + ID + "'";
SqlObject s3= new SqlObject(sql3);
Sqlca.executeSQL(s3);
}
Sqlca.commit();
sMessage = "true";
} catch (Exception e) {
try {
sMessage="false";
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
return sMessage;
}
}