2018-09-11 14:21:20 +08:00

196 lines
6.7 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.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 CONTRACT_NUMBER="";
List<BizObject> bolist = ebankbom.createQuery("DEBIT_MONEY IS NULL").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();
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);
Map<String, String> map = new HashMap<String, String>();
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) throws Exception {
Transaction Sqlca = null;
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 FROM LC_EBANK LE WHERE ID = :ID ";
List<Map<String, String>> 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("EBANK_SN").toString();
// 将数据封装如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("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();
// 执行确认收入时, 可核销金额转入非业务金额
String sql2 = "UPDATE LC_EBANK SET NOWITH_MONEY=(NOWITH_MONEY+MAYOPE_MONEY),MAYOPE_MONEY='0.00',SUMMARY=CONCAT_WS(',',SUMMARY,'"+ SUMMARY + "') WHERE ID='" + ID + "'";
SqlObject sql3= new SqlObject(sql2);
Sqlca.executeSQL(sql3);
if (Sqlca != null) {
Sqlca.commit();
}
String sMessage = "true";
return sMessage;
}
}