From 478e25a13d3873ff03b3c3e9961589f589f9adb0 Mon Sep 17 00:00:00 2001 From: zhanglei Date: Fri, 6 Jul 2018 15:59:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E7=AE=A1=E7=90=86=E8=B0=83?= =?UTF-8?q?=E9=80=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClearRecord/LbClearFileRecordDetail.jsp | 2 +- .../LcReviewAuditRentPlanList.jsp | 10 ++-- .../customerfilterlist/DebitCardAction.java | 26 ++++----- .../cache/CollectAuditInfoCache.java | 55 ++++++++++--------- 4 files changed, 49 insertions(+), 44 deletions(-) diff --git a/WebContent/Tenwa/Lease/Flow/CollectionAudit/ClearRecord/LbClearFileRecordDetail.jsp b/WebContent/Tenwa/Lease/Flow/CollectionAudit/ClearRecord/LbClearFileRecordDetail.jsp index a960e635e..6d01e0a65 100644 --- a/WebContent/Tenwa/Lease/Flow/CollectionAudit/ClearRecord/LbClearFileRecordDetail.jsp +++ b/WebContent/Tenwa/Lease/Flow/CollectionAudit/ClearRecord/LbClearFileRecordDetail.jsp @@ -33,7 +33,7 @@ as_save("0","upload()"); } function upload(){ - var parm = "id="+getItemValue(0,getRow(0),"id")+",clearDate="+getItemValue(0,getRow(0),"clear_date"); + var parm = "id="+getItemValue(0,getRow(0),"id")+",clearDate="+getItemValue(0,getRow(0),"cleardate"); var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache","uploadClearFile", parm); //关闭当前窗口 AsDialog.ClosePage(); diff --git a/WebContent/Tenwa/Lease/Flow/CollectionAudit/LcReviewAuditRentPlanList.jsp b/WebContent/Tenwa/Lease/Flow/CollectionAudit/LcReviewAuditRentPlanList.jsp index f16218e84..e5aa04b47 100644 --- a/WebContent/Tenwa/Lease/Flow/CollectionAudit/LcReviewAuditRentPlanList.jsp +++ b/WebContent/Tenwa/Lease/Flow/CollectionAudit/LcReviewAuditRentPlanList.jsp @@ -25,7 +25,7 @@ {"true","All","Button","批量扣款","批量扣款","batchCollect()","","","","btn_icon_add",""}, //{"true","All","Button","实时扣款","实时扣款","timelyCollect()","","","","btn_icon_add",""}, {"true","All","Button","手工扣款","手工扣款","afterCollectManage()","","","","btn_icon_add",""}, - {"false","All","Button","查询批量扣款","查询批量扣款","queryBatchCollect()","","","","btn_icon_add",""}, + {"true","All","Button","查询批量扣款","查询批量扣款","queryBatchCollect()","","","","btn_icon_add",""}, {"true","","Button","退回","审核未通过,退回初审","if(confirm('确定要退回吗?')){viewAndEdit()}","","","","btn_icon_detail",""}, }; %><%@include file="/Frame/resources/include/ui/include_list.jspf"%> @@ -75,11 +75,12 @@ reloadSelf(); } } + //批量代收 function batchCollect(){ //debugger; if(confirm('确实要执行代收操作吗?')){ - var sParm = getItemValueArray(0, "id"); + var sParm = getItemValueArray(0,"id"); var fileSavePath = "<%=CurConfig.getConfigure("InterfaceFileSavePath")%>"; if(typeof(sParm) == "undefined" || sParm.length == 0 ) { @@ -129,8 +130,7 @@ } } var parm = "id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>"; - var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "queryBatchCollectStatus", parm); - alert(res); + var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "queryBatchCollectStatus",parm); reloadSelf(); } } @@ -154,7 +154,7 @@ } //扣款前提校验 - var result = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "checkRentIsIncome", "id="+ids); + var result = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "checkRentIsIncome", "id="+ids); var value = result.split("@"); if (value[0] == "error") { alert(value[1]); diff --git a/src_core/com/tenwa/comm/customerfilterlist/DebitCardAction.java b/src_core/com/tenwa/comm/customerfilterlist/DebitCardAction.java index 6979bcbb2..ea8112d09 100644 --- a/src_core/com/tenwa/comm/customerfilterlist/DebitCardAction.java +++ b/src_core/com/tenwa/comm/customerfilterlist/DebitCardAction.java @@ -153,7 +153,9 @@ public String saveMobile(JBOTransaction tx) throws JBOException{ //校验银行卡四要素 public String verifyFourelementBank(JBOTransaction tx) throws JBOException{ BizObjectManager bm = JBOFactory.getFactory().getManager(CUSTOMER_ACCOUNT_TEMP.CLASS_NAME); - String customerid = this.getCustIdByFlowunid(tx).split(",")[0].toString(); + String s=this.getFlowUnid(); + BizObject bankObject = bm.createQuery("select customerid from O where flowunid=:FLOWUNID").setParameter("FLOWUNID",s).getSingleResult(false); + String customerid = bankObject.getAttribute("customerid").getString(); BizObject bo = bm.createQuery("select cpt.fullname,O.mobile,O.acc_number,O.account,cpt.CERTID,cpt.CERTTYPE,O.customerid from O,jbo.app.tenwa.customer.CUSTOMER_PERSON_TEMP cpt " + "where O.customerid = cpt.customerid and cpt.customerid=:customerid") .setParameter("customerid",customerid).getSingleResult(false); @@ -186,28 +188,28 @@ public String verifyFourelementBank(JBOTransaction tx) throws JBOException{ return "SUCCESS"; } -public static void main(String[] args) { +/*public static void main(String[] args) { //代收付签约、银行卡验证交易测试URL - /*CollectAuditInfoCache cap = new CollectAuditInfoCache();*/ + CollectAuditInfoCache cap = new CollectAuditInfoCache(); Map map = new HashMap(); map.put("ACCOUNT_NO", "6225887814773509");//卡号 map.put("ACCOUNT_NAME", "戚静");//户名 map.put("ID_TYPE", "0");//开户时的证件类型,0->身份证,默认身份证 - /*if (bo.getAttribute("CERTTYPE").toString().equals("Ind02")) { + if (bo.getAttribute("CERTTYPE").toString().equals("Ind02")) { map.put("ID_TYPE", "2");// 2->护照 - } */ + } map.put("ID_TYPE", "0");//开户时的证件类型,0->身份证 map.put("ID", "420502198301131325");//开户时的证件号码 map.put("TEL", "13923495221"); //四要素 Map fourMsg = new HashMap(); - /*try { + try { fourMsg = cap.vitfyCollectManage(map); } catch (CryptException e) { // TODO Auto-generated catch block e.printStackTrace(); - }*/ -} + } +}*/ //校验银行卡四要素 public String verifyFourelementBankManage(JBOTransaction tx) throws JBOException{ BizObjectManager bm = JBOFactory.getFactory().getManager(CUSTOMER_ACCOUNT.CLASS_NAME); @@ -216,7 +218,7 @@ public String verifyFourelementBankManage(JBOTransaction tx) throws JBOExceptio .setParameter("customerid", this.getCustomerid()).getSingleResult(false); if (bo != null) { //代收付签约、银行卡验证交易测试URL - /*CollectAuditInfoCache cap = new CollectAuditInfoCache();*/ + CollectAuditInfoCache cap = new CollectAuditInfoCache(); Map map = new HashMap(); map.put("ACCOUNT_NO", bo.getAttribute("acc_number").toString());//卡号 map.put("ACCOUNT_NAME", bo.getAttribute("account").toString());//户名 @@ -224,22 +226,20 @@ public String verifyFourelementBankManage(JBOTransaction tx) throws JBOExceptio if (bo.getAttribute("CERTTYPE").toString().equals("Ind02")) { map.put("ID_TYPE", "2");// 2->护照 } - map.put("ID_TYPE", "0");//开户时的证件类型,0->身份证 map.put("ID", bo.getAttribute("CERTID").toString());//开户时的证件号码 map.put("TEL", bo.getAttribute("mobile").toString());//开户时预留的11位手机号 //四要素 Map fourMsg = new HashMap(); - /*try { + try { fourMsg = cap.vitfyCollectManage(map); bm.createQuery("update O set VERIFY=:verify,VERIFY_STATUS=:verify_status where customerid=:customerid and acc_type='Debit'") .setParameter("verify", fourMsg.get("ERR_MSG")) .setParameter("verify_status", "0000".equals(fourMsg.get("RET_CODE")) ? "Y" : "N") .setParameter("customerid", this.getCustomerid()).executeUpdate(); } catch (CryptException e) { - // TODO Auto-generated catch block e.printStackTrace(); return "ERROR"; - }*/ + } } return "SUCCESS"; } diff --git a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java index 3b6606f74..1765b62ce 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java @@ -6,9 +6,6 @@ import java.text.DecimalFormat; import java.util.HashMap; import java.util.List; import java.util.Map; - - - import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -136,8 +133,10 @@ public class CollectAuditInfoCache { BizObjectManager acc = JBOFactory.getFactory().getManager(CUSTOMER_ACCOUNT.CLASS_NAME); List bolist = bm.createQuery("select v.getCustomerName(O.customer_id) as v.customer_name,O.account,O.acc_number,O.mobile,O.contract_id,O.plan_list,O.plan_date,O.COLLECT_STATUS,O.BATCH_STATUS,O.rent from O where O.id in ("+parm.toString()+")").getResultList(false); for (BizObject bo : bolist) { + System.out.println("银行账户:"+bo.getAttribute("account")+",银行卡号:"+bo.getAttribute("acc_number") + +",手机号:"+bo.getAttribute("mobile")+"合同ID:"+bo.getAttribute("contract_id")); String name = bo.getAttribute("customer_name").toString().trim(); - BizObject ac = acc.createQuery("O.account=:account and O.acc_info = 'Debit' and O.sign_status ='Y' and O.acc_number=:acc_number and O.mobile=:mobile and O.contract_id=:contract_id") + BizObject ac = acc.createQuery("O.account=:account and O.acc_type = 'Debit' and O.sign_status ='Y' and O.acc_number=:acc_number and O.mobile=:mobile and O.contract_id=:contract_id") .setParameter("account", bo.getAttribute("account").toString()) .setParameter("acc_number", bo.getAttribute("acc_number").toString()) .setParameter("mobile", bo.getAttribute("mobile").toString()) @@ -148,8 +147,9 @@ public class CollectAuditInfoCache { } } BizObjectManager bmr = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); - String today=DateTool.getToday(); - bmr.createQuery("update O set O.AUDIT_STATE = 'Y',CollectTime='"+today+"' where id in ("+parm+")").executeUpdate(); + //String today=DateTool.getToday(); + bmr.createQuery("update O set O.AUDIT_STATE = 'Y' where id in ("+parm+")").executeUpdate(); + //bmr.createQuery("update O set O.AUDIT_STATE = 'Y',CollectTime='"+today+"' where id in ("+parm+")").executeUpdate(); return "success"; } @@ -418,7 +418,7 @@ public class CollectAuditInfoCache { Map map = new HashMap(); JBOTransaction transaction = JBOFactory.createJBOTransaction(); BizObjectManager bmi = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,transaction); - BizObject boi = bmi.createQuery("select v.sys_guid() as v.id,O.QUOT_ID as v.QUOT_ID,O.CUST_ID as v.CUST_ID,O.PROJECT_ID as v.PROJECT_ID,O.PROJECT_PLAN_NUMBER as v.PROJECT_PLAN_NUMBER," + BizObject boi = bmi.createQuery("select v.replace(v.uuid(),'-','') as v.id,O.QUOT_ID as v.QUOT_ID,O.CUST_ID as v.CUST_ID,O.PROJECT_ID as v.PROJECT_ID,O.PROJECT_PLAN_NUMBER as v.PROJECT_PLAN_NUMBER," + "O.CONTRACT_ID as v.CONTRACT_ID,O.CONTRACT_PLAN_NUMBER as v.CONTRACT_PLAN_NUMBER,O.PAYMENT_NUMBER as v.PAYMENT_NUMBER,'' as v.EBANK_NUMBER,O.id as v.PLAN_ID,O.PLAN_LIST as v.PLAN_LIST," + "'0' as v.INTEREST_ADJUST,'settlemethod6' as v.SETTLE_METHOD,'"+hire_list+"' as v.HIRE_LIST,'"+cerrentDate+"' as v.HIRE_DATE,'"+rent+"' as v.RENT,("+rent+"-vl.interest_over) as v.CORPUS,vl.interest_over as v.INTEREST,vl.penalty_over as v.PENALTY," + "'0' as v.CORPUS_ADJUST,'0' as v.PENALTY_ADJUST,'0' as v.ROLL_BACK,O.COIN as v.COIN from O, jbo.app.tenwa.calc.VI_LC_RENT_PLAN vl where O.id = vl.id" @@ -440,14 +440,14 @@ public class CollectAuditInfoCache { } transaction.commit(); BizObject bco = bc.createQuery("id=:id").setParameter("id", bo.getAttribute("id").toString()).getSingleResult(false); - String batch_number = bco.getAttribute("batch_number").toString(); + String batch_number = bco.getAttribute("BATCH_NO").toString(); if (batch_number.length() == 0) { batch_number += "手工付款金额:"+rent; }else{ batch_number += ";手工付款金额:"+rent; } //更新收付状态 - bc.createQuery("update O set O.COLLECT_STATUS=:COLLECT_STATUS ,O.COLLECT_MSG=:COLLECT_MSG,O.BATCH_NUMBER=:BATCH_NUMBER where O.id=:id") + bc.createQuery("update O set O.COLLECT_STATUS=:COLLECT_STATUS ,O.COLLECT_MSG=:COLLECT_MSG,O.BATCH_NO=:BATCH_NUMBER where O.id=:id") .setParameter("COLLECT_STATUS", "收款成功") .setParameter("COLLECT_MSG", map.get("ERR_MSG")) .setParameter("BATCH_NUMBER", batch_number) @@ -474,7 +474,7 @@ public class CollectAuditInfoCache { } BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME); BizObjectManager bc = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); - List bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where ca.customerid=O.customer_id and O.contract_id=ca.contract_id and ca.acc_info = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false); + List bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where ca.customerid=O.customer_id and O.contract_id=ca.contract_id and ca.acc_type = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false); for (BizObject bo : bolist) { Map map = handcraftsingleCollectMoeny(tx,bc,bo,bo.getAttribute("rent").toString(),"1"); i++; @@ -566,7 +566,7 @@ public class CollectAuditInfoCache { } BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME); BizObjectManager bc = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); - List bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.ACCOUNT_PROVINCE,ca.BANK_DEPOSIT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where ca.customerid=O.customer_id and O.contract_id=ca.contract_id and ca.acc_info = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false); + List bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where ca.customerid=O.customer_id and O.contract_id=ca.contract_id and ca.acc_type = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false); if (bolist.size() != 0) { singleBatchCollectMoeny(tx, bolist); } @@ -578,10 +578,19 @@ public class CollectAuditInfoCache { * @return * @throws Exception */ - public String queryBatchCollectStatus(JBOTransaction tx,StringBuffer parms) throws Exception{ + public String queryBatchCollectStatus(JBOTransaction tx) throws Exception{ BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME); BizObjectManager bc = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); - List bolist = bm.createQuery("select distinct O.BATCH_NO,O.BATCH_SN,O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.ACCOUNT_PROVINCE,ca.BANK_DEPOSIT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where ca.customerid=O.customer_id and O.contract_id=ca.contract_id and ca.acc_info = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false); + String[] ids = id.split("@"); + StringBuffer parms = new StringBuffer(); + for (String str : ids) { + if (parms.length()==0) { + parms.append("'"+str+"'"); + }else{ + parms.append(",'"+str+"'"); + } + } + List bolist = bm.createQuery("select distinct O.BATCH_NO,O.BATCH_SN,O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where ca.customerid=O.customer_id and O.contract_id=ca.contract_id and ca.acc_type = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false); for (BizObject bo : bolist) { String query_sn = bo.getAttribute("BATCH_NO").toString(); String sn = bo.getAttribute("BATCH_SN").toString(); @@ -598,8 +607,9 @@ public class CollectAuditInfoCache { int singlerent = mi.multiply(new BigDecimal(100)).intValue(); BigDecimal mj = new BigDecimal(itemdescribe); long divide = mj.multiply(new BigDecimal(100)).longValue(); - int k = (int) Math.floor(singlerent/divide); - int l = (int) Math.ceil(singlerent%divide); + if(divide!=0){ + int k = (int) Math.floor(singlerent/divide); + int l = (int) Math.ceil(singlerent%divide); for (int j = 0; j < k; j++) { m++; } @@ -612,6 +622,7 @@ public class CollectAuditInfoCache { } singleRent[m-1] = String.format("%.2f",bo.getAttribute("rent").getDouble() - k*itemdescribe); break;//如果匹配到,则跳出循环 + } } } String[] snArray = sn.split(","); @@ -682,7 +693,7 @@ public class CollectAuditInfoCache { } } - return "sucess"; + return "success"; } /** @@ -935,6 +946,7 @@ public class CollectAuditInfoCache { mutly = mutly.add(m); String bank_name = bo.getAttribute("BANK_NAME").toString(); List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'bankType' and O.itemdescribe is not null ").getResultList(false); + //数据字典中的itemdescribe字段代表银行单笔限 double itemdescribe = 0; boolean flag = false; for (BizObject code : codelist) { @@ -983,9 +995,6 @@ public class CollectAuditInfoCache { String acc_number = biz.getAttribute("acc_number").toString(); String account = biz.getAttribute("account").toString(); String bank_name = biz.getAttribute("BANK_NAME").toString(); - String bank_code = biz.getAttribute("BANK_DEPOSIT").toString(); - String province = biz.getAttribute("ACCOUNT_PROVINCE").toString(); - List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'bankType' and O.itemdescribe is not null ").getResultList(false); double itemdescribe = 0; boolean flag = false; @@ -1035,11 +1044,9 @@ public class CollectAuditInfoCache { .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); trans.commit(); trans_detail.setSN(sn); - trans_detail.setBANK_CODE(bank_code); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); trans_detail.setACCOUNT_NAME(account); - trans_detail.setPROVINCE(province); trans_detail.setACCOUNT_PROP("0"); trans_detail.setAMOUNT(String.valueOf(singleitem)); trans_detail.setCURRENCY("CNY"); @@ -1079,11 +1086,9 @@ public class CollectAuditInfoCache { .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); trans.commit(); trans_detail.setSN(sn); - trans_detail.setBANK_CODE(bank_code); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); trans_detail.setACCOUNT_NAME(account); - trans_detail.setPROVINCE(province); trans_detail.setACCOUNT_PROP("0"); trans_detail.setAMOUNT(singlerent0); trans_detail.setCURRENCY("CNY"); @@ -1110,11 +1115,9 @@ public class CollectAuditInfoCache { .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); trans.commit(); trans_detail.setSN(sn); - trans_detail.setBANK_CODE(bank_code); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); trans_detail.setACCOUNT_NAME(account); - trans_detail.setPROVINCE(province); trans_detail.setACCOUNT_PROP("0"); trans_detail.setAMOUNT(rent); trans_detail.setCURRENCY("CNY"); @@ -1339,8 +1342,10 @@ public class CollectAuditInfoCache { String currentDateTime = DateAssistant.getTodayNow(); String currenttime=currentDateTime.replaceAll("/", ""); currenttime=currenttime.replaceAll(":", ""); + //发送时间 currenttime=currenttime.replaceAll(" ", ""); //验证银行卡二、三、四要素 + //流水号 String req = System.currentTimeMillis()+""; StringBuffer strbuff = new StringBuffer(); strbuff.append("");