|
|
@ -6,10 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportReturn; |
|
|
|
import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportVo; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempExportVo; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyInit; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleHistoryRecord; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApply; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; |
|
|
@ -22,6 +27,7 @@ import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import com.yxt.messagecenter.api.messageurgeList.MessageUrgeListVo; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
|
|
|
import org.apache.poi.ss.usermodel.Cell; |
|
|
@ -43,8 +49,10 @@ import java.math.BigDecimal; |
|
|
|
import java.text.ParseException; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.*; |
|
|
|
import java.util.function.Predicate; |
|
|
|
import java.util.regex.Matcher; |
|
|
|
import java.util.regex.Pattern; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
@ -861,4 +869,502 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
PagerVo<TransferPaymentVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<RepaymentStatisticsVo> repaymentStatistics(PagerQuery<RepaymentStatisticsQuery> pq) { |
|
|
|
IPage<LoanRepaymentHistory> page = PagerUtil.queryToPage(pq); |
|
|
|
RepaymentStatisticsQuery pagerQuery = pq.getParams(); |
|
|
|
QueryWrapper<LoanRepaymentHistory> qw = new QueryWrapper<>(); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
//=======================
|
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); |
|
|
|
privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); |
|
|
|
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); |
|
|
|
privilegeQuery.setUserSid(pagerQuery.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = pagerQuery.getOrgPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("a.orgSidPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("a.orgSidPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("a.orgSidPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("a.orgSidPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("a.createBySid", pagerQuery.getUserSid()); |
|
|
|
} else { |
|
|
|
PagerVo<RepaymentStatisticsVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
PagerVo<RepaymentStatisticsVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
//=======================
|
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getVinNo())) { |
|
|
|
qw.like("a.vinNo", pagerQuery.getVinNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getDept())) { |
|
|
|
qw.like("a.dept", pagerQuery.getDept()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getStaffName())) { |
|
|
|
qw.like("a.staffName", pagerQuery.getStaffName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) { |
|
|
|
qw.like("a.loanContractNo", pagerQuery.getLoanContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getPeriod())) { |
|
|
|
qw.eq("a.period", pagerQuery.getPeriod()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBankName())) { |
|
|
|
qw.like("a.bankName", pagerQuery.getBankName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) { |
|
|
|
qw.like("a.bankContractNo", pagerQuery.getBankContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getCustomer())) { |
|
|
|
qw.like("a.customer", pagerQuery.getCustomer()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { |
|
|
|
qw.like("a.borrowerName", pagerQuery.getBorrowerName()); |
|
|
|
} |
|
|
|
String dueStartDate = pagerQuery.getDueStartDate(); |
|
|
|
String dueEndDate = pagerQuery.getDueEndDate(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (a.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(dueEndDate), "date_format (a.dueDate,'%Y-%m-%d') <= date_format('" + dueEndDate + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.eq("1", "1"); |
|
|
|
qw.orderBy(true, true, "a.useOrgName") |
|
|
|
.orderBy(true, true, "a.vinNo") |
|
|
|
.orderBy(true, true, "a.period") |
|
|
|
.orderBy(true, true, "a.loanContractNo") |
|
|
|
; |
|
|
|
IPage<RepaymentStatisticsVo> pagging = baseMapper.repaymentStatistics(page, qw); |
|
|
|
List<RepaymentStatisticsVo> records = pagging.getRecords(); |
|
|
|
records.removeAll(Collections.singleton(null)); |
|
|
|
if (!records.isEmpty()) { |
|
|
|
for (RepaymentStatisticsVo record : records) { |
|
|
|
String sid = record.getSid(); |
|
|
|
List<String> updateTimes = baseMapper.selnewUpdateTimeByPlanSid(sid); |
|
|
|
updateTimes.removeAll(Collections.singleton(null)); |
|
|
|
if (!updateTimes.isEmpty()) { |
|
|
|
String updateTime = updateTimes.get(0); |
|
|
|
try { |
|
|
|
Date updateTimeParse = sdf.parse(updateTime); |
|
|
|
Date dueDateParse = sdf.parse(record.getDueDate()); |
|
|
|
String format = sdf.format(new Date()); |
|
|
|
Date parseNewDate = sdf.parse(format); |
|
|
|
if (updateTimeParse.compareTo(dueDateParse) > 0) { |
|
|
|
record.setNowOverdue("0"); |
|
|
|
} else { |
|
|
|
record.setNowOverdue("1"); |
|
|
|
} |
|
|
|
if (updateTimeParse.compareTo(parseNewDate) == 0) { |
|
|
|
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
|
|
|
|
cal_1.add(Calendar.DAY_OF_MONTH, -1); |
|
|
|
record.setUpdateDate(sdf.format(cal_1.getTime())); |
|
|
|
} else { |
|
|
|
record.setUpdateDate(updateTime); |
|
|
|
} |
|
|
|
for (String time : updateTimes) { |
|
|
|
Date parseTime = sdf.parse(time); |
|
|
|
if (parseTime.compareTo(dueDateParse) > 0) { |
|
|
|
record.setDueOverdue("0"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(record.getDueOverdue())) { |
|
|
|
record.setDueOverdue("1"); |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
String format = sdf.format(new Date()); |
|
|
|
try { |
|
|
|
Date parseNewDate = sdf.parse(format); |
|
|
|
Date dueDateParse = sdf.parse(record.getDueDate()); |
|
|
|
if (parseNewDate.compareTo(dueDateParse) > 0) { |
|
|
|
record.setNowOverdue("0"); |
|
|
|
record.setDueOverdue("0"); |
|
|
|
} else { |
|
|
|
record.setNowOverdue("1"); |
|
|
|
record.setDueOverdue("1"); |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getNowOverdue())) { |
|
|
|
records = records.stream().filter(r -> r.getNowOverdue().equals(pagerQuery.getNowOverdue())) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getDueOverdue())) { |
|
|
|
records = records.stream().filter(r -> r.getDueOverdue().equals(pagerQuery.getDueOverdue())) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) || StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) { |
|
|
|
records = records.stream().filter(new Predicate<RepaymentStatisticsVo>() { |
|
|
|
@Override |
|
|
|
public boolean test(RepaymentStatisticsVo v) { |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isBlank(pagerQuery.getUpdateEndDate())) { |
|
|
|
String updateStartDate = pagerQuery.getUpdateStartDate(); |
|
|
|
try { |
|
|
|
Date parseUpdateTime = sdf.parse(v.getUpdateDate()); |
|
|
|
Date startTime = sdf.parse(updateStartDate); |
|
|
|
if (parseUpdateTime.compareTo(startTime) >= 0) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} else if (StringUtils.isBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) { |
|
|
|
String updateEndDate = pagerQuery.getUpdateEndDate(); |
|
|
|
try { |
|
|
|
Date parseUpdateTime = sdf.parse(v.getUpdateDate()); |
|
|
|
Date endTime = sdf.parse(updateEndDate); |
|
|
|
if (parseUpdateTime.compareTo(endTime) <= 0) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
String updateStartDate = pagerQuery.getUpdateStartDate(); |
|
|
|
String updateEndDate = pagerQuery.getUpdateEndDate(); |
|
|
|
try { |
|
|
|
Date parseUpdateTime = sdf.parse(v.getUpdateDate()); |
|
|
|
Date endTime = sdf.parse(updateEndDate); |
|
|
|
Date startTime = sdf.parse(updateStartDate); |
|
|
|
if (parseUpdateTime.compareTo(endTime) <= 0 && parseUpdateTime.compareTo(startTime) >= 0) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
pagging.setRecords(records); |
|
|
|
PagerVo<RepaymentStatisticsVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<RepaymentDetailsListVo> repaymentDetailsList(PagerQuery<RepaymentDetailsListQuery> pq) { |
|
|
|
IPage<LoanRepaymentHistory> page = PagerUtil.queryToPage(pq); |
|
|
|
RepaymentDetailsListQuery pagerQuery = pq.getParams(); |
|
|
|
QueryWrapper<LoanRepaymentHistory> qw = new QueryWrapper<>(); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
//=======================
|
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); |
|
|
|
privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); |
|
|
|
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); |
|
|
|
privilegeQuery.setUserSid(pagerQuery.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = pagerQuery.getOrgPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("p.orgSidPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("p.orgSidPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("p.orgSidPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("p.orgSidPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("p.salesUserSid", pagerQuery.getUserSid()); |
|
|
|
} else { |
|
|
|
PagerVo<RepaymentDetailsListVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
PagerVo<RepaymentDetailsListVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
//=======================
|
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getVinNo())) { |
|
|
|
qw.like("p.vinNo", pagerQuery.getVinNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getDept())) { |
|
|
|
qw.like("p.dept", pagerQuery.getDept()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getStaffName())) { |
|
|
|
qw.like("p.staffName", pagerQuery.getStaffName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) { |
|
|
|
qw.like("p.loanContractNo", pagerQuery.getLoanContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getPeriod())) { |
|
|
|
qw.eq("p.period", pagerQuery.getPeriod()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBankName())) { |
|
|
|
qw.like("p.bankName", pagerQuery.getBankName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) { |
|
|
|
qw.like("p.bankContractNo", pagerQuery.getBankContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getCustomer())) { |
|
|
|
qw.like("p.customer", pagerQuery.getCustomer()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { |
|
|
|
qw.like("p.borrowerName", pagerQuery.getBorrowerName()); |
|
|
|
} |
|
|
|
String dueStartDate = pagerQuery.getDueStartDate(); |
|
|
|
String dueEndDate = pagerQuery.getDueEndDate(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (p.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(dueEndDate), "date_format (p.dueDate,'%Y-%m-%d') <= date_format('" + dueEndDate + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
String actualStartDate = pagerQuery.getActualStartDate(); |
|
|
|
String actualEndDate = pagerQuery.getActualEndDate(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
String dataStartTime = pagerQuery.getDataStartTime(); |
|
|
|
String dataEndTime = pagerQuery.getDataEndTime(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(dataStartTime), "date_format (h.dataTime,'%Y-%m-%d') >= date_format('" + dataStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(dataEndTime), "date_format (h.dataTime,'%Y-%m-%d') <= date_format('" + dataEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
String closingStartDate = pagerQuery.getClosingStartDate(); |
|
|
|
String closingEndDate = pagerQuery.getClosingEndDate(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(closingStartDate), "date_format (h.closingDate,'%Y-%m-%d') >= date_format('" + closingStartDate + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(closingEndDate), "date_format (h.closingDate,'%Y-%m-%d') <= date_format('" + closingEndDate + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
String updateStartTime = pagerQuery.getUpdateStartTime(); |
|
|
|
String updateEndTime = pagerQuery.getUpdateEndTime(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(updateStartTime), "date_format (h.updateTime,'%Y-%m-%d') >= date_format('" + updateStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(updateEndTime), "date_format (h.updateTime,'%Y-%m-%d') <= date_format('" + updateEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.eq("1", "1"); |
|
|
|
qw.orderBy(true, true, "p.useOrgName") |
|
|
|
.orderBy(true, true, "p.vinNo") |
|
|
|
.orderBy(true, true, "p.period") |
|
|
|
.orderBy(true, true, "p.loanContractNo") |
|
|
|
; |
|
|
|
IPage<RepaymentDetailsListVo> pagging = baseMapper.repaymentDetailsList(page, qw); |
|
|
|
PagerVo<RepaymentDetailsListVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public List<RepaymentStatisticsExportVo> exportExcel(RepaymentStatisticsQuery pagerQuery) { |
|
|
|
QueryWrapper<LoanRepaymentHistory> qw = new QueryWrapper<>(); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
//根据用户的组织机构查询分公司
|
|
|
|
//=======================
|
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); |
|
|
|
privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); |
|
|
|
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); |
|
|
|
privilegeQuery.setUserSid(pagerQuery.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
// if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
|
|
|
|
// //数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
// String orgSidPath = pagerQuery.getOrgPath();
|
|
|
|
// orgSidPath = orgSidPath + "/";
|
|
|
|
// int i1 = orgSidPath.indexOf("/");
|
|
|
|
// int i2 = orgSidPath.indexOf("/", i1 + 1);
|
|
|
|
// int i3 = orgSidPath.indexOf("/", i2 + 1);
|
|
|
|
// int i4 = orgSidPath.indexOf("/", i3 + 1);
|
|
|
|
// String orgLevelKey = defaultIdReltBean.getData();
|
|
|
|
// if ("1".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, i1);
|
|
|
|
// qw.like("a.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("2".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, i2);
|
|
|
|
// qw.like("a.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("3".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, i3);
|
|
|
|
// qw.like("a.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("4".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, i4);
|
|
|
|
// qw.like("a.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("5".equals(orgLevelKey)) {
|
|
|
|
// qw.eq("a.createBySid", pagerQuery.getUserSid());
|
|
|
|
// } else {
|
|
|
|
// List<RepaymentStatisticsExportVo> p = new ArrayList<>();
|
|
|
|
// return p;
|
|
|
|
// }
|
|
|
|
// } else {
|
|
|
|
// List<RepaymentStatisticsExportVo> p = new ArrayList<>();
|
|
|
|
// return p;
|
|
|
|
// }
|
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getVinNo())) { |
|
|
|
qw.like("a.vinNo", pagerQuery.getVinNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getDept())) { |
|
|
|
qw.like("a.dept", pagerQuery.getDept()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getStaffName())) { |
|
|
|
qw.like("a.staffName", pagerQuery.getStaffName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) { |
|
|
|
qw.like("a.loanContractNo", pagerQuery.getLoanContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getPeriod())) { |
|
|
|
qw.eq("a.period", pagerQuery.getPeriod()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBankName())) { |
|
|
|
qw.like("a.bankName", pagerQuery.getBankName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) { |
|
|
|
qw.like("a.bankContractNo", pagerQuery.getBankContractNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getCustomer())) { |
|
|
|
qw.like("a.customer", pagerQuery.getCustomer()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { |
|
|
|
qw.like("a.borrowerName", pagerQuery.getBorrowerName()); |
|
|
|
} |
|
|
|
List<String> headAndLast = getMonthHeadAndLast(new Date()); |
|
|
|
String head = headAndLast.get(0); |
|
|
|
String last = headAndLast.get(1); |
|
|
|
qw.apply(StringUtils.isNotEmpty(head), "date_format (a.dueDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(last), "date_format (a.dueDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.eq("1", "1"); |
|
|
|
qw.orderBy(true, true, "a.useOrgName") |
|
|
|
.orderBy(true, true, "a.vinNo") |
|
|
|
.orderBy(true, true, "a.period") |
|
|
|
.orderBy(true, true, "a.loanContractNo") |
|
|
|
; |
|
|
|
List<RepaymentStatisticsExportVo> records = baseMapper.repaymentStatisticsExport(qw); |
|
|
|
records.removeAll(Collections.singleton(null)); |
|
|
|
int id = 1; |
|
|
|
if (!records.isEmpty()) { |
|
|
|
for (RepaymentStatisticsExportVo record : records) { |
|
|
|
String sid = record.getSid(); |
|
|
|
List<String> updateTimes = baseMapper.selnewUpdateTimeByPlanSid(sid); |
|
|
|
updateTimes.removeAll(Collections.singleton(null)); |
|
|
|
if (!updateTimes.isEmpty()) { |
|
|
|
String updateTime = updateTimes.get(0); |
|
|
|
try { |
|
|
|
Date updateTimeParse = sdf.parse(updateTime); |
|
|
|
Date dueDateParse = sdf.parse(record.getDueDate()); |
|
|
|
String format = sdf.format(new Date()); |
|
|
|
Date parseNewDate = sdf.parse(format); |
|
|
|
if (updateTimeParse.compareTo(dueDateParse) > 0) { |
|
|
|
record.setNowOverdue("是"); |
|
|
|
} else { |
|
|
|
record.setNowOverdue("否"); |
|
|
|
} |
|
|
|
if (updateTimeParse.compareTo(parseNewDate) == 0) { |
|
|
|
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
|
|
|
|
cal_1.add(Calendar.DAY_OF_MONTH, -1); |
|
|
|
record.setUpdateDate(sdf.format(cal_1.getTime())); |
|
|
|
} else { |
|
|
|
record.setUpdateDate(updateTime); |
|
|
|
} |
|
|
|
for (String time : updateTimes) { |
|
|
|
Date parseTime = sdf.parse(time); |
|
|
|
if (parseTime.compareTo(dueDateParse) > 0) { |
|
|
|
record.setDueOverdue("否"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(record.getDueOverdue())) { |
|
|
|
record.setDueOverdue("是"); |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
String format = sdf.format(new Date()); |
|
|
|
try { |
|
|
|
Date parseNewDate = sdf.parse(format); |
|
|
|
Date dueDateParse = sdf.parse(record.getDueDate()); |
|
|
|
if (parseNewDate.compareTo(dueDateParse) > 0) { |
|
|
|
record.setNowOverdue("是"); |
|
|
|
record.setDueOverdue("是"); |
|
|
|
} else { |
|
|
|
record.setNowOverdue("否"); |
|
|
|
record.setDueOverdue("否"); |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
record.setRankNo(id); |
|
|
|
id = id + 1; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getNowOverdue())) { |
|
|
|
records = records.stream().filter(r -> r.getNowOverdue().equals(pagerQuery.getNowOverdue())) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getDueOverdue())) { |
|
|
|
records = records.stream().filter(r -> r.getDueOverdue().equals(pagerQuery.getDueOverdue())) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) || StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) { |
|
|
|
records = records.stream().filter(new Predicate<RepaymentStatisticsExportVo>() { |
|
|
|
@Override |
|
|
|
public boolean test(RepaymentStatisticsExportVo v) { |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isBlank(pagerQuery.getUpdateEndDate())) { |
|
|
|
String updateStartDate = pagerQuery.getUpdateStartDate(); |
|
|
|
try { |
|
|
|
Date parseUpdateTime = sdf.parse(v.getUpdateDate()); |
|
|
|
Date startTime = sdf.parse(updateStartDate); |
|
|
|
if (parseUpdateTime.compareTo(startTime) >= 0) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} else if (StringUtils.isBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) { |
|
|
|
String updateEndDate = pagerQuery.getUpdateEndDate(); |
|
|
|
try { |
|
|
|
Date parseUpdateTime = sdf.parse(v.getUpdateDate()); |
|
|
|
Date endTime = sdf.parse(updateEndDate); |
|
|
|
if (parseUpdateTime.compareTo(endTime) <= 0) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
String updateStartDate = pagerQuery.getUpdateStartDate(); |
|
|
|
String updateEndDate = pagerQuery.getUpdateEndDate(); |
|
|
|
try { |
|
|
|
Date parseUpdateTime = sdf.parse(v.getUpdateDate()); |
|
|
|
Date endTime = sdf.parse(updateEndDate); |
|
|
|
Date startTime = sdf.parse(updateStartDate); |
|
|
|
if (parseUpdateTime.compareTo(endTime) <= 0 && parseUpdateTime.compareTo(startTime) >= 0) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
return records; |
|
|
|
} |
|
|
|
} |
|
|
|