生成付款凭证

This commit is contained in:
G 2018-12-07 18:10:40 +08:00
parent 0338a8e145
commit 225e82e1d6
2 changed files with 371 additions and 0 deletions

View File

@ -0,0 +1,220 @@
<%@page import="com.tenwa.comm.util.date.DateAssistant"%>
<%@ page contentType="text/html; charset=GBK"%>
<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><%
/*
Author: undefined 2017-09-20
Content:
History Log:
*/
String plan_date = DateAssistant.getToday();
ASObjectModel doTemp = new ASObjectModel("ViLcReviewAuditRentPlanList2");
// doTemp.setJboWhere(" O.AUDIT_STATE = 'N'");
//默认预查询
//只有计划日期未收款的都可以收款
//doTemp.setJboWhereWhenNoFilter(" and O.PLAN_DATE <= '"+plan_date+"' and O.COLLECT_STATUS in ('未收款','部分收款')");
// doTemp.setJboWhereWhenNoFilter(" and O.COLLECT_STATUS in ('未收款','部分收款') ");
// doTemp.setJboWhere("O.PLAN_DATE <= '"+plan_date+"'");
ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request);
dwTemp.Style="1"; //--设置为Grid风格--
dwTemp.MultiSelect = true; //多选
dwTemp.ReadOnly = "1"; //只读模式
dwTemp.ShowSummary = "1"; //显示小计
dwTemp.setPageSize(pageSize==null?10:Integer.parseInt(pageSize));
dwTemp.genHTMLObjectWindow("");
//0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标CSS层叠样式 10、风格
String sButtons[][] = {
//{"true","All","Button","批量扣款及核销","批量扣款","batchCollect()","","","","btn_icon_add",""},
//{"true","All","Button","实时扣款","实时扣款","timelyCollect()","","","","btn_icon_add",""},
//{"true","All","Button","手工核销","手工扣款","afterCollectManage()","","","","btn_icon_add",""},
//{"true","All","Button","手动刷新","手动刷新","queryBatchCollect()","","","","btn_icon_add",""},
{"true","All","Button","生成租金凭证","生成租金凭证","Manage()","","","","",""},
//{"true","","Button","退回","审核未通过,退回初审","i f(confirm('确定要退回吗?')){viewAndEdit()}","","","","btn_icon_detail",""},
};
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
<script type="text/javascript">
function createVoucher(){
}
window.onload=function(){
initFilter();
}
function initFilter(){
filterValues["myiframe0"][TableFactory.getTableColIndexFromDZ("myiframe0",getColIndex(0,"COLLECT_STATUS"))] = "未收款||部分收款";
setFilterAreaValue(0,"plan_date","<%=plan_date%>");
setFilterAreaOption(0,"plan_date","Equals");
//submitFilterArea();
}
function timelyCollect(){
if(confirm('确实要执行实时扣款操作吗?')){
var sParm = getItemValueArray(0, "id");
var fileSavePath = "<%=CurConfig.getConfigure("InterfaceFileSavePath")%>";
if(typeof(sParm) == "undefined" || sParm.length == 0 )
{
alert("请至少选择一条记录!");
return;
}
var ids = "";
for(var i = 0;i < sParm.length; i++){
if(ids.length == 0){
ids += sParm[i] +"@";
}else{
ids += sParm[i] +"@";
}
}
//扣款前提校验
var result = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "checkRentIsIncome", "id="+ids);
var value = result.split("@");
if (value[0] == "error") {
alert(value[1]);
return;
}
var parm = "id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "barchCollectManage", parm);
alert(res);
location.reload();
}
}
//批量代收
function batchCollect(){
if(confirm('确实要执行代收操作吗?')){
var sParm = getItemValueArray(0,"id");
var fileSavePath = "<%=CurConfig.getConfigure("InterfaceFileSavePath")%>";
if(typeof(sParm) == "undefined" || sParm.length == 0 )
{
alert("请至少选择一条记录!");
return;
}
var ids = "";
for(var i = 0;i < sParm.length; i++){
if(ids.length == 0){
ids += sParm[i] +"@";
}else{
ids += sParm[i] +"@";
}
}
//扣款前提校验
var result = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "checkRentIsIncome", "id="+ids);
var value = result.split("@");
if (value[0] == "error") {
alert(value[1]);
return;
}
var parm = "id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "batchCollectManage", parm);
alert(res);
location.reload();
}
}
function queryBatchCollect(){
if(confirm('确实要执行代收操作吗?')){
var sParm = getItemValueArray(0, "id");
var fileSavePath = "<%=CurConfig.getConfigure("InterfaceFileSavePath")%>";
if(typeof(sParm) == "undefined" || sParm.length == 0 )
{
alert("请至少选择一条记录!");
return;
}
var ids = "";
for(var i = 0;i < sParm.length; i++){
if(ids.length == 0){
ids += sParm[i] +"@";
}else{
ids += sParm[i] +"@";
}
}
var parm = "id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "queryBatchCollectStatus",parm);
console.log(res);
// reloadSelf();
location.reload();
}
}
function afterCollectManage(){
if(confirm('确实要执行手工扣款操作吗?')){
var sParm = getItemValueArray(0, "id");
if(typeof(sParm) == "undefined" || sParm.length == 0 )
{
alert("请至少选择一条记录!");
return;
}
var ids = "";
for(var i = 0;i < sParm.length; i++){
if(ids.length == 0){
ids += sParm[i] +"@";
}else{
ids += sParm[i] +"@";
}
}
//扣款前提校验
var result = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "checkRentIsIncome", "id="+ids);
var value = result.split("@");
if (value[0] == "error") {
alert(value[1]);
return;
}
var parm = "id="+ids+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "afterCollectManage", parm);
alert(res);
location.reload();
}
}
function viewAndEdit(){
var sParm = getItemValueArray(0, "id");
if(typeof(sParm) == "undefined" || sParm.length == 0 )
{
alert("请至少选择一条记录!");
return;
}
var ids = "";
for(var i = 0;i < sParm.length; i++){
if(ids.length == 0){
ids += sParm[i] +"@";
}else{
ids += sParm[i] +"@";
}
}
var result = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "rebackCollectAudit", "id="+ids);
var value = result.split("@");
if (value[0] == "error") {
alert(value[1]);
return;
}else{
alert("退回初审成功!");
location.reload();
}
}
function Manage(){
var sParm = getItemValueArray(0, "id");
if(typeof(sParm) == "undefined" || sParm.length == 0 )
{
alert("请至少选择一条记录!");
return;
}
var contract_number = getItemValue(0,getRow(0),'contract_number');
var res = RunJavaMethodTrans("com.tenwa.lease.app.quartzmession.Checkfordeduction", "execute", "contract_number="+contract_number);
location.reload();
}
</script>
<%@ include file="/Frame/resources/include/include_end.jspf"%>

View File

@ -0,0 +1,151 @@
package com.tenwa.lease.app.quartzmession;
import java.util.HashMap;
import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOTransaction;
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;
public class Checkfordeduction {
private String contract_number;
private String sys_date;
private String[] voucher_nos={"PZ2018072100000024"};
public String getContract_number() {
return contract_number;
}
public void setContract_number(String contract_number) {
this.contract_number = contract_number;
}
public String getSys_date() {
return sys_date;
}
public void setSys_date(String sys_date) {
this.sys_date = sys_date;
}
/*//回款-收到的租金 复制--回款-收到的租金
"PZ2018072100000024" "PZ2018080400000081"
//回款-收到的逾期利息 复制--回款-收到的逾期利息
"PZ2018072100000025" "PZ2018080400000082"*/
/***
* @param VOUCHERNO
* @throws Exception
*/
public void CreateVoucher(String VOUCHERNO) throws Exception{
Transaction Sqlca =null;
String sql_where="";
String[] contract_numbers = contract_number.split("@");
StringBuffer parms = new StringBuffer();
for (String str : contract_numbers) {
if (parms.length()==0) {
parms.append("'"+str+"'");
}else{
parms.append(",'"+str+"'");
}
}
try{
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
Map<String,String> map=new HashMap<String,String>();
map.put("VOUCHER_NO", VOUCHERNO);
BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
if(vouch!=null){
//收到的租金--网银-未逾期及逾期未过月的--(汽车)
if("PZ2018072100000024".equals(VOUCHERNO)){
sql_where="INSERT INTO voucher_v8 (id,evidence_message,periodyear,f1,f2,f3,f5,f6,f7,f8,f12,f15,f49,f50,f51,f52,f59,f60,f61,f62,f65,f73,f75,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67) SELECT * FROM ( SELECT REPLACE (UUID(), '-', '') id, '凭证输出' evidence_message, SUBSTR( DATE_FORMAT(SYSDATE(), '%Y%m%d'), 1, 4 ) periodyear, DATE_FORMAT(SYSDATE(), '%Y/%m/%d') f1, lv.SUBJECTS_CODE AS f2, lvri.voucher_f3, '收到的租金', lv.LOAN_SUBJECT, CASE WHEN lv.sort_number = '1' THEN lvri.rent WHEN LV.sort_number = '2' THEN LVRI.INTEREST ELSE 0.00 END f7, CASE WHEN lv.sort_number = '3' THEN lvri.corpus WHEN lv.sort_number = '4' THEN lvri.interest WHEN lv.sort_number = '5' THEN ROUND( lvri.interest / getTax ( lci.leas_form, '租息', lcct.start_date ), 2 ) WHEN lv.sort_number = '6' THEN ( lvri.interest - ROUND( lvri.interest / getTax ( lci.leas_form, '租息', lcct.start_date ), 2 )) ELSE 0.00 END f8, 'IT管理员', DATE_FORMAT(SYSDATE(), '%Y/%m/%d'), lv.OWNED_COMPANY, lv.OWNED_COMPANY AS OWNED_COMPANY1, SUBSTR( DATE_FORMAT(SYSDATE(), '%Y%m%d'), 1, 4 ), SUBSTR( DATE_FORMAT(SYSDATE(), '%Y%m%d'), 5, 2 ), lv.sort_number, lci.contract_number, CASE WHEN lv.sort_number = '1' THEN '业务系统待查客户' ELSE lvri.cust_name END AS cust_name, lv.loan_subject AS loan_subject1, CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' ELSE lvri.cust_id END, CASE WHEN lv.sort_number = '5' THEN '0604' ELSE '' END, '', '已完整', NOW(3), '0', lv.modular_number, CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END, 'admin', lvri.income_id, lci.leas_form FROM lv_rent_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN ( SELECT lvc.PROJ_TYPE, lvl.id, lvl.LOAN_DIRECTION, lvc.OWNED_COMPANY, lvl.sort_number, lvl.loan_subject, lvc.modular_number, lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2018072100000024')) lv ON lv.proj_type = lci.leas_form WHERE LCI.BUSINESSTYPE = '1' AND lvri.income_id NOT IN ( SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金%' AND f58 IS NOT NULL ) AND lvri.rent > 0 AND lvri.EBANK_NUMBER IS NOT NULL AND lvri.EBANK_NUMBER <> '' ORDER BY lvri.voucher_f3 ) t WHERE t.contract_number =("+parms.toString()+")";
}
SqlObject asql = new SqlObject(sql_where);
Sqlca.executeSQL(asql);
Sqlca.commit();
}}catch(Exception e){
Sqlca.rollback();
e.printStackTrace();
}finally{
if(Sqlca!=null){
Sqlca.disConnect();
Sqlca=null;
}
}
}
/**
*f16存凭证编号f17寸凭证关键字 关键字的配发 表的别名 .过滤关键字段
*f17也会存进表中
*查询sql 用逗号关联的方法查询乘积条数 where 1=1
*/
public void initLVRentIncome() throws Exception{
Transaction Sqlca =null;
try{
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
// String sql="INSERT INTO lv_rent_income (SELECT REPLACE(UUID(),'-',''),CONCAT('k',getSerialNumber ()),cif.customer_num,cif.customername,lci.id,lci.contract_number,lri.ID,lri.HIRE_DATE ,lri.RENT ,lri.CORPUS,lri.INTEREST,0.00,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID FROM lc_rent_income lri LEFT JOIN lb_contract_info lci ON lci.id=lri.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id=lci.id LEFT JOIN customer_info cif ON cif.customerid=lul.customer_id WHERE lri.rent>0 AND lri.id NOT IN (SELECT income_id FROM lv_rent_income))";
// 未逾期及逾期未过月
String sql="INSERT INTO lv_rent_income (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ()),cif.customer_num,cif.customername,lci.id,lci.contract_number,lri.ID,lri.HIRE_DATE,lri.RENT,lri.CORPUS,lri.INTEREST,0.00,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID FROM lc_rent_income lri LEFT JOIN lb_contract_info lci ON lci.id = lri.contract_id LEFT JOIN lc_rent_plan lrp ON lrp.contract_id=lci.id AND lrp.plan_list=lri.plan_list LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id WHERE lri.rent > 0 AND lri.id NOT IN (SELECT income_id FROM lv_rent_income) AND LEFT(lri.hire_date,7)<=LEFT(lrp.plan_date,7))";
// 逾期过月
String sq1="INSERT INTO lv_rent_income2 (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ()),cif.customer_num,cif.customername,lci.id,lci.contract_number,lri.ID,lri.HIRE_DATE,lri.RENT,lri.CORPUS,lri.INTEREST,0.00,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID FROM lc_rent_income lri LEFT JOIN lb_contract_info lci ON lci.id = lri.contract_id LEFT JOIN lc_rent_plan lrp ON lrp.contract_id=lci.id AND lrp.plan_list=lri.plan_list LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id WHERE lri.rent > 0 AND lri.id NOT IN (SELECT income_id FROM lv_rent_income) AND LEFT(lri.hire_date,7)>LEFT(lrp.plan_date,7))";
String sql1="INSERT INTO lv_penalty_income (SELECT REPLACE(UUID(),'-',''),CONCAT('k',getSerialNumber ()),cif.customer_num,cif.customername,lci.id,lci.contract_number,lri.ID,lri.HIRE_DATE ,0.00,0.00,0.00,lri.PENALTY,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID FROM lc_rent_income lri LEFT JOIN lb_contract_info lci ON lci.id=lri.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id=lci.id LEFT JOIN customer_info cif ON cif.customerid=lul.customer_id WHERE lri.penalty>0 AND lri.id NOT IN (SELECT income_id FROM lv_penalty_income))";
String sql2="INSERT INTO lv_discount_income (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ()),cif.customer_num,cif.customername,lci.id,lci.contract_number,ld.ID,DATE_FORMAT(ld.inputtime, '%Y/%m/%d'),ld.discount_money,0.00,0.00,0.00,oac.acc_bank,oac.acc_name,oac.acc_number FROM lb_discount ld LEFT JOIN lb_contract_info lci ON lci.contract_no = ld.contract_no LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT acc_bank,acc_name,acc_number FROM OWN_ACCOUNT WHERE account_type = 'in_account' AND state_ = '0010' LIMIT 0, 1) oac ON 1 = 1 WHERE ld.discount_money > 0 AND ld.id NOT IN (SELECT income_id FROM lv_discount_income)) ";
SqlObject as1 = new SqlObject(sq1);
SqlObject asql = new SqlObject(sql);
SqlObject asql1 = new SqlObject(sql1);
SqlObject asql2 = new SqlObject(sql2);
Sqlca.executeSQL(as1);
Sqlca.executeSQL(asql);
Sqlca.executeSQL(asql1);
Sqlca.executeSQL(asql2);
Sqlca.commit();
}catch(Exception e){
Sqlca.rollback();
e.printStackTrace();
}finally{
if(Sqlca!=null){
Sqlca.disConnect();
Sqlca=null;
}
}
}
public void execute(JBOTransaction tx){
try{
initLVRentIncome();
for(String voucherno:voucher_nos){
CreateVoucher(voucherno);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
/*@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
InsertVoucherRentIncome ivri=new InsertVoucherRentIncome();
ivri.execute();
CreateVoucherInsuranceSettlement cvis=new CreateVoucherInsuranceSettlement();
cvis.CreateVoucher("PZ2018072100000024");
}*/