1.经销商代偿(初版)

This commit is contained in:
zhangbb 2019-05-28 10:26:28 +08:00
parent 86da0e3049
commit b8ad28dfa7
3 changed files with 284 additions and 3 deletions

View File

@ -0,0 +1,221 @@
<%@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("ViLcReviewAuditRentPlanList");
// 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","","Button","退回","审核未通过,退回初审","i f(confirm('确定要退回吗?')){viewAndEdit()}","","","","btn_icon_detail",""},
};
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
<script type="text/javascript">
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 distributorIds = getItemValueArray(0, "DISTRIBUTOR_ID");
for(int i=1;i<distributorIds.length;i++){
if(distributorIds[0]!=distributorIds[i]){
alert("请选择同一经销商进行代偿!");
return;
}
}
// var dis = distributorIds.join("@");
//暂时只能选一个经销商,以后如果有多个经销商需求再打开下面代码
/* var distributorArray = [];
for(var i = 0; i < distributorIds.length; i++){
if(distributorArray.indexOf(distributorIds[i]) == -1){
distributorArray.push(distributorIds[i]);
}
}
for(var i=0;i<distributorArray.length;i++){
var DISTRIBUTOR_ID = distributorArray[i];
} */
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 distributor_id=distributorIds[0];
var parm = "id="+ids+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>"+",distributor_id="+distributor_id;
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "afterCollectManageDistributor", 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();
}
}
</script>
<%@ include file="/Frame/resources/include/include_end.jspf"%>

View File

@ -2368,6 +2368,7 @@
<attributes>
<attribute name="id" label="id" type="STRING"/>
<attribute name="contract_id" label="合同编号" type="STRING"/>
<attribute name="DISTRIBUTOR_ID" label="经销商编号" type="STRING"/>
<attribute name="contract_number" label="业务合同编号" type="STRING"/>
<attribute name="customer_id" label="承租人编号" type="STRING"/>
<attribute name="CUSTOMER_NAME" label="承租人" type="STRING"/>

View File

@ -14,6 +14,8 @@ import org.springframework.jdbc.object.SqlCall;
import jbo.app.tenwa.calc.LC_RENT_PLAN;
import jbo.app.tenwa.customer.CUSTOMER_ACCOUNT;
import jbo.app.tenwa.customer.DISTRIBUTOR_INFO;
import jbo.com.tenwa.entity.comm.flow.D_DEPOSITRETURN_INFO;
import jbo.com.tenwa.lease.comm.LB_BUCKLE_LOG;
import jbo.com.tenwa.lease.comm.LB_CLEAR_FILE_RECORD;
import jbo.com.tenwa.lease.comm.LB_INTFACE_FILE_RECORD;
@ -45,6 +47,7 @@ public class CollectAuditInfoCache {
private String inputuserid;
private String inputorgid;
private String clearDate;
private String distributor_id;
//获取存盘文件
public static String getCollectIntface(String id) throws Exception{
@ -215,7 +218,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<BizObject> bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,ca.ACCOUNT_PROVINCE,ca.BANK_DEPOSIT,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<BizObject> bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,ca.ACCOUNT_PROVINCE,ca.BANK_DEPOSIT,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and ca.acc_info = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false);
for (BizObject bo : bolist) {
List<BizObject> codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'bankType' and O.itemdescribe is not null ").getResultList(false);
for (BizObject code : codelist) {
@ -521,6 +524,56 @@ public class CollectAuditInfoCache {
return "总共有 "+i+" 笔租金收款成功\n"+j+" 笔租金收款失败";
}
/**
* 手动收款修改状态,回笼租金,经销商保证金代偿
* @param tx
* @return
* @throws Exception
*/
public String afterCollectManageDistributor(JBOTransaction tx) throws Exception{
int i = 0,j = 0;
String[] ids = id.split("@");
StringBuffer parms = new StringBuffer();
for (String str : ids) {
if (parms.length()==0) {
parms.append("'"+str+"'");
}else{
parms.append(",'"+str+"'");
}
}
BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME);
BizObjectManager bc = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME);
BizObjectManager bd = JBOFactory.getFactory().getManager(D_DEPOSITRETURN_INFO.CLASS_NAME);
BizObjectManager bdi = JBOFactory.getFactory().getManager(DISTRIBUTOR_INFO.CLASS_NAME);
List<BizObject> 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) {
String rent = bo.getAttribute("rent").toString();
Map<String, String> map = handcraftsingleCollectMoeny(tx,bc,bo,rent,"1");
i++;
//更新收付状态
bc.createQuery("update O set O.COLLECT_STATUS=:COLLECT_STATUS ,O.COLLECT_MSG=:COLLECT_MSG where O.id=:id")
.setParameter("COLLECT_STATUS", "经销商代偿")
.setParameter("COLLECT_MSG", "经销商保证金代偿")
.setParameter("id", bo.getAttribute("id").toString()).executeUpdate();
//在这里插入经销商保证金退回表的数据
BizObject bobdi = bdi.createQuery("distributor_no=:distributor_id").setParameter("distributor_id", distributor_id).getSingleResult(false);
BigDecimal sum = new BigDecimal(bobdi.getAttribute("sums").getString());
double account_balance = sum.subtract(new BigDecimal(rent)).doubleValue();
BizObject bod = bd.newObject();
bod.setAttributeValue("DISTRIBUTOR_ID", distributor_id);
bod.setAttributeValue("CAUTION_MONEY", rent);
bod.setAttributeValue("ACCOUNT_BALANCE", account_balance);
bod.setAttributeValue("MONEY_TYPE","bondRepay");
bod.setAttributeValue("INPUTTIME",StringFunction.getTodayNow());
bod.setAttributeValue("INPUTUSERID",inputuserid);
bod.setAttributeValue("INPUTORGID",inputorgid);
bd.saveObject(bod);
//修改经销商信息表里的金额
bdi.createQuery("update O set O.sum="+account_balance+" where O.distributor_no=:distributor_id").setParameter("distributor_id", distributor_id).executeUpdate();
}
return "总共有 "+i+" 笔租金收款成功\n"+j+" 笔租金收款失败";
}
/**
* 实时代收
* @param rent 租金
@ -599,7 +652,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<BizObject> 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 O.contract_id=ca.contract_id and ca.acc_type = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false);
List<BizObject> 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);
}
@ -623,7 +676,7 @@ public class CollectAuditInfoCache {
parms.append(",'"+str+"'");
}
}
List<BizObject> 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 O.contract_id=ca.contract_id and ca.acc_type = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false);
List<BizObject> 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();
@ -1552,6 +1605,12 @@ public class CollectAuditInfoCache {
public void setClearDate(String clearDate) {
this.clearDate = clearDate;
}
public String getDistributor_id() {
return distributor_id;
}
public void setDistributor_id(String distributor_id) {
this.distributor_id = distributor_id;
}
}