package com.sp2p.action.admin;
import java.io.IOException;
import java.net.URLDecoder;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.shove.Convert;
import com.shove.config.ChinaPnrConfig;
import com.shove.data.DataException;
import com.shove.util.SqlInfusion;
import com.shove.web.util.ExcelUtils;
import com.shove.web.util.JSONUtils;
import com.shove.web.util.ServletUtils;
import com.sp2p.action.front.BaseFrontAction;
import com.sp2p.constants.IConstants;
import com.sp2p.entity.Admin;
import com.sp2p.service.SelectedService;
import com.sp2p.service.admin.AfterCreditManageService;
/**
* @ClassName: AfterCreditManageAction.java
* @Author: gang.lv
* @Date: 2013-3-19 上午10:22:02
* @Copyright: 2013 www.emis.com Inc. All rights reserved.
* @Version: V1.0.1
* @Descrb: 贷后管理控制层
*/
public class AfterCreditManageAction extends BaseFrontAction {
public static Log log = LogFactory.getLog(AfterCreditManageAction.class);
private static final long serialVersionUID = 1L;
private AfterCreditManageService afterCreditManageService;
private SelectedService selectedService;
private List<Map<String, Object>> borrowDeadlineList;
private List<Map<String, Object>> userGroupList;
/**
* @MethodName: lastRepayMentInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-19 上午10:26:42
* @Return:
* @Descb: 最近3天还款记录初始化
* @Throws:
*/
public String lastRepayMentInit() {
return "success";
}
/**
* @MethodName: forPaymentInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-20 上午10:13:00
* @Return:
* @Descb: 待收款记录初始化
* @Throws:
*/
public String forPaymentInit() {
return "success";
}
/**
* @MethodName: forPaymentInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-20 上午10:13:00
* @Return:
* @Descb: 待收款记录初始化
* @Throws:
*/
public String forPaymentDueInInit() {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, 7);// 得到前7
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime = formatter.format(c.getTime());
String strStart = mDateTime.substring(0, 16);//
request().setAttribute("strStart", strStart);
return "success";
}
/**
* @MethodName: forPaymentTotalInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-20 下午10:06:48
* @Return:
* @Descb: 代收款统计初始化
* @Throws:
*/
public String forPaymentTotalInit() {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, 7);// 得到前7
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime = formatter.format(c.getTime());
String strStart = mDateTime.substring(0, 16);//
request().setAttribute("strStart", strStart);
return "success";
}
/**
* @MethodName: lateRepayInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-20 上午10:13:22
* @Return:
* @Descb: 逾期的还款初始化
* @Throws:
*/
public String lateRepayInit() {
return "success";
}
/**
* @MethodName: overduePaymentInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-20 上午10:13:58
* @Return:
* @Descb: 逾期垫付初始化
* @Throws:
*/
public String overduePaymentInit() {
return "success";
}
/**
* 合和年 回购初始化
*/
public String backBuyInit() {
return "success";
}
/**
* @MethodName: hasRepayInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-20 上午10:14:29
* @Return:
* @Descb: 已还款初始化
* @Throws:
*/
public String hasRepayInit() {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7);// 得到前7
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime = formatter.format(c.getTime());
String strStart = mDateTime.substring(0, 16);//
request().setAttribute("strStart", strStart);
request().setAttribute("endStart", formatter.format(new Date()));
return "success";
}
/**
* @MethodName: lastRepayMentList
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-19 上午10:26:54
* @Return:
* @Descb: 最近3天还款记录
* @Throws:
*/
@SuppressWarnings("unchecked")
public String lastRepayMentList() throws SQLException, DataException {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage")));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String userName = SqlInfusion.FilteSqlInfusion(paramMap.get("userName") == null ? "" : paramMap.get("userName"));
String borrowWay = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay"));
String realName = SqlInfusion.FilteSqlInfusion(paramMap.get("realName") == null ? "" : paramMap.get("realName"));
String title = SqlInfusion.FilteSqlInfusion(paramMap.get("title") == null ? "" : paramMap.get("title"));
String status = SqlInfusion.FilteSqlInfusion(paramMap.get("status") == null ? "" : paramMap.get("status"));
String type = SqlInfusion.FilteSqlInfusion(paramMap.get("type") == null ? "" : paramMap.get("type"));
int statusInt = Convert.strToInt(status, -1);
int borrowWayInt = Convert.strToInt(borrowWay, -1);
afterCreditManageService.queryLastRepayMentByCondition(userName, borrowWayInt, realName, title, statusInt, type, pageBean);
// 最近借款统计总额
Map<String, String> repaymentMap = afterCreditManageService.queryRepaymentAmount(userName, borrowWayInt, realName, title, statusInt, type);
request().setAttribute("repaymentMap", repaymentMap);
// 当前页金额统计
double currentAmount = 0;
List<Map<String, Object>> mapList = pageBean.getPage();
if (mapList != null) {
for (Map<String, Object> map : mapList) {
currentAmount = currentAmount + Convert.strToDouble(map.get("totalSum") + "", 0);
}
}
DecimalFormat fmt = new DecimalFormat("0.##");
request().setAttribute("currentAmount", fmt.format(currentAmount));
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/**
* 导出最近3天还款记录excel
*
* @return
*/
@SuppressWarnings("unchecked")
public String exportlastRepayMent() {
pageBean.pageNum = 1;
pageBean.setPageSize(100000);
String type = request().getParameter("type");
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
// 用户名
String userName = SqlInfusion.FilteSqlInfusion(request().getParameter("userName") == null ? "" : request().getParameter("userName"));
userName = URLDecoder.decode(userName, "UTF-8");// 中文乱码转换
// 真实姓名
String realName = SqlInfusion.FilteSqlInfusion(request().getParameter("realName") == null ? "" : request().getParameter("realName"));
realName = URLDecoder.decode(realName, "UTF-8");// 中文乱码转换
// 借款标题
String titles = SqlInfusion.FilteSqlInfusion(request().getParameter("titles") == null ? "" : request().getParameter("titles"));
titles = URLDecoder.decode(titles, "UTF-8");
// 借款类型
int borrowWay = Convert.strToInt(request().getParameter("borrowWay"), -1);
// 还款状态
int status = Convert.strToInt(SqlInfusion.FilteSqlInfusion(request().getParameter("status")), -1);
// 待还款详情
afterCreditManageService.queryLastRepayMentByCondition(userName, borrowWay, realName, titles, status, type, pageBean);
if (pageBean.getPage() == null) {
getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>");
return null;
}
if (pageBean.getPage().size() > IConstants.EXCEL_MAX) {
getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>");
return null;
}
List<Map<String, Object>> list = pageBean.getPage();
if (list != null) {
for (Map<String, Object> map : list) {
if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_NET_VALUE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_NET_VALUE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_SECONDS)) {
map.put("borrowWay", IConstants.BORROW_TYPE_SECONDS_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_GENERAL)) {
map.put("borrowWay", IConstants.BORROW_TYPE_GENERAL_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_FIELD_VISIT)) {
map.put("borrowWay", IConstants.BORROW_TYPE_FIELD_VISIT_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_FLOW)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_FLOW_STR);
}
if (map.get("repayStatus").toString().equals("1")) {
map.put("repayStatus", "未偿还");
} else if (map.get("repayStatus").toString().equals("2")) {
map.put("repayStatus", "已偿还");
} else if (map.get("repayStatus").toString().equals("3")) {
map.put("repayStatus", "偿还中");
}
if (map.get("servier") == null || map.get("servier") == "") {
map.put("servier", "未分配");
}
}
}
HSSFWorkbook wb = null;
if (type.equals("") || type == null) {
wb = ExcelUtils
.exportExcel("今天到期还款", pageBean.getPage(), new String[] { "ID", "用户名", "真是姓名", "借款标题", "期数", "类型", "到期时间", "应还金额(¥)", "还款时间", "跟踪客服", "是否已还款" },
new String[] { "id", "username", "realName", "borrowTitle", "repayPeriod", "borrowWay", "repayDate", "totalSum", "realRepayDate", "servier",
"repayStatus" });
// 添加操作日志
operationLogService.addOperationLog("v_t_repayment_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出今天到期还款", 2);
} else if (type.equals("1")) {
wb = ExcelUtils
.exportExcel("明天到期还款", pageBean.getPage(), new String[] { "ID", "用户名", "真是姓名", "借款标题", "期数", "类型", "到期时间", "应还金额(¥)", "还款时间", "跟踪客服", "是否已还款" },
new String[] { "id", "username", "realName", "borrowTitle", "repayPeriod", "borrowWay", "repayDate", "totalSum", "realRepayDate", "servier",
"repayStatus" });
// 添加操作日志
operationLogService.addOperationLog("v_t_repayment_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出明天到期还款", 2);
} else if (type.equals("2")) {
wb = ExcelUtils
.exportExcel("后天到期还款", pageBean.getPage(), new String[] { "ID", "用户名", "真是姓名", "借款标题", "期数", "类型", "到期时间", "应还金额(¥)", "还款时间", "跟踪客服", "是否已还款" },
new String[] { "id", "username", "realName", "borrowTitle", "repayPeriod", "borrowWay", "repayDate", "totalSum", "realRepayDate", "servier",
"repayStatus" });
// 添加操作日志
operationLogService.addOperationLog("v_t_repayment_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出后天到期还款", 2);
}
this.export(wb, new Date().getTime() + ".xls");
} catch (SQLException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
// 应收款款详情
@SuppressWarnings("unchecked")
public String forPaymentList() throws SQLException, DataException {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage")));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String investor = SqlInfusion.FilteSqlInfusion(paramMap.get("investor") == null ? "" : paramMap.get("investor"));
String timeStart = SqlInfusion.FilteSqlInfusion(paramMap.get("timeStart") == null ? "" : paramMap.get("timeStart"));
String timeEnd = SqlInfusion.FilteSqlInfusion(paramMap.get("timeEnd") == null ? "" : paramMap.get("timeEnd"));
String title = SqlInfusion.FilteSqlInfusion(paramMap.get("title") == null ? "" : paramMap.get("title"));
String borrowWay = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay"));
int borrowWayInt = Convert.strToInt(borrowWay, -1);
String group = paramMap.get("group") == null ? "" : paramMap.get("group");
int groupInt = Convert.strToInt(group, -1);
// ----------add by houli 判断是否反选
boolean inverse = paramMap.get("inverse") == null ? false : true;
// --------------
afterCreditManageService.queryForPaymentByCondition(investor, timeStart, timeEnd, title, borrowWayInt, groupInt, pageBean, inverse);
// 应收款款统计总额
Map<String, String> repaymentMap = afterCreditManageService.queryForPaymentAmount(investor, timeStart, timeEnd, title, borrowWayInt, groupInt, inverse);
request().setAttribute("repaymentMap", repaymentMap);
// 统计当前页应收款
double receivableAmount = 0;
List<Map<String, Object>> payList = pageBean.getPage();
if (payList != null) {
for (Map<String, Object> map : payList) {
receivableAmount = receivableAmount + Convert.strToDouble(map.get("forTotalSum") + "", 0);
}
}
DecimalFormat fmt = new DecimalFormat("0.##");
request().setAttribute("receivableAmount", fmt.format(receivableAmount));
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/**
* 导出应收款详情
*
* @return
*/
@SuppressWarnings("unchecked")
public String exportforPayment() {
pageBean.pageNum = 1;
pageBean.setPageSize(100000);
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
// ---------add by houli 看是否是反选
boolean inverse = request().getParameter("inverse").equals("checked") ? true : false;
// --------
int group = Convert.strToInt(request().getParameter("groupId"), -1);
int borrowWay = Convert.strToInt(request().getParameter("borrowWayid"), -1);
String investor = SqlInfusion.FilteSqlInfusion(request().getParameter("investor") == null ? "" : request().getParameter("investor"));
String timeStart = SqlInfusion.FilteSqlInfusion(request().getParameter("timeStart") == null ? "" : request().getParameter("timeStart"));
String timeEnd = SqlInfusion.FilteSqlInfusion(request().getParameter("timeEnd") == null ? "" : request().getParameter("timeEnd"));
String title = SqlInfusion.FilteSqlInfusion(request().getParameter("titles") == null ? "" : request().getParameter("titles"));
// 转换中文乱码
title = URLDecoder.decode(title, "UTF-8");
investor = URLDecoder.decode(investor, "UTF-8");
timeStart = URLDecoder.decode(timeStart, "UTF-8");
timeEnd = URLDecoder.decode(timeEnd, "UTF-8");
// --------
// 待还款详情
afterCreditManageService.queryForPaymentByCondition(investor, timeStart, timeEnd, title, borrowWay, group, pageBean, inverse);
if (pageBean.getPage() == null) {
getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>");
return null;
}
if (pageBean.getPage().size() > IConstants.EXCEL_MAX) {
getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>");
return null;
}
List<Map<String, Object>> list = pageBean.getPage();
if (list == null) {
list = new ArrayList<Map<String, Object>>();
}
for (Map<String, Object> map : list) {
if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_NET_VALUE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_NET_VALUE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_SECONDS)) {
map.put("borrowWay", IConstants.BORROW_TYPE_SECONDS_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_GENERAL)) {
map.put("borrowWay", IConstants.BORROW_TYPE_GENERAL_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_FIELD_VISIT)) {
map.put("borrowWay", IConstants.BORROW_TYPE_FIELD_VISIT_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_FLOW)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_FLOW_STR);
}
if (map.get("groupName") == null || map.get("groupName") == "") {
map.put("groupName", "未分配");
}
if (map.get("realName") == null || map.get("realName") == "") {
map.put("realName", "未填写");
}
}
HSSFWorkbook wb = ExcelUtils.exportExcel("应收款详情", pageBean.getPage(), new String[] { "投资人", "姓名",// modify
// by
// houli
// 添加用户组
"用户组", "投资时间", "还款期数/总期数", "金额" }, new String[] { "investor", "realName", "groupName", "investTime", "repayPeriod", "forTotalSum" });
this.export(wb, new Date().getTime() + ".xls");
operationLogService.addOperationLog("v_t_forpayment_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出应收款列表", 2);
} catch (SQLException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
// 待还款详情
@SuppressWarnings("unchecked")
public String forPaymentDueInList() throws SQLException, DataException {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage")));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String investor = SqlInfusion.FilteSqlInfusion(paramMap.get("investor") == null ? "" : paramMap.get("investor"));
String timeStart = SqlInfusion.FilteSqlInfusion(paramMap.get("timeStart") == null ? "" : paramMap.get("timeStart"));
String timeEnd = SqlInfusion.FilteSqlInfusion(paramMap.get("timeEnd") == null ? "" : paramMap.get("timeEnd"));
String title = SqlInfusion.FilteSqlInfusion(paramMap.get("title") == null ? "" : paramMap.get("title"));
String borrowWay = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay"));
int borrowWayInt = Convert.strToInt(borrowWay, -1);
String group = SqlInfusion.FilteSqlInfusion(paramMap.get("group") == null ? "" : paramMap.get("group"));
int groupInt = Convert.strToInt(group, -1);
// ----------add by houli 判断是否反选
boolean inverse = paramMap.get("inverse") == null ? false : true;
// --------------
afterCreditManageService.queryForPaymentByDueIn(investor, timeStart, timeEnd, title, borrowWayInt, groupInt, pageBean, inverse);
// 待收款款统计总额
Map<String, String> repaymentMap = afterCreditManageService.queryForPaymentAmount(investor, timeStart, timeEnd, title, borrowWayInt, groupInt, inverse);
request().setAttribute("repaymentMap", repaymentMap);
// 得到当前页待收款金额统计
double repayAmount = 0;
List<Map<String, Object>> repayList = pageBean.getPage();
if (repayList != null) {
for (Map<String, Object> map : repayList) {
repayAmount = repayAmount + Convert.strToDouble(map.get("forTotalSum") + "", 0);
}
}
DecimalFormat fmt = new DecimalFormat("0.##");
request().setAttribute("repayAmount", fmt.format(repayAmount));
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/**
* 导出待还款详情
*
* @return
*/
@SuppressWarnings("unchecked")
public String exportforPaymentDueIn() {
pageBean.pageNum = 1;
pageBean.setPageSize(100000);
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
// ---------add by houli 看是否是反选
boolean inverse = request().getParameter("inverse").equals("checked") ? true : false;
// --------
int group = Convert.strToInt(request().getParameter("groupId"), -1);
int borrowWay = Convert.strToInt(request().getParameter("borrowWayid"), -1);
String investor = SqlInfusion.FilteSqlInfusion(request().getParameter("investor") == null ? "" : request().getParameter("investor"));
String timeStart = SqlInfusion.FilteSqlInfusion(request().getParameter("timeStart") == null ? "" : request().getParameter("timeStart"));
String timeEnd = SqlInfusion.FilteSqlInfusion(request().getParameter("timeEnd") == null ? "" : request().getParameter("timeEnd"));
String title = SqlInfusion.FilteSqlInfusion(request().getParameter("titles") == null ? "" : request().getParameter("titles"));
// 转换中文乱码
title = URLDecoder.decode(title, "UTF-8");
investor = URLDecoder.decode(investor, "UTF-8");
timeStart = URLDecoder.decode(timeStart, "UTF-8");
timeEnd = URLDecoder.decode(timeEnd, "UTF-8");
// --------
// 待还款详情
afterCreditManageService.queryForPaymentByDueIn(investor, timeStart, timeEnd, title, borrowWay, group, pageBean, inverse);
if (pageBean.getPage() == null) {
getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>");
return null;
}
if (pageBean.getPage().size() > IConstants.EXCEL_MAX) {
getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>");
return null;
}
List<Map<String, Object>> list = pageBean.getPage();
if (list == null) {
list = new ArrayList<Map<String, Object>>();
}
for (Map<String, Object> map : list) {
if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_NET_VALUE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_NET_VALUE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_SECONDS)) {
map.put("borrowWay", IConstants.BORROW_TYPE_SECONDS_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_GENERAL)) {
map.put("borrowWay", IConstants.BORROW_TYPE_GENERAL_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_FIELD_VISIT)) {
map.put("borrowWay", IConstants.BORROW_TYPE_FIELD_VISIT_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_FLOW)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_FLOW_STR);
}
if (map.get("groupName") == null || map.get("groupName") == "") {
map.put("groupName", "未分配");
}
if (Convert.strToLong(map.get("isDayThe") + "", -1L) == 1) {
map.put("isDayThe", "否");
} else {
map.put("isDayThe", "是");
}
if (map.get("realNames") == null || map.get("realNames") == "") {
map.put("realNames", "未填写");
}
}
HSSFWorkbook wb = ExcelUtils.exportExcel("待还款列表", pageBean.getPage(), new String[] { "借款人", "姓名",// modify
// by
// houli
// 添加用户组
"借款标题", "用户组", "借款时间", "标旳类型", "是否天标 ", "期数/总期数 ", "应还时间 ", "应还金额 " }, new String[] { "username", "realNames", "borrowTitle", "groupName", "publishTime",
"borrowWay", "isDayThe", "repayPeriod", "repayDate", "forTotalSum" });
this.export(wb, new Date().getTime() + ".xls");
operationLogService.addOperationLog("v_t_deuin_list", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出待还款列表", 2);
} catch (SQLException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* @MethodName: forPaymentTotalList
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-20 下午10:07:25
* @Return:
* @Descb: 待收款统计记录
* @Throws:
*/
@SuppressWarnings("unchecked")
public String forPaymentTotalList() throws SQLException, DataException {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage")));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String investor = SqlInfusion.FilteSqlInfusion(paramMap.get("investor") == null ? "" : paramMap.get("investor"));
String timeStart = SqlInfusion.FilteSqlInfusion(paramMap.get("timeStart") == null ? "" : paramMap.get("timeStart"));
String timeEnd = SqlInfusion.FilteSqlInfusion(paramMap.get("timeEnd") == null ? "" : paramMap.get("timeEnd"));
String deadline = SqlInfusion.FilteSqlInfusion(paramMap.get("deadline") == null ? "" : paramMap.get("deadline"));
int deadlineWayInt = Convert.strToInt(deadline, -1);
String group = SqlInfusion.FilteSqlInfusion(paramMap.get("group") == null ? "" : paramMap.get("group"));
int groupInt = Convert.strToInt(group, -1);
// -------add by houli 添加反选条件
boolean inverse = paramMap.get("inverse") == null ? false : true;
//
afterCreditManageService.queryForPaymentTotalByCondition(investor, timeStart, timeEnd, deadlineWayInt, groupInt, pageBean, inverse);
// 待收款款总计统计总额
Map<String, String> repaymentMap = afterCreditManageService.queryForPaymentTotalAmount(investor, timeStart, timeEnd, deadlineWayInt, groupInt, inverse);
request().setAttribute("repaymentMap", repaymentMap);
// 得到当前页待收款统计
double payAmount = 0;
List<Map<String, Object>> payList = pageBean.getPage();
if (payList != null) {
for (Map<String, Object> map : payList) {
payAmount = payAmount + Convert.strToDouble(map.get("forTotalSum") + "", 0);
}
}
DecimalFormat fmt = new DecimalFormat("0.##");
request().setAttribute("payAmount", fmt.format(payAmount));
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/**
* 导出待收款总计
*
* @return
*/
@SuppressWarnings("unchecked")
public String exportPaymentTotal() {
pageBean.pageNum = 1;
pageBean.setPageSize(100000);
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
// 查看是否是反转
boolean inverse = request().getParameter("inverse").equals("checked") ? true : false;
// --------
int group = Convert.strToInt(request().getParameter("groupId"), -1);
String investor = SqlInfusion.FilteSqlInfusion(request().getParameter("investor") == null ? "" : request().getParameter("investor"));
String timeStart = SqlInfusion.FilteSqlInfusion(request().getParameter("timeStart") == null ? "" : request().getParameter("timeStart"));
String timeEnd = SqlInfusion.FilteSqlInfusion(request().getParameter("timeEnd") == null ? "" : request().getParameter("timeEnd"));
int deadline = Convert.strToInt(request().getParameter("deadline"), -1);
investor = URLDecoder.decode(investor, "UTF-8");// 中文乱码转换
timeStart = URLDecoder.decode(timeStart, "UTF-8");// 中文乱码转换
timeEnd = URLDecoder.decode(timeEnd, "UTF-8");// 中文乱码转换
// 中文乱码转换
investor = URLDecoder.decode(investor, "UTF-8");
// 待还款详情
afterCreditManageService.queryForPaymentTotalByCondition(investor, timeStart, timeEnd, deadline, group, pageBean, inverse);
if (pageBean.getPage() == null) {
getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>");
return null;
}
if (pageBean.getPage().size() > IConstants.EXCEL_MAX) {
getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>");
return null;
}
List<Map<String, Object>> list = pageBean.getPage();
if (list == null) {
list = new ArrayList<Map<String, Object>>();
}
for (Map<String, Object> map : list) {
if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_NET_VALUE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_NET_VALUE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_SECONDS)) {
map.put("borrowWay", IConstants.BORROW_TYPE_SECONDS_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_GENERAL)) {
map.put("borrowWay", IConstants.BORROW_TYPE_GENERAL_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_FIELD_VISIT)) {
map.put("borrowWay", IConstants.BORROW_TYPE_FIELD_VISIT_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_FLOW)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_FLOW_STR);
}
if (map.get("groupName") == null || map.get("groupName") == "") {
map.put("groupName", "未分配");
}
if (Convert.strToLong(map.get("isDayThe") + "", -1L) == 1) {
map.put("isDayThe", "否");
} else {
map.put("isDayThe", "是");
}
}
// --------add by houli 添加 "用户组"
HSSFWorkbook wb = ExcelUtils.exportExcel("待收款详情", pageBean.getPage(), new String[] { "投资人", "姓名", "用户组", "投资金额", "投资占比", "借款时间", "标旳总金额 ", "标旳类型 ", "是否天标", "期数/总期数",
"应收时间", "应收金额 " }, new String[] { "investor", "realName", "groupName", "investAmount", "scale", "publishTime", "borrowAmount", "borrowWay", "isDayThe",
"repayPeriod", "repayDate", "forTotalSum" });
this.export(wb, new Date().getTime() + ".xls");
// 添加操作日志
operationLogService.addOperationLog("v_t_forpayment_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出待收款总计列表", 2);
} catch (SQLException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* @MethodName: lateRepayList
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-21 下午05:02:43
* @Return:
* @Descb: 逾期还款记录
* @Throws:
*/
public String lateRepayList() throws SQLException, DataException {
String pageNum = (String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage"));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String userName = SqlInfusion.FilteSqlInfusion(paramMap.get("userName") == null ? "" : paramMap.get("userName"));
String borrowWay = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay"));
String status = SqlInfusion.FilteSqlInfusion(paramMap.get("status") == null ? "" : paramMap.get("status"));
int statusInt = Convert.strToInt(status, -1);
int borrowWayInt = Convert.strToInt(borrowWay, -1);
afterCreditManageService.queryLateRepayByCondition(userName, borrowWayInt, statusInt, pageBean);
/*
* 逾期的借款统计总额 Map<String, String> lateRepayMap =
* afterCreditManageService.queryLateRepayAmount(userName, borrowWayInt,
* statusInt); request().setAttribute("lateRepayMap", lateRepayMap); //
* 得到当前页逾期借款金额 double lateAmount = 0; double lateFI = 0; double totalSum
* = 0; List<Map<String, Object>> lateList = pageBean.getPage(); if
* (lateList != null) { for (Map<String, Object> map : lateList) {
* lateAmount = lateAmount + Convert.strToDouble(map.get("repaySum") +
* "", 0); lateFI = lateFI + Convert.strToDouble(map.get("lateFI") + "",
* 0); totalSum = totalSum + Convert.strToDouble(map.get("totalSum") +
* "", 0); } } request().setAttribute("lateAmount", lateAmount);
* request().setAttribute("lateFI", lateFI);
* request().setAttribute("totalSum", totalSum);
*/
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/**
* 导出逾期还款记录,或逾期垫付
*
* @return
*/
@SuppressWarnings("unchecked")
public String exportlateRepay() {
pageBean.pageNum = 1;
pageBean.setPageSize(100000);
Integer status = Convert.strToInt(request().getParameter("status"), -1);
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
// 用户名
String userName = SqlInfusion.FilteSqlInfusion(request().getParameter("userName") == null ? "" : request().getParameter("userName"));
// 中文乱码转换
userName = URLDecoder.decode(userName, "UTF-8");
// 借款类型
int borrowWay = Convert.strToInt(SqlInfusion.FilteSqlInfusion(request().getParameter("borrowWay")), -1);
if (status != -1) {
// 逾期垫付
afterCreditManageService.queryOverduePaymentByCondition(userName, borrowWay, status, pageBean);
} else {
// 逾期的还款
afterCreditManageService.queryLateRepayByCondition(userName, borrowWay, status, pageBean);
}
// 待还款详情
if (pageBean.getPage() == null) {
getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>");
return null;
}
if (pageBean.getPage().size() > IConstants.EXCEL_MAX) {
getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>");
return null;
}
List<Map<String, Object>> list = pageBean.getPage();
if (list == null) {
list = new ArrayList<Map<String, Object>>();
}
for (Map<String, Object> map : list) {
if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_NET_VALUE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_NET_VALUE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_SECONDS)) {
map.put("borrowWay", IConstants.BORROW_TYPE_SECONDS_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_GENERAL)) {
map.put("borrowWay", IConstants.BORROW_TYPE_GENERAL_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_FIELD_VISIT)) {
map.put("borrowWay", IConstants.BORROW_TYPE_FIELD_VISIT_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_FLOW)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_FLOW_STR);
}
if (map.get("isWebRepay").toString().equals("1")) {
map.put("isWebRepay", "否");
} else if (map.get("isWebRepay").toString().equals("2")) {
map.put("isWebRepay", "是");
}
if (map.get("repayStatus").toString().equals("1")) {
map.put("repayStatus", "未偿还");
} else if (map.get("repayStatus").toString().equals("2")) {
map.put("repayStatus", "已偿还");
} else if (map.get("repayStatus").toString().equals("3")) {
map.put("repayStatus", "偿还中");
}
}
HSSFWorkbook wb = null;
if (status == -1) {
wb = ExcelUtils.exportExcel("逾期的还款", pageBean.getPage(), new String[] { "ID", "用户名", "真实姓名", "借款标题", "期数", "类型", "应还时间", "逾期天数", "应还金额(¥)", "逾期金额(¥)", "总还款(¥)",
"网站待还", "还款状态" }, new String[] { "id", "username", "realName", "borrowTitle", "repayPeriod", "borrowWay", "repayDate", "lateDay", "totalSum", "lateFI",
"repaySum", "isWebRepay", "repayStatus" });
// 操作日志
operationLogService.addOperationLog("v_t_overduepayment_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出逾期的还款列表", 2);
} else {
wb = ExcelUtils.exportExcel("逾期垫付", pageBean.getPage(), new String[] { "ID", "用户名", "真实姓名", "借款标题", "期数", "类型", "应还时间", "逾期天数", "应还金额(¥)", "逾期金额(¥)", "总还款(¥)",
"网站待还", "还款状态" }, new String[] { "id", "username", "realName", "borrowTitle", "repayPeriod", "borrowWay", "repayDate", "lateDay", "totalSum", "lateFI",
"repaySum", "isWebRepay", "repayStatus" });
// 操作日志
operationLogService.addOperationLog("v_t_laterepay_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出逾期垫付列表", 2);
}
this.export(wb, new Date().getTime() + ".xls");
} catch (SQLException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* @MethodName: overduePaymentList
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-21 下午05:40:57
* @Return:
* @Descb: 逾期垫付记录
* @Throws:
*/
public String overduePaymentList() throws Exception {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage")));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String userName = SqlInfusion.FilteSqlInfusion(paramMap.get("userName") == null ? "" : paramMap.get("userName"));
String borrowWay = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay"));
String status = SqlInfusion.FilteSqlInfusion(paramMap.get("status") == null ? "" : paramMap.get("status"));
int statusInt = Convert.strToInt(status, -1);
int borrowWayInt = Convert.strToInt(borrowWay, -1);
afterCreditManageService.queryOverduePaymentByCondition(userName, borrowWayInt, statusInt, pageBean);
/*
* // 逾期垫付的借款统计总额 Map<String, String> overduePaymentMap =
* afterCreditManageService.queryOverduePaymentAmount(userName,
* borrowWayInt, statusInt); request().setAttribute("overduePaymentMap",
* overduePaymentMap); // 得到当前页逾期还款总金额 double overAmount = 0; double
* lateFI = 0; double totalSum = 0; List<Map<String, Object>> overList =
* pageBean.getPage(); if (overList != null) { for (Map<String, Object>
* map : overList) { overAmount = overAmount +
* Convert.strToDouble(map.get("repaySum") + "", 0); lateFI = lateFI +
* Convert.strToDouble(map.get("lateFI") + "", 0); totalSum = totalSum +
* Convert.strToDouble(map.get("totalSum") + "", 0); } }
* request().setAttribute("overAmount", overAmount);
* request().setAttribute("lateFI", lateFI);
* request().setAttribute("totalSum", totalSum);
*/
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/**
* 代偿(合和年)
*/
public String overduePaymentRepaySubmit() throws Exception {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
String id = SqlInfusion.FilteSqlInfusion(paramMap.get("id") == null ? "" : paramMap.get("id"));
String borrowId = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowId") == null ? "" : paramMap.get("borrowId"));
long payId = Convert.strToLong(id, -1L);
if (payId < -1) {
JSONUtils.printStr2(IConstants.ACTOIN_ILLEGAL);
return null;
}
if (StringUtils.isBlank(ChinaPnrConfig.chinapnr_dc)) {
JSONUtils.printStr2("代偿账户未开启,不能代偿");
return null;
}
String message = afterCreditManageService.overduePaymentRepaySubmit(payId, admin.getId(), getBasePath(), borrowId, admin);
if (message.equals("操作成功")) {
// 添加操作日志
operationLogService.addOperationLog("t_repayment", admin.getUserName(), IConstants.UPDATE, admin.getLastIP(), 0, "管理员进行逾期垫付操作", 2);
}
JSONUtils.printStr2(message);
return null;
}
/**
* @Descb: 已还款查看详情
* @Throws:
*/
@SuppressWarnings("unchecked")
public String queryByrepayId() {
int id = Convert.strToInt(request("repayId"), 0);
try {
afterCreditManageService.queryByrepayId(id, pageBean);
} catch (DataException e) {
log.error(e);
e.printStackTrace();
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
/**
* @Descb: 已还款查看详情
* @Throws:
*/
@SuppressWarnings("unchecked")
public String queryByrepayIdDueId() {
int id = Convert.strToInt(request("repayId"), 0);
try {
afterCreditManageService.queryByrepayIdDueId(id, pageBean);
} catch (DataException e) {
log.error(e);
e.printStackTrace();
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
/**
* @MethodName: hasRepayList
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-21 下午02:24:40
* @Return:
* @Descb: 已还款列表
* @Throws:
*/
@SuppressWarnings("unchecked")
public String hasRepayList() throws SQLException, DataException {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage")));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String userName = SqlInfusion.FilteSqlInfusion(paramMap.get("userName") == null ? "" : paramMap.get("userName"));
String realName = SqlInfusion.FilteSqlInfusion(paramMap.get("realName") == null ? "" : paramMap.get("realName"));
String borrowWay = SqlInfusion.FilteSqlInfusion(paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay"));
int borrowWayInt = Convert.strToInt(borrowWay, -1);
String deadline = SqlInfusion.FilteSqlInfusion(paramMap.get("deadline") == null ? "" : paramMap.get("deadline"));
int deadlineInt = Convert.strToInt(deadline, -1);
String repayStatus = SqlInfusion.FilteSqlInfusion(paramMap.get("status") == null ? "" : paramMap.get("status"));
int repayStatusInt = Convert.strToInt(repayStatus, -1);
String flag = SqlInfusion.FilteSqlInfusion(paramMap.get("flag"));
String timeStart1 = null;
String timeEnd1 = null;
String timeStart = null;
String timeEnd = null;
if (flag.equals("2")) {
// -----------add by houli
timeStart1 = paramMap.get("timeStart") == null ? "" : paramMap.get("timeStart");
timeEnd1 = paramMap.get("timeEnd") == null ? "" : paramMap.get("timeEnd");
// -------
} else {
timeStart = paramMap.get("timeStart") == null ? "" : paramMap.get("timeStart");
timeEnd = paramMap.get("timeEnd") == null ? "" : paramMap.get("timeEnd");
}
afterCreditManageService.queryHasRepayByCondition(userName, realName, timeStart, timeEnd, borrowWayInt, deadlineInt, repayStatusInt, pageBean,
// ---modify by houli
timeStart1, timeEnd1);
// 已收款总额
Map<String, String> hasRePayMap = afterCreditManageService.queryHasRePayAmount(userName, realName, timeStart, timeEnd, borrowWayInt, deadlineInt, repayStatusInt,
timeStart1, timeEnd1);
request().setAttribute("hasRePayMap", hasRePayMap);
// 得到当前页已收款金额
double hasAmount = 0;
List<Map<String, Object>> hasList = pageBean.getPage();
if (hasList != null) {
for (Map<String, Object> map : hasList) {
hasAmount = hasAmount + Convert.strToDouble(map.get("hasPI") + "", 0);
}
}
request().setAttribute("hasAmount", hasAmount);
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/**
* 导出已还款列表
*
* @return
*/
@SuppressWarnings("unchecked")
public String exporthasRepay() {
pageBean.pageNum = 1;
pageBean.setPageSize(100000);
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
// 得到页面传来的信息
// 用户名
String userName = SqlInfusion.FilteSqlInfusion(request().getParameter("userName") == null ? "" : request().getParameter("userName"));
// 真实姓名
String realName = SqlInfusion.FilteSqlInfusion(request().getParameter("realName") == null ? "" : request().getParameter("realName"));
// 还款日期
String timeStart = SqlInfusion.FilteSqlInfusion(request().getParameter("timeStart") == null ? "" : request().getParameter("timeStart"));
String timeEnd = SqlInfusion.FilteSqlInfusion(request().getParameter("timeEnd") == null ? "" : request().getParameter("timeEnd"));
// 到期日期
String timeStart1 = SqlInfusion.FilteSqlInfusion(request().getParameter("timeStart1") == null ? "" : request().getParameter("timeStart1"));
String timeEnd1 = SqlInfusion.FilteSqlInfusion(request().getParameter("timeEnd1") == null ? "" : request().getParameter("timeEnd1"));
// 借款期数
int deadline = Convert.strToInt(request().getParameter("deadline"), -1);
// 借款类型
int borrowWay = Convert.strToInt(request().getParameter("borrowWay"), -1);
// 中文乱码转换
userName = URLDecoder.decode(userName, "UTF-8");
realName = URLDecoder.decode(realName, "UTF-8");
timeStart = URLDecoder.decode(timeStart, "UTF-8");
timeEnd = URLDecoder.decode(timeEnd, "UTF-8");
timeStart1 = URLDecoder.decode(timeStart1, "UTF-8");
timeEnd1 = URLDecoder.decode(timeEnd1, "UTF-8");
// 已还款记录列表
afterCreditManageService.queryHasRepayByCondition(userName, realName, timeStart, timeEnd, borrowWay, deadline, -1, pageBean, timeStart1, timeEnd1);
if (pageBean.getPage() == null) {
getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>");
return null;
}
if (pageBean.getPage().size() > IConstants.EXCEL_MAX) {
getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>");
return null;
}
List<Map<String, Object>> list = pageBean.getPage();
if (list == null) {
list = new ArrayList<Map<String, Object>>();
}
for (Map<String, Object> map : list) {
if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_NET_VALUE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_NET_VALUE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_SECONDS)) {
map.put("borrowWay", IConstants.BORROW_TYPE_SECONDS_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_GENERAL)) {
map.put("borrowWay", IConstants.BORROW_TYPE_GENERAL_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_FIELD_VISIT)) {
map.put("borrowWay", IConstants.BORROW_TYPE_FIELD_VISIT_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_GUARANTEE_STR);
} else if (map.get("borrowWay").toString().equals(IConstants.BORROW_TYPE_INSTITUTION_FLOW)) {
map.put("borrowWay", IConstants.BORROW_TYPE_INSTITUTION_FLOW_STR);
}
if (map.get("repayStatus").toString().equals("1")) {
map.put("repayStatus", "未偿还");
} else if (map.get("repayStatus").toString().equals("2")) {
map.put("repayStatus", "已偿还");
} else if (map.get("repayStatus").toString().equals("3")) {
map.put("repayStatus", "偿还中");
}
if (map.get("groupName") == null || map.get("groupName") == "") {
map.put("groupName", "未分配");
}
if (Convert.strToLong(map.get("isDayThe") + "", -1L) == 1) {
map.put("isDayThe", "否");
} else {
map.put("isDayThe", "是");
}
}
HSSFWorkbook wb = ExcelUtils.exportExcel("已还款详情", pageBean.getPage(), new String[] { "ID", "借款人", "姓名", "用户组 ", "借款时间", "标旳类型", "借款标题", "是否天标", "期数/总期数 ", "应还时间 ",
"还款时间 ", "应还金额 ", "还款状态" }, new String[] { "id", "username", "realName", "groupName", "publishTime", "borrowWay", "borrowTitle", "isDayThe", "repayPeriod",
"repayDate", "realRepayDate", "hasPI", "repayStatus" });
this.export(wb, new Date().getTime() + ".xls");
operationLogService.addOperationLog("v_t_hasrepay_h", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出已还款列表", 2);
} catch (SQLException e) {
e.printStackTrace();
} catch (DataException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* @Descb: 待收款查看详情
* @Throws:
*/
@SuppressWarnings("unchecked")
public String queryByrepayIdDieIn() {
int id = Convert.strToInt(request("repayId"), 0);
try {
afterCreditManageService.queryByrepayId(id, pageBean);
} catch (DataException e) {
log.error(e);
e.printStackTrace();
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
/**
* @MethodName: repaymentNoticeInit
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-19 下午07:24:07
* @Return:
* @Descb: 还款记录沟通初始化
* @Throws:
*/
public String repaymentNoticeInit() {
String id = request().getParameter("id") == null ? "" : request().getParameter("id");
request().setAttribute("id", id);
return "success";
}
/**
* @MethodName: repayMentNoticeList
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-19 下午02:43:32
* @Return:
* @Descb: 还款沟通记录
* @Throws:
*/
public String repayMentNoticeList() throws SQLException, DataException {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request().getParameter("curPage") == null ? "" : request().getParameter("curPage")));
if (StringUtils.isNotBlank(pageNum)) {
pageBean.setPageNum(pageNum);
}
pageBean.setPageSize(IConstants.PAGE_SIZE_10);
String id = paramMap.get("id") == null ? "" : paramMap.get("id");
long idLong = Convert.strToInt(id, -1);
afterCreditManageService.queryRepayMentNoticeByCondition(idLong, pageBean);
return "success";
}
/**
* @MethodName: addRepayMentNotice
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-3-19 下午07:02:45
* @Return:
* @Descb: 添加还款沟通记录
* @Throws:
*/
public String addRepayMentNotice() throws SQLException, IOException {
JSONObject obj = new JSONObject();
String id = SqlInfusion.FilteSqlInfusion(paramMap.get("id"));
long idLong = Convert.strToLong(id, -1);
String content = SqlInfusion.FilteSqlInfusion(paramMap.get("content"));
long result = -1;
result = afterCreditManageService.addRepayMentNotice(idLong, content);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
if (result <= 0) {
obj.put("msg", IConstants.ACTION_FAILURE);
JSONUtils.printObject(obj);
operationLogService.addOperationLog("t_repayment_service", admin.getUserName(), IConstants.INSERT, admin.getLastIP(), 0, "添加还款沟通记录失败", 2);
return null;
}
// 前台跳转地址
obj.put("msg", "1");
JSONUtils.printObject(obj);
operationLogService.addOperationLog("t_repayment_service", admin.getUserName(), IConstants.INSERT, admin.getLastIP(), 0, "添加还款沟通记录成功", 2);
return null;
}
/**
* @MethodName: repaymentDetail
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-4-2 下午02:22:17
* @Return:
* @Descb: 还款记录详情
* @Throws:
*/
public String repaymentDetail() throws SQLException, DataException {
String frontUrl = ServletUtils.serverUrl();
String id = SqlInfusion.FilteSqlInfusion(request().getParameter("id") == null ? "" : request().getParameter("id"));
long idLong = Convert.strToLong(id, -1);
Map<String, String> map = afterCreditManageService.queryRepaymentDetail(idLong);
List<Map<String, Object>> serviceList = afterCreditManageService.queryRepaymentService(idLong);
List<Map<String, Object>> collectionList = afterCreditManageService.queryRepaymentCollection(idLong);
request().setAttribute("map", map);
request().setAttribute("serviceList", serviceList);
request().setAttribute("collectionList", collectionList);
request().setAttribute("frontUrl", frontUrl);
return "success";
}
public String addCollection() throws SQLException, IOException {
JSONObject obj = new JSONObject();
String id = SqlInfusion.FilteSqlInfusion(paramMap.get("id") == null ? "" : paramMap.get("id"));
long idLong = Convert.strToLong(id, -1L);
String colResult = paramMap.get("colResult") == null ? "" : paramMap.get("colResult");
String remark = SqlInfusion.FilteSqlInfusion(paramMap.get("remark") == null ? "" : paramMap.get("remark"));
long returnId = -1L;
if (StringUtils.isBlank(colResult.trim())) {
obj.put("msg", "催收结果不能为空!");
JSONUtils.printObject(obj);
return null;
}
if (StringUtils.isBlank(remark.trim())) {
obj.put("msg", "署名备注不能为空!");
JSONUtils.printObject(obj);
return null;
}
returnId = afterCreditManageService.addCollection(idLong, colResult, remark);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
if (returnId <= 0) {
obj.put("msg", IConstants.ACTION_FAILURE);
JSONUtils.printObject(obj);
operationLogService.addOperationLog("t_collection", admin.getUserName(), IConstants.INSERT, admin.getLastIP(), 0, "添加催收记录失败", 2);
return null;
} else {
obj.put("msg", IConstants.ACTION_SUCCESS);
JSONUtils.printObject(obj);
operationLogService.addOperationLog("t_collection", admin.getUserName(), IConstants.INSERT, admin.getLastIP(), 0, "添加催收记录成功", 2);
return null;
}
}
/**
* @MethodName: delCollection
* @Param: AfterCreditManageAction
* @Author: gang.lv
* @Date: 2013-4-2 下午04:37:26
* @Return:
* @Descb: 删除催收记录
* @Throws:
*/
public String delCollection() throws IOException, SQLException {
JSONObject obj = new JSONObject();
String id = SqlInfusion.FilteSqlInfusion(paramMap.get("id") == null ? "" : paramMap.get("id"));
long idLong = Convert.strToLong(id, -1L);
long returnId = -1L;
returnId = afterCreditManageService.delCollection(idLong);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
if (returnId <= 0) {
obj.put("msg", IConstants.ACTION_FAILURE);
JSONUtils.printObject(obj);
operationLogService.addOperationLog("t_collection", admin.getUserName(), IConstants.DELETE, admin.getLastIP(), 0, "删除催收记录失败", 2);
return null;
} else {
obj.put("msg", IConstants.ACTION_SUCCESS + ",请刷新");
JSONUtils.printObject(obj);
operationLogService.addOperationLog("t_collection", admin.getUserName(), IConstants.DELETE, admin.getLastIP(), 0, "删除催收记录成功", 2);
return null;
}
}
public AfterCreditManageService getAfterCreditManageService() {
return afterCreditManageService;
}
public void setAfterCreditManageService(AfterCreditManageService afterCreditManageService) {
this.afterCreditManageService = afterCreditManageService;
}
public SelectedService getSelectedService() {
return selectedService;
}
public void setSelectedService(SelectedService selectedService) {
this.selectedService = selectedService;
}
public List<Map<String, Object>> getBorrowDeadlineList() throws SQLException, DataException {
if (borrowDeadlineList == null) {
borrowDeadlineList = selectedService.borrowDeadline();
}
return borrowDeadlineList;
}
public List<Map<String, Object>> getUserGroupList() throws SQLException, DataException {
if (userGroupList == null) {
userGroupList = selectedService.userGroup();
}
return userGroupList;
}
/**
* 合和年回购 列表
*/
public String backBuyInitList() throws Exception {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request("curPage") == null ? "" : request("curPage")));
if (StringUtils.isNotBlank(pageNum))
pageBean.setPageNum(pageNum);
String userName = paramMap.get("userName") == null ? "" : paramMap.get("userName");
String borrowWay = paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay");
int borrowWayInt = Convert.strToInt(borrowWay, -1);
int status = 1;//1待回购
afterCreditManageService.queryBackBuyList(userName, borrowWayInt,status, pageBean);
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
public String backBuyDetails() throws Exception {
long borrowId = Convert.strToLong(request("borrowId"), -1);
List<Map<String, Object>> list = afterCreditManageService.queryBackBuyDetails(borrowId);
request().setAttribute("list", list);
return SUCCESS;
}
/** 根据investId 回购 更改使用债权转让接口 */
public String backBuyByborrowId() throws Exception {
long investId = Convert.strToLong(request("investId"), -1);
double price = Convert.strToDouble(request("price"), 0);//转让的债权金额
double dealPrice = Convert.strToDouble(request("dealPrice"), 0);//债权交易价格
if (investId < 0) {
JSONUtils.printStr2("提交数据错误!");
return null;
}
if (dealPrice <= 0) {
JSONUtils.printStr2("回购金额错误!");
return null;
}
if (price <= 0) {
JSONUtils.printStr2("债权金额错误!");
return null;
}
if (StringUtils.isBlank(ChinaPnrConfig.chinapnr_dc)) {
JSONUtils.printStr2("代偿账户未设置!");
return null;
}
DecimalFormat format = new DecimalFormat("0.00");
String html = afterCreditManageService.backBuyByborrowId(investId, format.format(price), format.format(dealPrice));
sendHtml(html);
return null;
}
/** 导出待回购列表 */
@SuppressWarnings("unchecked")
public String exportBackBuyList() {
pageBean.pageNum = 1;
pageBean.setPageSize(100000);
try {
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
// 用户名
String userName = SqlInfusion.FilteSqlInfusion(request("userName") == null ? "" : request("userName"));
userName = URLDecoder.decode(userName, "UTF-8");
int borrowWay = Convert.strToInt(request().getParameter("borrowWay"), -1);
int status = 1;
afterCreditManageService.queryBackBuyList(userName, borrowWay, status,pageBean);
if (pageBean.getPage() == null) {
getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>");
return null;
}
if (pageBean.getPage().size() > IConstants.EXCEL_MAX) {
getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>");
return null;
}
List<Map<String, Object>> list = pageBean.getPage();
if (list == null) {
list = new ArrayList<Map<String, Object>>();
}
for (Map<String, Object> map : list) {
if (map.get("borrowWay").toString().equals("1")) {
map.put("borrowWay", "薪金贷");
} else if (map.get("borrowWay").toString().equals("2")) {
map.put("borrowWay", "生意贷");
} else if (map.get("borrowWay").toString().equals("3")) {
map.put("borrowWay", "业主贷");
}
}
HSSFWorkbook wb = null;
wb = ExcelUtils.exportExcel("待回购", pageBean.getPage(), new String[] { "ID", "用户名", "真实姓名", "借款标题", "借款金额", "借款类型", "借款期限", "借款时间", "逾期天数", "已还总额", "代偿次数" },
new String[] { "borrowId", "username", "realName", "borrowTitle", "borrowAmount", "borrowWay", "deadline", "publishTime", "overDay", "hasPay", "webPayCount" });
operationLogService.addOperationLog("v_t_back_buy_list", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出待回购列表", 2);
this.export(wb, new Date().getTime() + ".xls");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/** 添加回购初始化 **/
public String addBackBuyInit() {
return SUCCESS;
}
public String addBackBuyList() throws Exception {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request("curPage") == null ? "" : request("curPage")));
if (StringUtils.isNotBlank(pageNum))
pageBean.setPageNum(pageNum);
String userName = paramMap.get("userName") == null ? "" : paramMap.get("userName");
String borrowWay = paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay");
int borrowWayInt = Convert.strToInt(borrowWay, -1);
afterCreditManageService.addBackBuyList(userName, borrowWayInt, pageBean);
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
/** 发起回购 **/
public String addBackBuy() throws Exception {
long borrowId = Convert.strToLong(request("borrowId"), 0);
String ret = afterCreditManageService.addBackBuy(borrowId);
JSONUtils.printStr2(ret);
return null;
}
public String hasBackBuyInit(){
return SUCCESS;
}
/** 合和年已回购 列表 */
public String hasBackBuyList() throws Exception {
String pageNum = SqlInfusion.FilteSqlInfusion((String) (request("curPage") == null ? "" : request("curPage")));
if (StringUtils.isNotBlank(pageNum))
pageBean.setPageNum(pageNum);
String userName = paramMap.get("userName") == null ? "" : paramMap.get("userName");
String borrowWay = paramMap.get("borrowWay") == null ? "" : paramMap.get("borrowWay");
int borrowWayInt = Convert.strToInt(borrowWay, -1);
int status = 2;//2已回购
afterCreditManageService.queryBackBuyList(userName, borrowWayInt,status, pageBean);
int pageNums = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize();
request().setAttribute("pageNum", pageNums);
return "success";
}
}