2019-08-07 14:11:36 +08:00

455 lines
16 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 jbo.voucher.TAX_CODE;
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="PZ2019072000000071";
}
// Èç¹û½ð¶îСÓÚ0, ÔòΪ·´³åƾ֤
Map<String, String> map = new HashMap<String, String>();
if(Double.parseDouble(fact_money)<0) {
// ÅжÏÊÇÆû³µÀ໹ÊÇ´«Í³Àà, Èç¹ûÊÇ´«Í³, ÔòÉú³É´«Í³µÄ·Ö¼
if("´«Í³".equals(BUSINESS_TYPE)) {
voucherNo="PZ2019072000000072";
}else if("Æû³µÀഫͳ".equals(BUSINESS_TYPE)) {
voucherNo="PZ2019072000000073";
}else{
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="PZ2019072000000071";
}
// Èç¹û½ð¶îСÓÚ0, ÔòΪ·´³åƾ֤
Map<String, String> map = new HashMap<String, String>();
if(Double.parseDouble(fact_money)<0) {
// ÅжÏÊÇÆû³µÀ໹ÊÇ´«Í³Àà, Èç¹ûÊÇ´«Í³, ÔòÉú³É´«Í³µÄ·Ö¼
if("´«Í³".equals(BUSINESS_TYPE)) {
voucherNo="PZ2019072000000072";
}else if("Æû³µÀഫͳ".equals(BUSINESS_TYPE)) {
voucherNo="PZ2019072000000073";
}else{
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>();
double mon =0;
// »ñÈ¡Ò³Ãæ´«Èë²ÎÊý
String VOUCHERNO = this.getVOUCHERNO();
String ID = this.getEbdataid();
// ͨ¹ý´«Èëid²éѯËùÐèÊý¾Ý
map.put("ID", ID);
String sql1 = "SELECT ROUND((getTax(LCI.LEAS_FORM,'×â½ð', LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,LE.MAYOPE_MONEY AS MONEY,ROUND(LE.MAYOPE_MONEY / getTax(LCI.LEAS_FORM,'×â½ð', LCCT.START_DATE),2) AS MONEYNOTAX,LE.MAYOPE_MONEY - ROUND(LE.MAYOPE_MONEY / getTax(LCI.LEAS_FORM,'×â½ð', LCCT.START_DATE),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,LCI.ID AS CONTRACT_ID,LCI.CONTRACT_NUMBER FROM LC_EBANK LE LEFT JOIN (SELECT EBANK_NUMBER,MAX(CONTRACT_ID) AS CONTRACT_ID FROM LC_RENT_INCOME GROUP BY EBANK_NUMBER) LRI ON LRI.EBANK_NUMBER = LE.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID = LUL.CUSTOMER_ID WHERE LE.ID = :ID AND LUL.IS_MAIN = 'Y' ";
List<Map<String, String>>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";
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");
String TAX_NUM = jbo.get("TAX_NUM");
String CONTRACT_ID = jbo.get("CONTRACT_ID");
String CONTRACT_NUMBER = jbo.get("CONTRACT_NUMBER");
// ͨ¹ý˰ÂÊ»ñÈ¡±àÂë
BizObject TAX_CODES=null;
if(TAX_NUM!=null && !"".equals(TAX_NUM)) {
TAX_CODES=JBOFactory.createBizObjectQuery(TAX_CODE.CLASS_NAME,"TAX_NUMBER='"+TAX_NUM+"'").getSingleResult(false);
}
//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_ID", CONTRACT_ID);
param.put("CONTRACT_NUMBER", CONTRACT_NUMBER);
param.put("EBANK_SN", EBANK_SN);
param.put("CUSTID", CUSTOMERID);
param.put("CUSTNAME", CUSTOMERNAME);
param.put("VOUCHERNO", VOUCHERNO);
if(TAX_CODES!=null) {
param.put("TAX_CODE",TAX_CODES.getAttribute("TAX_CODES").getString());
}
// ͨ¹ýƾ֤±àºÅ»ñÈ¡¶ÔÓ¦±àºÅµÄƾ֤ÐÅÏ¢
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);
}
}
}
if(dataList==null || dataList.isEmpty()){
sMessage = "false1";// ÍøÒøÎ´Ê¹ÓÃ
}else if((dataList!=null || !dataList.isEmpty()) && mon==0){
sMessage = "false2";// ¿ÉºËÏú½ð¶îΪ0
}else if((dataList!=null || !dataList.isEmpty()) && mon>0){
// »ñÈ¡²ÎÊý, °´ÐèÐÞ¸ÄÊý¾Ý
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=CASE WHEN (SUMMARY IS NULL OR SUMMARY ='') THEN '"+SUMMARY+"' ELSE CONCAT_WS(',',SUMMARY,'"+ SUMMARY + "') END 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=CASE WHEN (SUMMARY IS NULL OR SUMMARY ='') THEN '"+SUMMARY+"' ELSE CONCAT_WS(',',SUMMARY,'"+ SUMMARY + "') END WHERE ID='" + ID + "'";
SqlObject s3= new SqlObject(sql3);
Sqlca.executeSQL(s3);
}
sMessage = "true";
}
Sqlca.commit();
} 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;
}
}