2019-03-07 10:11:18 +08:00

421 lines
14 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

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.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.com.tenwa.lease.comm.LB_CONTRACT_INFO;
import jbo.sys.USER_INFO;
import jbo.voucher.LV_STACTS_CONFIG;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.LV_VOUCHER_LOAN;
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;
private String userId;
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 getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
/**
* ÅжÏÍøÒøÊÇ·ñÔÚʹÓÃ
*/
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 String createEbankVoucher(JBOTransaction tx,String userId){
Transaction Sqlca = null;
String returns="true";
try {
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 OWN_BANK = "";
// ¿ÆÄ¿±àÂë
String EBANK_SUBJECTS = "";
// Á÷Ë®ºÅ
String EBANK_SN="";
// ÒµÎñÀàÐÍ
String BUSINESS_TYPE="";
// ¿ÍÉÌÀàÐÍ
String CUSTOMER_TYPE="";
// ²éѯÐÂÔö»òÕßµ¼ÈëµÄÍøÒø
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 =userId;
if(userid == null || "".equals(userid)) {
userid="admin";
}
for (BizObject bo : bolist) {
fact_money = bo.getAttribute("fact_money").getString();
// ÒøÐÐÃû³Æ
OWN_BANK = bo.getAttribute("OWN_BANK").getString();
// ÈÕÆÚ
fact_date = bo.getAttribute("fact_date").getString();
// ÒøÐÐÕ˺Å
ownnumber = bo.getAttribute("ownacc_number").getString();
// ÍøÒøÁ÷Ë®ºÅ
EBANK_SN=bo.getAttribute("EBANK_SN").getString();
// ¸ù¾ÝÒøÐÐÃû³Æ»ñÈ¡ÒøÐпÆÄ¿
BizObject lsc=JBOFactory.createBizObjectQuery(LV_STACTS_CONFIG.CLASS_NAME, "SUBJECTS_NAME='"+OWN_BANK+"'").getSingleResult(false);
EBANK_SUBJECTS=lsc.getAttribute("SUBJECTS_CODE").getString();
// ÒµÎñÀàÐÍ
BUSINESS_TYPE=bo.getAttribute("BUSINESS_TYPE").getString();;
// ¿ÍÉÌÀàÐÍ
CUSTOMER_TYPE=bo.getAttribute("CUSTOMER_TYPE").getString();;
// BizObject RESULT = JBOFactory.createBizObjectQuery(LB_CONTRACT_INFO.CLASS_NAME,"CONTRACT_NO=:CONTRACT_NO").setParameter("CONTRACT_NO", CONTRACT_NUMBER).getSingleResult(false);
// String BUSINESSTYPE= RESULT.getAttribute("BUSINESSTYPE").getString();
// ÅжÏÊÇÆû³µÀ໹ÊÇ´«Í³Àà, Èç¹ûÊÇ´«Í³, ÔòÉú³É´«Í³µÄ·Ö¼
if("´«Í³".equals(BUSINESS_TYPE)) {
voucherNo="PZ2018092500000155";
}else if("Æû³µÀഫͳ".equals(BUSINESS_TYPE)) {
voucherNo="PZ2018092500000155";
}
// Èç¹û½ð¶îСÓÚ0, ÔòΪ·´³åƾ֤
Map<String, String> map = new HashMap<String, String>();
if(Double.parseDouble(fact_money)<0) {
voucherNo="PZ2018121800000005";
}
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("EBANK_SN", EBANK_SN);
param.put("EBANK_SUBJECTS", EBANK_SUBJECTS);
// ¸ù¾Ý¿ÍÉÌÀàÐÍÅжÏÏÖ½ðÁ÷±àÂë
if("ÄÚ²¿¿ÍÉÌ".equals(CUSTOMER_TYPE)) {
param.put("CASHFLOW", "11112");
}else if("Íⲿ¿ÍÉÌ".equals(CUSTOMER_TYPE)) {
param.put("CASHFLOW", "11113");
}
param.put("VOUCHERNO",voucherNo);
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("id").getString(),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();
} catch (Exception e) {
returns="false";
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
return returns;
}
public String createEbankVoucher2(JBOTransaction tx){
Transaction Sqlca = null;
String returns="true";
try {
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 OWN_BANK = "";
// ¿ÆÄ¿±àÂë
String EBANK_SUBJECTS = "";
// Á÷Ë®ºÅ
String EBANK_SN="";
// ÒµÎñÀàÐÍ
String BUSINESS_TYPE="";
// ¿ÍÉÌÀàÐÍ
String CUSTOMER_TYPE="";
// ²éѯÐÂÔö»òÕßµ¼ÈëµÄÍøÒø
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 =userId;
if(userid == null || "".equals(userid)) {
userid="admin";
}
for (BizObject bo : bolist) {
fact_money = bo.getAttribute("fact_money").getString();
// ÒøÐÐÃû³Æ
OWN_BANK = bo.getAttribute("OWN_BANK").getString();
// ÈÕÆÚ
fact_date = bo.getAttribute("fact_date").getString();
// ÒøÐÐÕ˺Å
ownnumber = bo.getAttribute("ownacc_number").getString();
// ÍøÒøÁ÷Ë®ºÅ
EBANK_SN=bo.getAttribute("EBANK_SN").getString();
// ¸ù¾ÝÒøÐÐÃû³Æ»ñÈ¡ÒøÐпÆÄ¿
BizObject lsc=JBOFactory.createBizObjectQuery(LV_STACTS_CONFIG.CLASS_NAME, "SUBJECTS_NAME='"+OWN_BANK+"'").getSingleResult(false);
EBANK_SUBJECTS=lsc.getAttribute("SUBJECTS_CODE").getString();
// ÒµÎñÀàÐÍ
BUSINESS_TYPE=bo.getAttribute("BUSINESS_TYPE").getString();;
// ¿ÍÉÌÀàÐÍ
CUSTOMER_TYPE=bo.getAttribute("CUSTOMER_TYPE").getString();;
// BizObject RESULT = JBOFactory.createBizObjectQuery(LB_CONTRACT_INFO.CLASS_NAME,"CONTRACT_NO=:CONTRACT_NO").setParameter("CONTRACT_NO", CONTRACT_NUMBER).getSingleResult(false);
// String BUSINESSTYPE= RESULT.getAttribute("BUSINESSTYPE").getString();
// ÅжÏÊÇÆû³µÀ໹ÊÇ´«Í³Àà, Èç¹ûÊÇ´«Í³, ÔòÉú³É´«Í³µÄ·Ö¼
if("´«Í³".equals(BUSINESS_TYPE)) {
voucherNo="PZ2018092500000155";
}else if("Æû³µÀഫͳ".equals(BUSINESS_TYPE)) {
voucherNo="PZ2018092500000155";
}
// Èç¹û½ð¶îСÓÚ0, ÔòΪ·´³åƾ֤
Map<String, String> map = new HashMap<String, String>();
if(Double.parseDouble(fact_money)<0) {
voucherNo="PZ2018121800000005";
}
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("EBANK_SN", EBANK_SN);
param.put("EBANK_SUBJECTS", EBANK_SUBJECTS);
// ¸ù¾Ý¿ÍÉÌÀàÐÍÅжÏÏÖ½ðÁ÷±àÂë
if("ÄÚ²¿¿ÍÉÌ".equals(CUSTOMER_TYPE)) {
param.put("CASHFLOW", "11112");
}else if("Íⲿ¿ÍÉÌ".equals(CUSTOMER_TYPE)) {
param.put("CASHFLOW", "11113");
}
param.put("VOUCHERNO",voucherNo);
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("id").getString(),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();
} catch (Exception e) {
returns="false";
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
return returns;
}
/**
* ºÏͬµ½ÆÚÉêÇë-½«¶àÓ໹¿îÈ·ÈÏΪÊÕÈë/½«¶àÓ໹¿îÍË»Ø
* @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,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 = userId;
if(userid == null || "".equals(userid)) {
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 EBANK_SN = jbo.get("EBANK_SN").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("EBANK_SN", EBANK_SN);
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("id").getString(),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;
}
}