Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 1 year ago
parent
commit
68476d0e47
  1. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java
  2. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java
  3. 160
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  4. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java
  5. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml
  6. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java
  7. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java
  8. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  9. 20
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/voucher/VoucherService.java
  10. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeign.java
  11. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeignFallback.java
  12. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordDto.java
  13. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordVehInit.java
  14. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java
  15. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java
  16. 24
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java
  17. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java
  18. 21
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java
  19. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordService.java
  20. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java
  21. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehService.java
  22. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml
  23. 35
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java
  24. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java
  25. 23
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  26. 167
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  27. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  28. 124
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  29. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  30. 136
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
  31. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml
  32. 4
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionRecordDto.java
  33. 43
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionRecordInit.java
  34. 23
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionRecordVehInit.java
  35. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeOverdueVehVo.java
  36. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/BeCollectionFeign.java
  37. 34
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/becollection/BeCollectionService.java

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java

@ -102,4 +102,8 @@ public interface FinManufacturerBankFeign {
@ResponseBody
public ResultBean listByPayment(@RequestParam("orgPath") String orgPath, @RequestParam("key") String key);
@ApiOperation("根据账号获取银行账户信息")
@GetMapping("/selOneByBankNo")
@ResponseBody
public ResultBean<FinManufacturerBank> selOneByBankNo(@RequestParam("bankAccount") String bankAccount, @RequestParam("useOrgSid") String useOrgSid);
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java

@ -94,4 +94,9 @@ public class FinManufacturerBankFeignFallback implements FinManufacturerBankFeig
public ResultBean listByPayment(String orgPath, String key) {
return null;
}
@Override
public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) {
return null;
}
}

160
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -112,6 +112,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.Predicate;
@ -3684,7 +3686,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//与收款金额作比较:更新认款状态 1未认款/2部分认款/3已认款
confirmation.setPaymentState(3);
baseMapper.updateById(confirmation);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//===========================================
//查询该申请下的所有待审核的款项明细
BigDecimal subscriptionMoneyAll = new BigDecimal("0");
@ -3703,20 +3705,37 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//推送间还认款记录
if (v.getReceivablesName().equals("月还")) {
LoanRepaymentHistory historyEntity = new LoanRepaymentHistory();
historyEntity.setSkdBillNo(finalConfirmation.getBillNo());
historyEntity.setUpdateTime(new DateTime());
historyEntity.setUpdateState("1");
historyEntity.setDataTime(new DateTime());
historyEntity.setBuckle("审核通过");
historyEntity.setBuckleKey("003");
historyEntity.setActualMoney(new BigDecimal(v.getSubscriptionMoney()));
historyEntity.setActualDate(new DateTime());
historyEntity.setReturnWay("间还");
historyEntity.setReturnWayKey("02");
historyEntity.setPlanDetailSid(v.getReceivablesSid());
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(v.getReceivablesSid()).getData();
if (null != planDetails) {
historyEntity.setScheduleSid(planDetails.getScheduleSid());
historyEntity.setSkdBillNo(finalConfirmation.getBillNo());
historyEntity.setUpdateTime(new DateTime());
historyEntity.setUpdateState("1");
historyEntity.setDataTime(new DateTime());
historyEntity.setBuckle("审核通过");
historyEntity.setBuckleKey("003");
historyEntity.setActualMoney(new BigDecimal(v.getSubscriptionMoney()));
try {
Date collDate = sdf.parse(finalConfirmation.getCollectionDate());
historyEntity.setActualDate(collDate);
if (planDetails.getDueDate().compareTo(collDate) >= 0) {
//未逾期
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(collDate);
cal_1.add(Calendar.DAY_OF_MONTH, -1);
historyEntity.setPrepareDate(cal_1.getTime());
} else {
//已逾期
historyEntity.setPrepareDate(new DateTime());
}
} catch (ParseException e) {
e.printStackTrace();
}
historyEntity.setReturnWay("间还");
historyEntity.setReturnWayKey("02");
historyEntity.setPaymentState("待转付");
historyEntity.setPaymentStateKey("001");
}
loanRepaymentHistoryFeign.saveHistoryByEntity(historyEntity);
}
@ -3740,86 +3759,33 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
if (loanFinBank.getReAdvances() == 1) {
LoanRepaymentHistory historyEntity = new LoanRepaymentHistory();
historyEntity.setSkdBillNo(finalConfirmation.getBillNo());
historyEntity.setActualMoney(new BigDecimal(v.getSubscriptionMoney()));
historyEntity.setActualDate(new DateTime());
historyEntity.setReturnWay("间还");
historyEntity.setReturnWayKey("02");
historyEntity.setPaymentState("待转付");
historyEntity.setPaymentStateKey("001");
Date dueDate = planDetails.getDueDate();
if (new Date().compareTo(dueDate) > 0) {
historyEntity.setPrepareDate(new DateTime());
} else {
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(dueDate);
cal_1.add(Calendar.DAY_OF_MONTH, -1);
historyEntity.setPrepareDate(cal_1.getTime());
}
historyEntity.setPrepareDate(new DateTime());
historyEntity.setPlanDetailSid(planSid);
historyEntity.setScheduleSid(planDetails.getScheduleSid());
loanRepaymentHistoryFeign.saveHistoryByEntity(historyEntity);
} else {
BigDecimal paymentMoney = planDetails.getPaymentMoney();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = paymentMoney.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentMoney(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setPayCostTitleKey("007");
jr.setPayCostTitleValue("资方退还垫款");
jr.setOrgSidPath(planDetails.getOrgSidPath());
jr.setUseOrgName(planDetails.getUseOrgName());
jr.setUseOrgSid(planDetails.getUseOrgSid());
jr.setStaffDeptName(planDetails.getDept());
jr.setStaffName(planDetails.getStaffName());
jr.setStaffDeptSid(planDetails.getDeptSid());
jr.setStaffUserSid(planDetails.getSalesUserSid());
finUncollectedReceivablesDetailedJRService.insert(jr);
}
}
}
} else {
LoanRepaymentHistory historyEntity = new LoanRepaymentHistory();
historyEntity.setSkdBillNo(finalConfirmation.getBillNo());
historyEntity.setActualMoney(new BigDecimal(v.getSubscriptionMoney()));
historyEntity.setActualDate(new DateTime());
historyEntity.setReturnWay("间还");
historyEntity.setReturnWayKey("02");
historyEntity.setPaymentState("待转付");
historyEntity.setPaymentStateKey("001");
Date dueDate = planDetails.getDueDate();
if (new Date().compareTo(dueDate) > 0) {
historyEntity.setPrepareDate(new DateTime());
} else {
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(dueDate);
cal_1.add(Calendar.DAY_OF_MONTH, -1);
historyEntity.setPrepareDate(cal_1.getTime());
}
historyEntity.setPrepareDate(new DateTime());
historyEntity.setPlanDetailSid(planSid);
historyEntity.setScheduleSid(planDetails.getScheduleSid());
loanRepaymentHistoryFeign.saveHistoryByEntity(historyEntity);
}
} else {
LoanRepaymentHistory historyEntity = new LoanRepaymentHistory();
historyEntity.setSkdBillNo(finalConfirmation.getBillNo());
historyEntity.setActualMoney(new BigDecimal(v.getSubscriptionMoney()));
historyEntity.setActualDate(new DateTime());
historyEntity.setReturnWay("间还");
historyEntity.setReturnWayKey("02");
historyEntity.setPaymentState("待转付");
historyEntity.setPaymentStateKey("001");
Date dueDate = planDetails.getDueDate();
if (new Date().compareTo(dueDate) > 0) {
historyEntity.setPrepareDate(new DateTime());
} else {
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(dueDate);
cal_1.add(Calendar.DAY_OF_MONTH, -1);
historyEntity.setPrepareDate(cal_1.getTime());
}
historyEntity.setPrepareDate(new DateTime());
historyEntity.setPlanDetailSid(planSid);
historyEntity.setScheduleSid(planDetails.getScheduleSid());
loanRepaymentHistoryFeign.saveHistoryByEntity(historyEntity);
}
}
}
});
@ -4098,8 +4064,12 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsFeign.fetchDetails(receivablesSid).getData();
if (null != data) {
BeanUtil.copyProperties(data, rsk, "sid");
if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
if (StringUtils.isNotBlank(data.getVinNo())) {
if (StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
} else {
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyRsk(receivablesSid);
if (StringUtils.isNotBlank(noReturnMoney)) {
@ -4113,8 +4083,12 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsFeign.fetchDetails(busSid).getData();
if (null != data) {
BeanUtil.copyProperties(data, rsk, "sid");
if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
if (StringUtils.isNotBlank(data.getVinNo())) {
if (StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
} else {
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid);
if (StringUtils.isNotBlank(noReturnMoney)) {
@ -4328,8 +4302,12 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsFeign.fetchDetails(receivablesSid).getData();
if (null != data) {
BeanUtil.copyProperties(data, rsk, "sid");
if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
if (StringUtils.isNotBlank(data.getVinNo())) {
if (StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
} else {
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyRsk(receivablesSid);
if (StringUtils.isNotBlank(noReturnMoney)) {
@ -4343,8 +4321,12 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
LoanRepaymentPlanDetails data = loanRepaymentPlanDetailsFeign.fetchDetails(busSid).getData();
if (null != data) {
BeanUtil.copyProperties(data, rsk, "sid");
if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
if (StringUtils.isNotBlank(data.getVinNo())) {
if (StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVin(data.getVinNo() + "/" + data.getVehMark());
} else {
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid);
if (StringUtils.isNotBlank(noReturnMoney)) {

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java

@ -68,4 +68,6 @@ public interface FinManufacturerBankMapper extends BaseMapper<FinManufacturerBan
IPage<FinManufacturerVo> selAppAccountByOrgSid(IPage<FinManufacturerVo> page, @Param(Constants.WRAPPER) QueryWrapper<AppBusDeliveredPageQuery> qw, @Param("name") String name);
List<BankVoForPayment> listByPayment(@Param("useOrgSid") String useOrgSid, @Param("key") String key);
FinManufacturerBank selOneByBankNo(@Param("bankAccount") String bankAccount, @Param("useOrgSid") String useOrgSid);
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml

@ -93,4 +93,10 @@
where useOrgSid = #{useOrgSid}
and dueBankKey = #{key}
</select>
<select id="selOneByBankNo" resultType="com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank">
select *
from fin_manufacturer_bank
where bankAccount = #{bankAccount}
and useOrgSid = #{useOrgSid}
</select>
</mapper>

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java

@ -110,4 +110,9 @@ public class FinManufacturerBankRest implements FinManufacturerBankFeign {
public ResultBean listByPayment(String orgPath, String key) {
return finManufacturerBankService.listByPayment(orgPath,key);
}
@Override
public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) {
return finManufacturerBankService.selOneByBankNo(bankAccount,useOrgSid);
}
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java

@ -272,4 +272,10 @@ public class FinManufacturerBankService extends MybatisBaseService<FinManufactur
List<BankVoForPayment> list = baseMapper.listByPayment(useOrgSid, key);
return rb.success().setData(list);
}
public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
FinManufacturerBank finManufacturerBank = baseMapper.selOneByBankNo(bankAccount,useOrgSid);
return rb.success().setData(finManufacturerBank);
}
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -288,8 +288,8 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto1.setSummary(m + "月计提");
dto2.setSummary(m + "月计提");
dto1.setSummary(m + "月计提月还");
dto2.setSummary(m + "月计提月还");
dto1.setSubjectNo("1201.02.01");
dto2.setSubjectNo("1201.01.00");
dto1.setDimensionDept(voucherDetail.getDeptCode());
@ -303,7 +303,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
}
newVoucher.setResultDetails(resultDetails);
}
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
// log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
return voucherService.saveVoucher(newVoucher);
}

20
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/voucher/VoucherService.java

@ -86,11 +86,21 @@ public class VoucherService extends FinKingDeeService {
}
m.put("FEXPLANATION", c.getSummary());
m.put("FACCOUNTID", c.getSubjectNo());
m.put("FFLEX5", c.getDimensionDept());
m.put("FFLEX6", c.getDimensionCustom());
m.put("FF100002", c.getBankAccount());
m.put("FDEBIT", c.getDebit());
m.put("FCREDIT", c.getCredit());
if (StringUtils.isNotBlank(c.getDimensionDept())) {
m.put("FFLEX5", c.getDimensionDept());
}
if (StringUtils.isNotBlank(c.getDimensionCustom())) {
m.put("FFLEX6", c.getDimensionCustom());
}
if (StringUtils.isNotBlank(c.getBankAccount())) {
m.put("FF100002", c.getBankAccount());
}
if (StringUtils.isNotBlank(c.getDebit())) {
m.put("FDEBIT", c.getDebit());
}
if (StringUtils.isNotBlank(c.getCredit())) {
m.put("FCREDIT", c.getCredit());
}
voucherDetailMap.add(m);
}
return rb.success().setData(voucherDetailMap);

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeign.java

@ -70,7 +70,7 @@ public interface LoanBeCollectionApplyFeign {
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody LoanBeCollectionApplyDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
@ -79,13 +79,18 @@ public interface LoanBeCollectionApplyFeign {
@ApiOperation("初始化")
@GetMapping("/init")
@ResponseBody
public ResultBean<LoanBeCollectionApplyDetailsVo> init(@RequestParam("saleVehSid") String saleVehSid,@RequestParam("orgPath") String orgPath,@RequestParam("userSid") String userSid);
public ResultBean<LoanBeCollectionApplyDetailsVo> init(@RequestParam("saleVehSid") String saleVehSid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<LoanBeCollectionApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("保存控制状态")
@PostMapping("/saveLockCarState")
@ResponseBody
public ResultBean saveLockCarState(@RequestParam("applySid") String applySid, @RequestParam("saleVehSid") String saleVehSid, @RequestParam("lockCarState") String lockCarState);
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody @Valid SubmitLoanBeCollectionApplyDto dto);

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionapply/LoanBeCollectionApplyFeignFallback.java

@ -77,6 +77,11 @@ public class LoanBeCollectionApplyFeignFallback implements LoanBeCollectionApply
return rb.setMsg("接口anrui-riskcenter/loanbecollectionapply/fetchDetailsBySid无法访问");
}
@Override
public ResultBean saveLockCarState(String applySid, String saleVehSid, String lockCarState) {
return null;
}
@Override
public ResultBean submit(SubmitLoanBeCollectionApplyDto dto) {
return null;

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordDto.java

@ -98,8 +98,8 @@ public class LoanBeCollectionRecordDto implements Dto {
private String useOrgName; // 分公司名称
@ApiModelProperty("组织全路径")
private String orgPath; // 组织全路径
@ApiModelProperty("销售订单车辆sid")
private List<String> saleVehSids; // 销售订单车辆sid
@ApiModelProperty("催收附件")
private List<LoanBeCollectionRecordFile> loanBeCollectionRecordFileList = new ArrayList<>(); // 催收附件
@ApiModelProperty("逾期车辆列表")
private List<LoanBeCollectionRecordVehInit> loanBeCollectionRecordVehInitList;
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordVehInit.java

@ -21,8 +21,14 @@ public class LoanBeCollectionRecordVehInit {
private String custPhone;
@ApiModelProperty("客户及电话")
private String custNameAndPhone;
@ApiModelProperty("实际还款人")
private String reaRepaymentName;
@ApiModelProperty("实际还款人电话")
private String reaRepaymentPhone;
@ApiModelProperty("实际还款人及电话")
private String reaRepaymentNameAndPhone;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java

@ -70,11 +70,13 @@ public class LoanRepaymentPlanDetails extends BaseEntity {
private String orgSidPath;
private String returnWayKey;
private String returnWayKey; //还款方式key(01直还、02间还、03转付)
private String returnWay;
private String actualPerson;
private BigDecimal paymentMoney;
private BigDecimal fund;
private String actualPerson; //实际还款人
private BigDecimal paymentMoney; //公司垫款金额
private BigDecimal fund; //资金占用费
private Integer overdue; //是否曾逾期(0是,1否)
private Integer oweState; //是否转累欠状态(0是,1否)
private Date updateTime; //更新日期
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java

@ -37,6 +37,6 @@ public class LoanTransferPaymentRecord extends BaseEntity {
private String account;
@ApiModelProperty("转付账户账号")
private String accountNumber;
@ApiModelProperty("资方合同号")
private String bankContractNo;
}

24
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java

@ -34,6 +34,7 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.riskcenter.api.loanbecollectionapply.LoanBeCollectionApply;
import com.yxt.anrui.riskcenter.api.loanbecollectionapply.LoanBeCollectionApplyVo;
import org.apache.ibatis.annotations.Update;
import java.util.List;
import java.util.Map;
@ -54,17 +55,20 @@ import java.util.Map;
@Mapper
public interface LoanBeCollectionApplyMapper extends BaseMapper<LoanBeCollectionApply> {
//@Update("update loan_be_collection_apply set name=#{msg} where id=#{id}")
//IPage<LoanBeCollectionApplyVo> voPage(IPage<LoanBeCollectionApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanBeCollectionApply> qw);
IPage<LoanBeCollectionApplyVo> selectPageVo(IPage<LoanBeCollectionApply> page, @Param(Constants.WRAPPER) Wrapper<LoanBeCollectionApply> qw);
List<LoanBeCollectionApplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<LoanBeCollectionApply> qw);
@Select("select * from loan_be_collection_apply")
List<LoanBeCollectionApplyVo> selectListVo();
//@Update("update loan_be_collection_apply set name=#{msg} where id=#{id}")
//IPage<LoanBeCollectionApplyVo> voPage(IPage<LoanBeCollectionApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanBeCollectionApply> qw);
String selectNum(String billNo);
IPage<LoanBeCollectionApplyVo> selectPageVo(IPage<LoanBeCollectionApply> page, @Param(Constants.WRAPPER) Wrapper<LoanBeCollectionApply> qw);
List<LoanBeCollectionApplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<LoanBeCollectionApply> qw);
@Select("select * from loan_be_collection_apply")
List<LoanBeCollectionApplyVo> selectListVo();
String selectNum(String billNo);
int updateFlowFiled(Map<String, Object> map);
@Update("update loan_be_collection_veh set lockCarState = #{lockCarState} where mainSid = #{applySid} and saleVehSid = #{saleVehSid}")
void saveLockCarState(@Param("applySid") String applySid, @Param("saleVehSid") String saleVehSid, @Param("lockCarState") String lockCarState);
}

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java

@ -110,6 +110,13 @@ public class LoanBeCollectionApplyRest implements LoanBeCollectionApplyFeign {
return rb.success().setData(vo);
}
@Override
public ResultBean saveLockCarState(String applySid, String saleVehSid, String lockCarState) {
ResultBean rb = ResultBean.fireFail();
loanBeCollectionApplyService.saveLockCarState(applySid,saleVehSid,lockCarState);
return rb.success();
}
@Override
public ResultBean submit(SubmitLoanBeCollectionApplyDto dto) {
return loanBeCollectionApplyService.submit(dto);

21
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java

@ -236,7 +236,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
}
dto.setBillNo(billNo);
String sid = this.insertByDto(dto);
if (files != null && files.size() > 0){
if (files != null && files.size() > 0) {
for (LoanBeCollectionFileVo file : files) {
LoanFile loanFile = new LoanFile();
loanFile.setLinkSid(sid);
@ -253,7 +253,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
loanBeCollectionVehDetail.setMainSid(sid);
String vehSid = loanBeCollectionVehService.saveOrUpdateDto(loanBeCollectionVehDetail);
List<LoanBeCollectionFileVo> hkxyFiles = loanBeCollectionVehDetail.getHkxyFiles();
if (hkxyFiles != null && hkxyFiles.size() > 0){
if (hkxyFiles != null && hkxyFiles.size() > 0) {
for (LoanBeCollectionFileVo hkxyFile : hkxyFiles) {
LoanFile loanFile = new LoanFile();
loanFile.setLinkSid(vehSid);
@ -270,8 +270,8 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
return sid;
}
this.updateByDto(dto);
loanFileService.delByLinkSidOrType(dtoSid,LoanFileEnum.BECOLLECTIONAPPLY.getAttachType());
if (files != null && files.size() > 0){
loanFileService.delByLinkSidOrType(dtoSid, LoanFileEnum.BECOLLECTIONAPPLY.getAttachType());
if (files != null && files.size() > 0) {
for (LoanBeCollectionFileVo file : files) {
LoanFile loanFile = new LoanFile();
loanFile.setLinkSid(dtoSid);
@ -290,7 +290,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
loanBeCollectionVehDetail.setSid("");
String sid = loanBeCollectionVehService.saveOrUpdateDto(loanBeCollectionVehDetail);
List<LoanBeCollectionFileVo> hkxyFiles = loanBeCollectionVehDetail.getHkxyFiles();
if (hkxyFiles != null && hkxyFiles.size() > 0){
if (hkxyFiles != null && hkxyFiles.size() > 0) {
for (LoanBeCollectionFileVo hkxyFile : hkxyFiles) {
LoanFile loanFile = new LoanFile();
loanFile.setLinkSid(sid);
@ -347,7 +347,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
vo.setCollMeasures(Arrays.asList(collMeasures));
List<LoanFile> loanFiles = loanFileService.selectByLinkSid(sid, LoanFileEnum.BECOLLECTIONAPPLY.getAttachType());
List<LoanBeCollectionFileVo> loanBeCollectionFileVos = new ArrayList<>();
if (loanFiles != null && loanFiles.size() > 0){
if (loanFiles != null && loanFiles.size() > 0) {
for (LoanFile loanFile : loanFiles) {
LoanBeCollectionFileVo loanBeCollectionFileVo = new LoanBeCollectionFileVo();
String filePath = loanFile.getFilePath();
@ -362,7 +362,7 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
for (LoanBeCollectionVehDetailsVo loanBeCollectionVehDetailsVo : loanBeCollectionVehDetailsVos) {
List<LoanFile> loanFiles1 = loanFileService.selectByLinkSid(loanBeCollectionVehDetailsVo.getSid(), LoanFileEnum.BECOLLECTIONVEHHKXY.getAttachType());
List<LoanBeCollectionFileVo> loanBeCollectionFileVos1 = new ArrayList<>();
if (loanFiles1 != null && loanFiles1.size() > 0){
if (loanFiles1 != null && loanFiles1.size() > 0) {
for (LoanFile file : loanFiles1) {
LoanBeCollectionFileVo loanBeCollectionFileVo = new LoanBeCollectionFileVo();
String filePath = file.getFilePath();
@ -722,6 +722,9 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
if (loanBeCollectionApply.getCollMeasure().contains("远程控制")) {
loanBeCollectionVehService.updateByMainSid(businessSid);
}
} else {
//极光推送
loanBeCollectionApply = fetchBySid(businessSid);
@ -769,4 +772,8 @@ public class LoanBeCollectionApplyService extends MybatisBaseService<LoanBeColle
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public void saveLockCarState(String applySid, String saleVehSid, String lockCarState) {
baseMapper.saveLockCarState(applySid, saleVehSid, lockCarState);
}
}

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordService.java

@ -123,15 +123,15 @@ public class LoanBeCollectionRecordService extends MybatisBaseService<LoanBeColl
public void saveOrUpdateDto(LoanBeCollectionRecordDto dto){
String dtoSid = dto.getSid();
List<LoanBeCollectionRecordFile> loanBeCollectionRecordFileList = dto.getLoanBeCollectionRecordFileList();
List<String> saleVehSids = dto.getSaleVehSids();
List<LoanBeCollectionRecordVehInit> loanBeCollectionRecordVehInitList = dto.getLoanBeCollectionRecordVehInitList();
if (StringUtils.isBlank(dtoSid)) {
for (String saleVehSid : saleVehSids) {
for (LoanBeCollectionRecordVehInit loanBeCollectionRecordVehInit : loanBeCollectionRecordVehInitList) {
String orgPath = dto.getOrgPath();
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
dto.setUseOrgName(sysOrganizationVo.getName());
dto.setUseOrgSid(useOrgSid);
dto.setSaleVehSid(saleVehSid);
dto.setSaleVehSid(loanBeCollectionRecordVehInit.getSaleVehSid());
String sid = this.insertByDto(dto);
if (loanBeCollectionRecordFileList.size() > 0){
for (LoanBeCollectionRecordFile loanBeCollectionRecordFile : loanBeCollectionRecordFileList) {
@ -204,6 +204,8 @@ public class LoanBeCollectionRecordService extends MybatisBaseService<LoanBeColl
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(loanBeCollectionRecordVehInit.getSalesOrderSid()).getData();
BusSalesOrderVehicle busSalesOrderVehicle1 = busSalesOrderVehicleFeign.details(loanBeCollectionRecordVehInit.getSaleVehSid()).getData();
loanBeCollectionRecordVehInit.setReaRepaymentNameAndPhone(busSalesOrderVehicle1.getReaRepaymentName() + busSalesOrderVehicle1.getReaRepaymentPhone());
loanBeCollectionRecordVehInit.setReaRepaymentName(busSalesOrderVehicle1.getReaRepaymentName());
loanBeCollectionRecordVehInit.setReaRepaymentPhone(busSalesOrderVehicle1.getReaRepaymentPhone());
//催收记录sid
LoanBeCollectionVehFile loanBeCollectionVehFile1 = new LoanBeCollectionVehFile();
loanBeCollectionVehFile1.setName("催收记录");
@ -237,7 +239,6 @@ public class LoanBeCollectionRecordService extends MybatisBaseService<LoanBeColl
loanBeCollectionVehFile6.setSid(sid);
loanBeCollectionVehFiles.add(loanBeCollectionVehFile6);
loanBeCollectionRecordVehInit.setSids(loanBeCollectionVehFiles);
loanBeCollectionRecordVehInits.add(loanBeCollectionRecordVehInit);
}
loanBeCollectionRecordInit.setLoanBeCollectionRecordVehInitList(loanBeCollectionRecordVehInits);
return loanBeCollectionRecordInit;

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java

@ -30,10 +30,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehDetailsVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.*;
import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVeh;
import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehVo;
@ -70,4 +67,7 @@ public interface LoanBeCollectionVehMapper extends BaseMapper<LoanBeCollectionVe
@Select("select *,customerName as custName,customerPhone as custPhone from loan_be_collection_veh where mainSid = #{sid}")
List<LoanBeCollectionVehDetailsVo> selByMainSid(String sid);
@Update("update loan_be_collection_veh set lockCarState = '待控制' where mainSid = #{businessSid}")
void updateByMainSid(String businessSid);
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehService.java

@ -250,4 +250,8 @@ public class LoanBeCollectionVehService extends MybatisBaseService<LoanBeCollect
}
loanHomevisitInvestigateOtherpeoService.save(loanHomevisitInvestigateOtherpeo);
}
public void updateByMainSid(String businessSid) {
baseMapper.updateByMainSid(businessSid);
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

@ -85,6 +85,7 @@
a1.mobile AS custPhone,
a1.`loanContractNo`,
a1.`bankName`,
a1.borrowerName AS loanName,
a1.vehMark AS carNum,
a1.dueDate AS firstBeDate,
COUNT(a1.sid) AS beOverduePeriod,
@ -99,6 +100,7 @@
lrpd.`loanContractNo`,
lrpd.`vinNo`,
lrpd.`bankName`,
lrpd.borrowerName,
lrpd.dueDate,
lrpd.vehMark,
(

35
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanmonthlyaccrualapply/LoanMonthlyAccrualApplyService.java

@ -21,6 +21,8 @@ import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.BusDeliveredApplyDet
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo;
@ -116,6 +118,9 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService<LoanMonth
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
public ResultBean<LoanMonthlyAccrualApplyInit> accrualInit(String orgPath) {
ResultBean<LoanMonthlyAccrualApplyInit> rb = ResultBean.fireFail();
String orgSidPath = orgPath;
@ -683,9 +688,33 @@ public class LoanMonthlyAccrualApplyService extends MybatisBaseService<LoanMonth
private void pushAccrualVoucher(String businessSid) {
List<LoanMonthlyAccrualRecord> records = loanMonthlyAccrualRecordService.selByMainSid(businessSid);
if (!records.isEmpty()) {
for (LoanMonthlyAccrualRecord v : records) {
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchDetails(v.getRecordSid()).getData();
if (null != planDetails) {
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
String deptSid = planDetails.getDeptSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
String busVinSid = planDetails.getBusVinSid();
BusSalesOrderVehicle orderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
if (null != orderVehicle) {
voucherDetail.setCustomerCode(orderVehicle.getTemporaryNo());
}
voucherDetail.setAmount(planDetails.getDueMoney());
voucherDetails.add(voucherDetail);
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveAccrualVoucher(generalVoucher);
}
}
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java

@ -49,4 +49,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
IPage<RepaymentDetailsListVo> repaymentDetailsList(IPage<LoanRepaymentHistory> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
List<RepaymentStatisticsExportVo> repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
String getMaxUpdateTimeByBankName(@Param("bankName") String bankName);
}

23
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -198,6 +198,8 @@
t.repaidMoney,
t.outstandingMoney,
v.bankBeInter,
pd.overdue as dueOverdue,
pd.updateTime as updateDate,
CASE
WHEN t.repaidMoney = 0 THEN
'01'
@ -223,18 +225,14 @@
AND h.updateState = '1'),0) as repaidMoney
,
IFNULL(
p.dueMoney - (
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
(p.dueMoney - IFNULL((SELECT
SUM(IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS outstandingMoney
),0)),0) AS outstandingMoney
FROM
loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
@ -352,5 +350,16 @@
${ew.sqlSegment}
</where>
</select>
<select id="getMaxUpdateTimeByBankName" resultType="java.lang.String">
SELECT
MAX(h.actualDate)
as updateTime
FROM loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p
ON h.planDetailSid = p.sid
where h.updateState = '1'
AND h.returnWayKey = '01'
AND p.bankName = #{bankName}
</select>
</mapper>

167
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

@ -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);

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java

@ -14,6 +14,7 @@ import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformatio
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
@ -37,4 +38,6 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
List<MonRepayPeriodDetails> periodDetails(String saleVehSid);
List<LoanRepaymentPlanDetails> planList();
int updateTime(@Param("bankName")String bankName,@Param("updateTime") Date updateTime,@Param("useOrgSid") String useOrgSid);
}

124
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsMapper">
<update id="updateTime">
UPDATE loan_repayment_plan_details
SET updateTime = #{updateTime}
WHERE bankName = #{bankName}
and useOrgSid = #{useOrgSid};
</update>
<delete id="deletePlanDetails">
DELETE
FROM loan_repayment_plan_details
@ -12,16 +18,16 @@
from loan_repayment_plan_details
where bankContractNo = #{bankContractNo}
and `period` = #{period}
-- and policyOrOther = '0'
-- and policyOrOther = '0'
</select>
<select id="selBeMoney" resultType="java.lang.String">
SELECT (
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total
FROM `loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
WHERE lrpd.vinNo = #{no}
AND lrpd.period = #{period}
AND lrpd.bankContractNo = #{bankContractNo}
@ -31,69 +37,65 @@
</select>
<select id="details" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.MonRepayDetails">
SELECT
lrpd.useOrgName,
lrpd.dept,
lrpd.staffName,
RIGHT(lrpd.`vinNo`, 8) AS vinNo,
lrpd.`loanContractNo`,
lrpd.`bankName`,
lrpd.bankContractNo,
lrpd.customer,
lrpd.borrowerName,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
SELECT lrpd.useOrgName,
lrpd.dept,
lrpd.staffName,
RIGHT (lrpd.`vinNo`, 8) AS vinNo,
lrpd.`loanContractNo`,
lrpd.`bankName`,
lrpd.bankContractNo,
lrpd.customer,
lrpd.borrowerName,
(
lrpd.`dueMoney` - SUM (IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate
, '%Y-%m-%d')
&lt; CURDATE()
AND lrpd.busVinSid = #{saleVehSid}
GROUP BY lrpd.`sid`
HAVING (notRepaidMoney > 0)
ORDER BY lrpd.period
LIMIT 1
LIMIT 1
</select>
<select id="periodDetails" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.MonRepayPeriodDetails">
SELECT
lrpd.period,
lrpd.dueMoney,
SUM(IFNULL(lrh.actualMoney, 0)) AS receiptMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
SELECT lrpd.period,
lrpd.dueMoney,
SUM(IFNULL(lrh.actualMoney, 0)) AS receiptMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
FROM `loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT saleVehSid,
createTime
FROM loan_be_collection_record
ORDER BY createTime DESC LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.busVinSid = #{saleVehSid}
GROUP BY lrpd.`sid`
@ -102,6 +104,8 @@
</select>
<select id="planList" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
select * from anrui_riskcenter.loan_repayment_plan_details where paymentMoney>0
select *
from anrui_riskcenter.loan_repayment_plan_details
where paymentMoney > 0
</select>
</mapper>

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

@ -111,4 +111,8 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public List<LoanRepaymentPlanDetails> planList() {
return baseMapper.planList();
}
public int updateTime(String bankName, Date updateTime,String useOrgSid) {
return baseMapper.updateTime(bankName,updateTime,useOrgSid);
}
}

136
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loantransferpaymentapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.math.Money;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -9,6 +10,10 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBankFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -48,14 +53,17 @@ import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
@ -88,6 +96,10 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
private FlowTaskFeign flowTaskFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FinPaymentrecordFeign finPaymentrecordFeign;
@Autowired
private FinManufacturerBankFeign finManufacturerBankFeign;
public ResultBean<LoanTransferPaymentApplyInit> paymentInit(String[] sids) {
ResultBean<LoanTransferPaymentApplyInit> rb = ResultBean.fireFail();
@ -584,6 +596,10 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
baseMapper.updateById(apply);
List<LoanTransferPaymentRecord> loanTransferPaymentRecords = loanTransferPaymentRecordService.selByMainSid(businessSid);
if (!loanTransferPaymentRecords.isEmpty()) {
String payFormKey = apply.getPayFormKey(); //01按资方合同编号单笔付款/02按收款账号合并付款
//按照合同号合并付款
Map<String, BigDecimal> map = new HashMap<>();
Set<String> setConOrNumber = new HashSet<>();
for (LoanTransferPaymentRecord applyRecord : loanTransferPaymentRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
@ -591,6 +607,126 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
repaymentHistory.setPaymentState("已转付");
repaymentHistory.setTransferDate(new DateTime());
loanRepaymentHistoryService.updateById(repaymentHistory);
//推送转付还款记录
LoanRepaymentHistory transfer = new LoanRepaymentHistory();
transfer.setScheduleSid(repaymentHistory.getScheduleSid());
transfer.setPlanDetailSid(repaymentHistory.getPlanDetailSid());
transfer.setReturnWay("转付");
transfer.setReturnWayKey("03");
transfer.setActualDate(new Date());
transfer.setDataTime(new DateTime());
transfer.setBuckleKey("001");
transfer.setBuckle("未申请");
transfer.setUpdateState("1");
transfer.setUpdateTime(new DateTime());
BigDecimal money = new BigDecimal(2);
if (null != applyRecord.getTransferPrincipal()) {
money = applyRecord.getTransferPrincipal();
}
if (null != applyRecord.getDefaultInterest()) {
money = applyRecord.getDefaultInterest().add(money);
}
String amount = String.valueOf(money);
transfer.setActualMoney(new BigDecimal("-" + amount));
loanRepaymentHistoryService.insert(transfer);
}
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(applyRecord.getBankContractNo())) {
setConOrNumber.add(applyRecord.getBankContractNo());
}
} else if (payFormKey.equals("02")) {
if (StringUtils.isNotBlank(applyRecord.getAccountNumber())) {
setConOrNumber.add(applyRecord.getAccountNumber());
}
}
}
if (!setConOrNumber.isEmpty()) {
for (String c : setConOrNumber) {
BigDecimal decimal = new BigDecimal(0);
List<LoanTransferPaymentRecord> collect = loanTransferPaymentRecords.stream().filter(new Predicate<LoanTransferPaymentRecord>() {
@Override
public boolean test(LoanTransferPaymentRecord r) {
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(r.getBankContractNo())) {
if (c.equals(r.getBankContractNo())) {
return true;
}
}
} else if (payFormKey.equals("02")) {
if (StringUtils.isNotBlank(r.getAccountNumber())) {
if (c.equals(r.getAccountNumber())) {
return true;
}
}
}
return false;
}
}).collect(Collectors.toList());
for (LoanTransferPaymentRecord p : collect) {
BigDecimal a = new BigDecimal(0);
BigDecimal b = new BigDecimal(0);
if (null != p.getTransferPrincipal()) {
a = p.getTransferPrincipal();
}
if (null != p.getDefaultInterest()) {
b = p.getDefaultInterest();
}
decimal = a.add(b).add(decimal);
}
map.put(c, decimal);
}
if (!map.isEmpty()) {
for (Map.Entry<String, BigDecimal> entry : map.entrySet()) {
FinPaymentrecordDto payDto = new FinPaymentrecordDto();
payDto.setBusSid(apply.getSid());
payDto.setCreateBySid(apply.getCreateBySid());
payDto.setCost(entry.getValue().intValue());
payDto.setAccountsReceive(entry.getValue().intValue());
payDto.setCostTitleKey("008");
payDto.setCostTitleValue("月还");
payDto.setCostTypeKey("006");
payDto.setCostTypeValue("月还代收");
if (StringUtils.isNotBlank(apply.getPayRemarks())) {
payDto.setBusRemarks(apply.getPayRemarks());
}
payDto.setUseOrgSid(apply.getUseOrgSid());
payDto.setCreateOrgSid(apply.getUseOrgSid());
List<LoanTransferPaymentRecord> collect = loanTransferPaymentRecords.stream().filter(new Predicate<LoanTransferPaymentRecord>() {
@Override
public boolean test(LoanTransferPaymentRecord r) {
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(r.getBankContractNo())) {
if (entry.getKey().equals(r.getBankContractNo())) {
return true;
}
}
} else if (payFormKey.equals("02")) {
if (StringUtils.isNotBlank(r.getAccountNumber())) {
if (entry.getKey().equals(r.getAccountNumber())) {
return true;
}
}
}
return false;
}
}).collect(Collectors.toList());
if (!collect.isEmpty()) {
LoanTransferPaymentRecord paymentRecord = collect.get(0);
if (StringUtils.isNotBlank(paymentRecord.getAccountNumber())) {
payDto.setReceiveBankAccount(paymentRecord.getAccountNumber());
FinManufacturerBank bank = finManufacturerBankFeign.selOneByBankNo(paymentRecord.getAccountNumber(), apply.getUseOrgSid()).getData();
if (null != bank) {
if (StringUtils.isNotBlank(bank.getDepositBank())) {
payDto.setReceiveBank(bank.getDepositBank());
}
}
}
if (StringUtils.isNotBlank(paymentRecord.getAccount())) {
payDto.setReceiveCompany(paymentRecord.getAccount());
}
}
finPaymentrecordFeign.save(payDto);
}
}
}
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml

@ -10,9 +10,9 @@
</delete>
<select id="selByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord">
select *
FROM loan_transfer_payment_record
WHERE mainSid = #{mainSid}
select r.*
FROM loan_transfer_payment_record as r
WHERE r.mainSid = #{mainSid}
</select>
<select id="selByBankContractNo"
resultType="com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord">

4
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionRecordDto.java

@ -89,8 +89,8 @@ public class AppBeCollectionRecordDto implements Dto {
private String taskHandMeasuresValue;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("逾期车辆列表")
private List<AppBeCollectionRecordVehInit> appBeCollectionRecordVehInitList;
@ApiModelProperty("催收附件")
private List<String> files = new ArrayList<>();
@ApiModelProperty("销售订单车辆sid")
private List<String> saleVehSids;
}

43
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionRecordInit.java

@ -3,6 +3,7 @@ package com.yxt.anrui.terminal.api.risk.becollection;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
@ -18,4 +19,46 @@ public class AppBeCollectionRecordInit {
private String spouseMobile;
@ApiModelProperty("逾期车辆列表")
private List<AppBeCollectionRecordVehInit> appBeCollectionRecordVehInitList;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("催收方式key")
private String collectionTypeKey;
@ApiModelProperty("催收方式value")
private String collectionTypeValue;
@ApiModelProperty("定位坐标")
private String location;
@ApiModelProperty("定位具体位置")
private String locationStr;
@ApiModelProperty("催收结果key")
private String collectionResultKey;
@ApiModelProperty("催收结果value")
private String collectionResultValue;
@ApiModelProperty("联系人key")
private String contactsKey;
@ApiModelProperty("联系人value")
private String contactsValue;
@ApiModelProperty("逾期原因")
private String beReason;
@ApiModelProperty("是否正常运营key")
private String isNormalOperKey;
@ApiModelProperty("是否正常运营value")
private String isNormalOperValue;
@ApiModelProperty("承诺还款日期")
private String promRepayDate;
@ApiModelProperty("承诺还款金额")
private String promRepayMoney;
@ApiModelProperty("预处理措施key")
private String taskHandMeasuresKey;
@ApiModelProperty("预处理措施value")
private String taskHandMeasuresValue;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("催收附件")
private List<String> files = new ArrayList<>();
@ApiModelProperty("协议书模板下载地址")
private String xysDownLoadUrl = "D:\\anrui\\upload\\template\\协议书模板.pdf";
}

23
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeCollectionRecordVehInit.java

@ -1,6 +1,7 @@
package com.yxt.anrui.terminal.api.risk.becollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.terminal.api.risk.loanhomevisitinvestigate.AppLoanHomeVisitVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -9,18 +10,24 @@ import java.util.Date;
@Data
public class AppBeCollectionRecordVehInit {
@ApiModelProperty("销售订单车辆sid")
private String vinSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String carNum;
@ApiModelProperty("客户及电话")
private String custNameAndPhone;
@ApiModelProperty("实际还款人及电话")
private String reaRepaymentNameAndPhone;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("客户名称")
private String cusName;
@ApiModelProperty("联系电话")
private String cusPhone;
@ApiModelProperty("实际还款人")
private String reaRepaymentName;
@ApiModelProperty("实际还款人电话")
private String reaRepaymentPhone;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("首次逾期日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date firstBeDate;
@ -37,8 +44,8 @@ public class AppBeCollectionRecordVehInit {
private String kpglSid;
@ApiModelProperty("月还明细sid")
private String yhmxSid;
@ApiModelProperty("金融方案sid")
private String jrfaSid;
@ApiModelProperty("家访考察sid")
private String jfkcSid;
@ApiModelProperty("金融方案详情页面")
private AppLoanHomeVisitVo jrfa;
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/AppBeOverdueVehVo.java

@ -38,4 +38,6 @@ public class AppBeOverdueVehVo implements Vo {
private String riskStaffUserName;
@ApiModelProperty("远程控制状态")
private String lockCarState;
@ApiModelProperty("是否显示催收日期")
private Boolean showCs = false;
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/becollection/BeCollectionFeign.java

@ -38,7 +38,7 @@ public interface BeCollectionFeign {
public ResultBean<AppBePadsincereApplyDetailsVo> padsincereDetail(@PathVariable("sid") String sid);
@ApiOperation("初始化实际还款人")
@PostMapping("/initReaRepayment")
@GetMapping("/initReaRepayment")
public ResultBean<AppReaRepaymentVo> initReaRepayment(@RequestParam("saleVehSid") String saleVehSid);
@ApiOperation("维护实际还款人")

34
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/becollection/BeCollectionService.java

@ -433,6 +433,9 @@ public class BeCollectionService {
appBeOverdueVehVo.setBeOverdueMoney(record.getBeOverdueMoney());
appBeOverdueVehVo.setBeOverdueMoneyAndPeriod(record.getBeOverdueMoneyAndPeriod());
appBeOverdueVehVo.setCreateTime(record.getCreateTime());
if (record.getCreateTime() != null){
appBeOverdueVehVo.setShowCs(true);
}
appBeOverdueVehVo.setRiskStaffUserName(record.getRiskStaffUserName());
appBeOverdueVehVo.setLockCarState(record.getLockCarState());
appBeOverdueVehVoList.add(appBeOverdueVehVo);
@ -466,12 +469,15 @@ public class BeCollectionService {
List<AppBeCollectionRecordVehInit> appBeCollectionRecordVehInits = new ArrayList<>();
for (LoanBeCollectionRecordVehInit loanBeCollectionRecordVehInit : loanBeCollectionRecordVehInitList) {
AppBeCollectionRecordVehInit appBeCollectionRecordVehInit = new AppBeCollectionRecordVehInit();
appBeCollectionRecordVehInit.setVinSid(loanBeCollectionRecordVehInit.getSaleVehSid());
appBeCollectionRecordVehInit.setVinNo(loanBeCollectionRecordVehInit.getVinNo());
appBeCollectionRecordVehInit.setCarNum(loanBeCollectionRecordVehInit.getCarNum());
appBeCollectionRecordVehInit.setCustNameAndPhone(loanBeCollectionRecordVehInit.getCustNameAndPhone());
appBeCollectionRecordVehInit.setReaRepaymentNameAndPhone(loanBeCollectionRecordVehInit.getReaRepaymentNameAndPhone());
appBeCollectionRecordVehInit.setLoanContractNo(loanBeCollectionRecordVehInit.getLoanContractNo());
appBeCollectionRecordVehInit.setCusName(loanBeCollectionRecordVehInit.getCustName());
appBeCollectionRecordVehInit.setCusPhone(loanBeCollectionRecordVehInit.getCustPhone());
appBeCollectionRecordVehInit.setReaRepaymentName(loanBeCollectionRecordVehInit.getReaRepaymentName());
appBeCollectionRecordVehInit.setReaRepaymentPhone(loanBeCollectionRecordVehInit.getReaRepaymentPhone());
appBeCollectionRecordVehInit.setBankName(loanBeCollectionRecordVehInit.getBankName());
appBeCollectionRecordVehInit.setLoanName(loanBeCollectionRecordVehInit.getLoanName());
appBeCollectionRecordVehInit.setFirstBeDate(loanBeCollectionRecordVehInit.getFirstBeDate());
appBeCollectionRecordVehInit.setBeOverduePeriod(loanBeCollectionRecordVehInit.getBeOverduePeriod());
appBeCollectionRecordVehInit.setBeOverdueMoney(loanBeCollectionRecordVehInit.getBeOverdueMoney());
@ -479,18 +485,25 @@ public class BeCollectionService {
appBeCollectionRecordVehInit.setCsjlSid(loanBeCollectionRecordVehInit.getSaleVehSid());
List<LoanBeCollectionVehFile> sids = loanBeCollectionRecordVehInit.getSids();
for (LoanBeCollectionVehFile loanBeCollectionVehFile : sids) {
if ("催收记录".equals(loanBeCollectionVehFile.getName())) {
appBeCollectionRecordVehInit.setCsjlSid(loanBeCollectionVehFile.getSid());
}
if ("开票信息".equals(loanBeCollectionVehFile.getName())){
appBeCollectionRecordVehInit.setKpglSid(loanBeCollectionVehFile.getSid());
}
if ("月还明细".equals(loanBeCollectionVehFile.getName())){
appBeCollectionRecordVehInit.setYhmxSid(loanBeCollectionVehFile.getSid());
}
if ("金融方案".equals(loanBeCollectionVehFile.getName())){
appBeCollectionRecordVehInit.setJrfaSid(loanBeCollectionVehFile.getSid());
}
if ("家访考察报告".equals(loanBeCollectionVehFile.getName())){
appBeCollectionRecordVehInit.setJfkcSid(loanBeCollectionVehFile.getSid());
}
if ("金融方案".equals(loanBeCollectionVehFile.getName())) {
LoanSolutions loanSolutions = loanSolutionsFeign.fetchBySid(loanBeCollectionVehFile.getSid()).getData();
CarModelVo finPage1 = commonService.getLoanSolution(loanSolutions.getSalesOrderSid()).getData();
AppLoanHomeVisitVo finPage2 = new AppLoanHomeVisitVo();
BeanUtil.copyProperties(finPage1, finPage2);
appBeCollectionRecordVehInit.setJrfa(finPage2);
}
}
appBeCollectionRecordVehInits.add(appBeCollectionRecordVehInit);
}
@ -524,7 +537,6 @@ public class BeCollectionService {
loanBeCollectionRecordDto.setTaskHandMeasuresKey(dto.getTaskHandMeasuresKey());
loanBeCollectionRecordDto.setTaskHandMeasuresValue(dto.getTaskHandMeasuresValue());
loanBeCollectionRecordDto.setOrgPath(dto.getOrgPath());
loanBeCollectionRecordDto.setSaleVehSids(dto.getSaleVehSids());
List<String> files = dto.getFiles();
List<LoanBeCollectionRecordFile> loanBeCollectionRecordFiles = new ArrayList<>();
if (files != null && files.size() > 0) {
@ -535,6 +547,14 @@ public class BeCollectionService {
}
}
loanBeCollectionRecordDto.setLoanBeCollectionRecordFileList(loanBeCollectionRecordFiles);
List<AppBeCollectionRecordVehInit> appBeCollectionRecordVehInitList = dto.getAppBeCollectionRecordVehInitList();
List<LoanBeCollectionRecordVehInit> loanBeCollectionRecordVehInits = new ArrayList<>();
for (AppBeCollectionRecordVehInit appBeCollectionRecordVehInit : appBeCollectionRecordVehInitList) {
LoanBeCollectionRecordVehInit loanBeCollectionRecordVehInit = new LoanBeCollectionRecordVehInit();
loanBeCollectionRecordVehInit.setSaleVehSid(appBeCollectionRecordVehInit.getVinSid());
loanBeCollectionRecordVehInits.add(loanBeCollectionRecordVehInit);
}
loanBeCollectionRecordDto.setLoanBeCollectionRecordVehInitList(loanBeCollectionRecordVehInits);
loanBeCollectionRecordFeign.save(loanBeCollectionRecordDto);
return rb.success();
}

Loading…
Cancel
Save