|
|
@ -8,6 +8,8 @@ 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.fin.api.finmanufacturerbank.FinManufacturerBank; |
|
|
|
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
@ -21,6 +23,7 @@ import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
@ -491,7 +494,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
qw.ne("h.buckleKey", "002"); |
|
|
|
qw.ne("h.buckleKey", "003"); |
|
|
|
} |
|
|
|
qw.ne("h.returnWayKey","02"); |
|
|
|
qw.ne("h.returnWayKey", "02"); |
|
|
|
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')"). |
|
|
@ -701,6 +704,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
public ResultBean updateState(String orgPath) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
QueryWrapper<LoanRepaymentHistory> qw = new QueryWrapper<>(); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
//=======================
|
|
|
|
String orgSidPath = orgPath; |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
@ -714,6 +718,9 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
qw.ne("h.buckleKey", "003"); |
|
|
|
qw.eq("h.updateState", "0"); |
|
|
|
List<String> histories = baseMapper.selUpdateStateList(qw); |
|
|
|
HashSet<String> bankNames = new HashSet<>(); |
|
|
|
HashSet<String> pSids = new HashSet<>(); |
|
|
|
String useOrgSid = ""; |
|
|
|
if (!histories.isEmpty()) { |
|
|
|
for (String historySid : histories) { |
|
|
|
LoanRepaymentHistory repaymentHistory = fetchBySid(historySid); |
|
|
@ -721,6 +728,41 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
repaymentHistory.setUpdateState("1"); |
|
|
|
repaymentHistory.setUpdateTime(new DateTime()); |
|
|
|
baseMapper.updateById(repaymentHistory); |
|
|
|
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(repaymentHistory.getPlanDetailSid()); |
|
|
|
if (null != planDetails) { |
|
|
|
bankNames.add(planDetails.getBankName()); |
|
|
|
pSids.add(planDetails.getSid()); |
|
|
|
useOrgSid = planDetails.getUseOrgSid(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, String> map = new HashMap<>(); |
|
|
|
if (!bankNames.isEmpty()) { |
|
|
|
for (String bankName : bankNames) { |
|
|
|
String updateTime = baseMapper.getMaxUpdateTimeByBankName(bankName); |
|
|
|
if (StringUtils.isNotBlank(updateTime)) { |
|
|
|
map.put(bankName, updateTime); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (!map.isEmpty()) { |
|
|
|
for (Map.Entry<String, String> entry : map.entrySet()) { |
|
|
|
String updateTime = entry.getValue(); |
|
|
|
try { |
|
|
|
Date u = sdf.parse(updateTime); |
|
|
|
Date today = new Date(); |
|
|
|
String f = sdf.format(today); |
|
|
|
Date date = sdf.parse(f); |
|
|
|
if (u.compareTo(date) == 0) { |
|
|
|
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
|
|
|
|
cal_1.setTime(date); |
|
|
|
cal_1.add(Calendar.DAY_OF_MONTH, -1); |
|
|
|
u = cal_1.getTime(); |
|
|
|
} |
|
|
|
int i = loanRepaymentPlanDetailsService.updateTime(entry.getKey(), u, useOrgSid); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
@ -747,7 +789,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
qw.like("p.orgSidPath", orgSidPath); |
|
|
|
qw.ne("h.buckleKey", "002"); |
|
|
|
qw.ne("h.buckleKey", "003"); |
|
|
|
qw.eq("h.updateState","1"); |
|
|
|
qw.eq("h.updateState", "1"); |
|
|
|
List<LoanRepaymentHistoryVo> histories = baseMapper.selbuckleNewInitList(qw); |
|
|
|
Set<String> planSids = new HashSet<>(); |
|
|
|
if (!histories.isEmpty()) { |
|
|
@ -963,11 +1005,19 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { |
|
|
|
qw.like("a.borrowerName", pagerQuery.getBorrowerName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(pagerQuery.getDueOverdue())) { |
|
|
|
qw.eq("a.dueOverdue", pagerQuery.getDueOverdue()); |
|
|
|
} |
|
|
|
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')" |
|
|
|
); |
|
|
|
String updateStartDate = pagerQuery.getUpdateStartDate(); |
|
|
|
String updateEndDate = pagerQuery.getUpdateEndDate(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(updateStartDate), "date_format (a.updateDate,'%Y-%m-%d') >= date_format('" + updateStartDate + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(updateEndDate), "date_format (a.updateDate,'%Y-%m-%d') <= date_format('" + updateEndDate + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.eq("1", "1"); |
|
|
|
qw.orderBy(true, true, "a.useOrgName") |
|
|
|
.orderBy(true, true, "a.vinNo") |
|
|
@ -978,55 +1028,34 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
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); |
|
|
|
if (StringUtils.isNotBlank(record.getUpdateDate())) { |
|
|
|
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(sdf.format(updateTimeParse)); |
|
|
|
} |
|
|
|
for (String time : updateTimes) { |
|
|
|
Date parseTime = sdf.parse(time); |
|
|
|
if (parseTime.compareTo(dueDateParse) > 0) { |
|
|
|
record.setDueOverdue("0"); |
|
|
|
Date u = sdf.parse(record.getUpdateDate()); |
|
|
|
Date d = sdf.parse(record.getDueDate()); |
|
|
|
if (d.compareTo(u) <= 0) { |
|
|
|
BigDecimal sum = new BigDecimal(2); |
|
|
|
if (StringUtils.isNotBlank(record.getOutstandingMoney())) { |
|
|
|
sum = new BigDecimal(record.getOutstandingMoney()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(record.getFund())) { |
|
|
|
sum = sum.add(new BigDecimal(record.getFund())); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(record.getBankBeInter())) { |
|
|
|
sum = sum.add(new BigDecimal(record.getBankBeInter())); |
|
|
|
} |
|
|
|
if (sum.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
record.setNowOverdue("0"); |
|
|
|
} else { |
|
|
|
record.setNowOverdue("1"); |
|
|
|
} |
|
|
|
} |
|
|
|
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(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
record.setNowOverdue("1"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1034,58 +1063,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen |
|
|
|
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(v.getUpdateDate())) { |
|
|
|
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()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!records.isEmpty()) { |
|
|
|
List<RepaymentStatisticsVo> lastList = this.pageBySubList(records, (int) pq.getSize(), (int) pq.getCurrent()); |
|
|
|
pagerVo.setRecords(lastList); |
|
|
|