Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 2 weeks ago
parent
commit
b032418153
  1. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/SceneCodeEnum.java
  2. 261
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  3. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  4. 33
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java
  5. 12
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeignFallback.java
  6. 19
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportQuery.java
  7. 47
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportVo.java
  8. 25
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/UnUploadVo.java
  9. 2
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java
  10. 22
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.java
  11. 137
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.xml
  12. 41
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java
  13. 161
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java
  14. 20
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/config/DecimalUtil.java
  15. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java
  16. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java
  17. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDto.java
  18. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java
  19. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java
  20. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseCompanyCostVo.java
  21. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java
  22. 345
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  23. 234
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java
  24. 29
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancasecloseapply/LoanCaseCloseApplyService.java
  25. 40
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java
  26. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java
  27. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.java
  28. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.xml
  29. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java
  30. 175
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java
  31. 20
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml
  32. 6152
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hgsp.ftl

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/SceneCodeEnum.java

@ -19,6 +19,8 @@ public enum SceneCodeEnum {
TRANSFER_VOUCHER2("间还月还代付款凭证", "出纳代付款-已垫款(中车类)", "07"), TRANSFER_VOUCHER2("间还月还代付款凭证", "出纳代付款-已垫款(中车类)", "07"),
PADSINCERE_VOUCHER1("垫款付款凭证", "出纳付款-资方本金(月还)", "08"), PADSINCERE_VOUCHER1("垫款付款凭证", "出纳付款-资方本金(月还)", "08"),
PADSINCERE_VOUCHER2("垫款付款凭证", "出纳付款-资方逾期利息", "09"), PADSINCERE_VOUCHER2("垫款付款凭证", "出纳付款-资方逾期利息", "09"),
PADSINCERE_VOUCHER3("垫款付款凭证", "出纳付款-资方本金(月还)", "08-02"),
PADSINCERE_VOUCHER4("垫款付款凭证", "出纳付款-资方逾期利息", "09-02"),
FUND_VOUCHER1("资金占用费收款凭证", "资金占用费出纳确认后", "10"), FUND_VOUCHER1("资金占用费收款凭证", "资金占用费出纳确认后", "10"),
FUND_VOUCHER2("资金占用费收款凭证", "资金占用费出纳确认后-确认收入", "11"), FUND_VOUCHER2("资金占用费收款凭证", "资金占用费出纳确认后-确认收入", "11"),
settle_VOUCHER1("资方结清付款凭证", "资方结清款>0,财务给资方打款-保证金抵顶且保证金>0", "12"), settle_VOUCHER1("资方结清付款凭证", "资方结清款>0,财务给资方打款-保证金抵顶且保证金>0", "12"),

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

@ -4727,11 +4727,13 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
List<Voucher.VoucherResultDetailDto> list3 = new ArrayList<>(); List<Voucher.VoucherResultDetailDto> list3 = new ArrayList<>();
List<Voucher.VoucherResultDetailDto> list4 = new ArrayList<>(); List<Voucher.VoucherResultDetailDto> list4 = new ArrayList<>();
List<Voucher.VoucherResultDetailDto> list5 = new ArrayList<>(); List<Voucher.VoucherResultDetailDto> list5 = new ArrayList<>();
List<Voucher.VoucherResultDetailDto> list6 = new ArrayList<>();
BigDecimal all = BigDecimal.ZERO;//赎回 BigDecimal all = BigDecimal.ZERO;//赎回
BigDecimal all2 = BigDecimal.ZERO;//二次销售 BigDecimal all2 = BigDecimal.ZERO;//二次销售
BigDecimal all3 = BigDecimal.ZERO;//亏损立案 BigDecimal all3 = BigDecimal.ZERO;//亏损立案
BigDecimal all4 = BigDecimal.ZERO;//未交回立案 BigDecimal all4 = BigDecimal.ZERO;//未交回立案
BigDecimal all5 = BigDecimal.ZERO;//执行 BigDecimal all5 = BigDecimal.ZERO;//执行
BigDecimal all6 = BigDecimal.ZERO;//执行
BigDecimal otherMoney = BigDecimal.ZERO; BigDecimal otherMoney = BigDecimal.ZERO;
String payType = ""; String payType = "";
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(finalConfirmation.getCollectionTypeKey(), "payVoucherType").getData(); DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(finalConfirmation.getCollectionTypeKey(), "payVoucherType").getData();
@ -4798,7 +4800,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
} else { } else {
customerNumber = busSalesOrderVehicle.getTemporaryNo(); customerNumber = busSalesOrderVehicle.getTemporaryNo();
} }
if ("4".equals(busSalesOrderVehicle.getRiskState().toString()) || "1".equals(busSalesOrderVehicle.getRiskState().toString()) || "11".equals(busSalesOrderVehicle.getRiskState().toString())) {//赎回中-赎回凭证--交回--转租中 if ("4".equals(busSalesOrderVehicle.getRiskState().toString()) || "1".equals(busSalesOrderVehicle.getRiskState().toString()) || "6".equals(busSalesOrderVehicle.getRiskState().toString())) {//赎回中-赎回凭证--交回--转租中
////营业费用_催收费用 上门催收费用--收回车辆费用(赎回通过后推送的费用) ////营业费用_催收费用 上门催收费用--收回车辆费用(赎回通过后推送的费用)
if ("4".equals(busSalesOrderVehicle.getRiskState().toString()) || "1".equals(busSalesOrderVehicle.getRiskState().toString())){ if ("4".equals(busSalesOrderVehicle.getRiskState().toString()) || "1".equals(busSalesOrderVehicle.getRiskState().toString())){
if ("收回车辆费用".equals(v.getReceivablesName())) { if ("收回车辆费用".equals(v.getReceivablesName())) {
@ -5243,6 +5245,26 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
voucherResultDetailDtoDf2.setDimensionCustom(customerNumber); voucherResultDetailDtoDf2.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf2.setCredit(v.getSubscriptionMoney()); voucherResultDetailDtoDf2.setCredit(v.getSubscriptionMoney());
list2.add(voucherResultDetailDtoDf2); list2.add(voucherResultDetailDtoDf2);
//----资金占有费转收入
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoJf.setSummary("资金占用费转收入");
voucherResultDetailDtoJf.setSubjectNo("2191.05.00");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(v.getSubscriptionMoney());
list2.add(voucherResultDetailDtoJf);
//----资金占有费转收入
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoDf.setSummary("资金占用费转收入");
voucherResultDetailDtoDf.setSubjectNo("6002.01.19");
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf.setCredit(v.getSubscriptionMoney());
list2.add(voucherResultDetailDtoDf);
} }
if ("预计资方结清费用".equals(v.getReceivablesName())) { if ("预计资方结清费用".equals(v.getReceivablesName())) {
@ -6018,6 +6040,226 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
} }
} }
} }
}else if("7".equals(busSalesOrderVehicle.getRiskState().toString())){//处置损失
if ("月还".equals(v.getReceivablesName()) || "资方逾期利息".equals(v.getReceivablesName())) {
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
all6 = all6.add(new BigDecimal(v.getSubscriptionMoney()));
voucherResultDetailDtoDf.setSummary(customerNumber+"亏损收款");
voucherResultDetailDtoDf.setSubjectNo("1201.03.04.01");
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf.setCredit(v.getSubscriptionMoney());
list6.add(voucherResultDetailDtoDf);
if("月还".equals(v.getReceivablesName())){
//推送间还认款记录
LoanRepaymentHistory historyEntity = new LoanRepaymentHistory();
historyEntity.setPlanDetailSid(planSid);
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()));
historyEntity.setReturnWay("间还");
historyEntity.setReturnWayKey("02");
if (null != planDetails.getPaymentMoney()) {
if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 1) {
BigDecimal paymentMoney = planDetails.getPaymentMoney();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = paymentMoney.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentMoney(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
String orderSid = planDetails.getSalesOrderSid();
String isOther = loanRepaymentScheduleFeign.returnBankOrOtherBankByPlanSid(planSid).getData();
String bankSid = "";
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(scheduleSid).getData();
if (isOther.equals("0")) {
if (StringUtils.isNotBlank(schedule.getBankSid())) {
bankSid = schedule.getBankSid();
}
} else if (isOther.equals("1")) {
if (StringUtils.isNotBlank(schedule.getOtherBankSid())) {
bankSid = schedule.getOtherBankSid();
}
}
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
if (loanFinBank.getReAdvances() == 1) {
try {
Date collDate = sdf.parse(finalConfirmation.getCollectionDate());
historyEntity.setActualDate(collDate);
if (planDetails.getDueDate().compareTo(collDate) > 0) {
//未逾期
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(planDetails.getDueDate());
cal_1.add(Calendar.DAY_OF_MONTH, -1);
historyEntity.setPrepareDate(cal_1.getTime());
} else {
//已逾期
historyEntity.setPrepareDate(new DateTime());
}
} catch (ParseException e) {
e.printStackTrace();
}
historyEntity.setPaymentState("待转付");
historyEntity.setPaymentStateKey("001");
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setReveivableMoney(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 if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 0) {
try {
Date collDate = sdf.parse(finalConfirmation.getCollectionDate());
historyEntity.setActualDate(collDate);
if (planDetails.getDueDate().compareTo(collDate) > 0) {
//未逾期
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(planDetails.getDueDate());
cal_1.add(Calendar.DAY_OF_MONTH, -1);
historyEntity.setPrepareDate(cal_1.getTime());
} else {
//已逾期
historyEntity.setPrepareDate(new DateTime());
}
} catch (ParseException e) {
e.printStackTrace();
}
historyEntity.setPaymentState("待转付");
historyEntity.setPaymentStateKey("001");
}
} else {
try {
Date collDate = sdf.parse(finalConfirmation.getCollectionDate());
historyEntity.setActualDate(collDate);
if (planDetails.getDueDate().compareTo(collDate) > 0) {
//未逾期
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(planDetails.getDueDate());
cal_1.add(Calendar.DAY_OF_MONTH, -1);
historyEntity.setPrepareDate(cal_1.getTime());
} else {
//已逾期
historyEntity.setPrepareDate(new DateTime());
}
} catch (ParseException e) {
e.printStackTrace();
}
historyEntity.setPaymentState("待转付");
historyEntity.setPaymentStateKey("001");
}
loanRepaymentHistoryFeign.saveHistoryByEntity(historyEntity);
}else{
if (null != planDetails.getPaymentInterest()) {
if (planDetails.getPaymentInterest().compareTo(BigDecimal.ZERO) == 1) {
BigDecimal paymentInterest = planDetails.getPaymentInterest();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = paymentInterest.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentInterest(subtract);
BigDecimal paymentMoney = planDetails.getPaymentMoney();
BigDecimal subtract2 = paymentMoney.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentMoney(subtract2);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
String orderSid = planDetails.getSalesOrderSid();
String isOther = loanRepaymentScheduleFeign.returnBankOrOtherBankByPlanSid(planSid).getData();
String bankSid = "";
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(scheduleSid).getData();
if (isOther.equals("0")) {
if (StringUtils.isNotBlank(schedule.getBankSid())) {
bankSid = schedule.getBankSid();
}
} else if (isOther.equals("1")) {
if (StringUtils.isNotBlank(schedule.getOtherBankSid())) {
bankSid = schedule.getOtherBankSid();
}
}
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.fetchEntityBySid(bankSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setReveivableMoney(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);
}
}
}
}
}
}
}
if("资金占用费".equals(v.getReceivablesName())){
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf2 = new Voucher.VoucherResultDetailDto();
all6 = all6.add(new BigDecimal(v.getSubscriptionMoney()));
voucherResultDetailDtoDf2.setSummary(customerNumber+"亏损收款");
voucherResultDetailDtoDf2.setSubjectNo("1201.02.03");
//核算部门
voucherResultDetailDtoDf2.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf2.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf2.setCredit(v.getSubscriptionMoney());
list6.add(voucherResultDetailDtoDf2);
//------------------------资金占用费转收入
Voucher.VoucherResultDetailDto voucherResultDetailDtoJfZjzyf = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoJfZjzyf.setSummary("资金占用费转收入");
voucherResultDetailDtoJfZjzyf.setSubjectNo("2191.05.00");
//核算部门
voucherResultDetailDtoJfZjzyf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJfZjzyf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJfZjzyf.setDebit(v.getSubscriptionMoney());
list6.add(voucherResultDetailDtoJfZjzyf);
//资金占用费转收入--其他业务收入_消贷收入_消贷利息
Voucher.VoucherResultDetailDto voucherResultDetailDtoDfZjzyf = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoDfZjzyf.setSummary("资金占用费转收入");
voucherResultDetailDtoDfZjzyf.setSubjectNo("6002.01.19");
//核算部门
voucherResultDetailDtoDfZjzyf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDfZjzyf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDfZjzyf.setCredit(v.getSubscriptionMoney());
list6.add(voucherResultDetailDtoDfZjzyf);
}
} }
} }
@ -6090,6 +6332,18 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
} }
if (all6.compareTo(BigDecimal.ZERO) > 0) {//二次销售出库后收款
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
if (StringUtils.isNotBlank(finalConfirmation.getCollectionBankNum())) {
voucherResultDetailDtoJf.setBankAccount(finalConfirmation.getCollectionBankNum());
}
voucherResultDetailDtoJf.setSubjectNo(payType);
voucherResultDetailDtoJf.setSummary("收款" +finalConfirmation.getPayerName()+ "(" + collectionDate + ")");
voucherResultDetailDtoJf.setDebit(String.valueOf(all6));
list6.add(voucherResultDetailDtoJf);
}
if (!list.isEmpty()) {//赎回收款(风控状态赎回中以及交回推送) if (!list.isEmpty()) {//赎回收款(风控状态赎回中以及交回推送)
voucher.setResultDetails(list); voucher.setResultDetails(list);
finKingDeeFeignRest.saveVoucher(voucher); finKingDeeFeignRest.saveVoucher(voucher);
@ -6111,6 +6365,11 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
voucher.setResultDetails(list5); voucher.setResultDetails(list5);
finKingDeeFeignRest.saveVoucher(voucher); finKingDeeFeignRest.saveVoucher(voucher);
} }
if(!list6.isEmpty()){//执行后法院认款
voucher.setResultDetails(list6);
finKingDeeFeignRest.saveVoucher(voucher);
}
} }
//名义价其他费用推财务 //名义价其他费用推财务

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

@ -1809,6 +1809,18 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) { } else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金"); dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金");
dto1.setSubjectNo("1201.02.03"); dto1.setSubjectNo("1201.02.03");
}else{
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER3.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫付" + voucherDetail.getCustomerName() + "月还款");
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
dto1.setSubjectNo(dictCommonVo.getDictValue());
}
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER4.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金");
dto1.setSubjectNo("1201.03.01");
}
} }
dto1.setDimensionDept(voucherDetail.getDeptCode()); dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode()); dto1.setDimensionCustom(voucherDetail.getCustomerCode());

33
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java

@ -0,0 +1,33 @@
package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@FeignClient(
contextId = "anrui-reportcenter-factoryDailyReport",
name = "anrui-reportcenter",
path = "v1/factoryDailyReport",
fallback = FactoryDaliyReportFeignFallback.class)
public interface FactoryDaliyReportFeign {
@PostMapping("pageList1")
@ResponseBody
ResultBean<FactoryDaliyReportVo> pageList1(@RequestBody PagerQuery<FactoryDaliyReportQuery> pagerQuery);
@PostMapping("pageList")
@ResponseBody
ResultBean<Map<String, Object>> pageList(@RequestBody PagerQuery<FactoryDaliyReportQuery> pagerQuery);
}

12
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@Component
public class FactoryDaliyReportFeignFallback {
}

19
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportQuery.java

@ -0,0 +1,19 @@
package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@Data
public class FactoryDaliyReportQuery implements Query {
private static final long serialVersionUID = 3416520595744127012L;
private String orgPath;
//jt-查集团,syb-事业部,空字符串 分公司
private String type;
}

47
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportVo.java

@ -0,0 +1,47 @@
package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@Data
public class FactoryDaliyReportVo {
@ApiModelProperty("年份")
private String year;
@ApiModelProperty("预提")
private String estimate;
@ApiModelProperty("上传金额")
private String upload;
@ApiModelProperty("调整")
private String adjust;
@ApiModelProperty("未上传")
private UnUploadVo unUpload;
@ApiModelProperty("合计")
@JsonIgnore
private String notUploadMoney;
@ApiModelProperty("返利")
@JsonIgnore
private String unuploaded_rebate;
@ApiModelProperty("费用合计")
@JsonIgnore
private String fee;
@ApiModelProperty("支出")
@JsonIgnore
private String expense_payment;
@ApiModelProperty("待支付")
@JsonIgnore
private String pending_payment;
@ApiModelProperty("抵顶")
@JsonIgnore
private String offset_payment;
private String linkSid;
}

25
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/UnUploadVo.java

@ -0,0 +1,25 @@
package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@Data
public class UnUploadVo {
@ApiModelProperty("合计")
private String total;
@ApiModelProperty("返利")
private String rebate;
@ApiModelProperty("费用合计")
private String fee;
@ApiModelProperty("支出")
private String feeOutlay;
@ApiModelProperty("待支付")
private String feeUnPaid;
@ApiModelProperty("抵顶")
private String feeTopping;
}

2
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java

@ -212,7 +212,7 @@ public class CarsSoldProfitService extends MybatisBaseService<CarsSoldProfitMapp
for (int i = 0; i < scmList.size(); i++) { for (int i = 0; i < scmList.size(); i++) {
ScmVehRebateCarsSoldProfitVo scmVehRebateCarsSoldProfitVo = scmList.get(i); ScmVehRebateCarsSoldProfitVo scmVehRebateCarsSoldProfitVo = scmList.get(i);
CarsSoldProfitRebateDetailsVo carsSoldProfitRebateDetailsVo = new CarsSoldProfitRebateDetailsVo(); CarsSoldProfitRebateDetailsVo carsSoldProfitRebateDetailsVo = new CarsSoldProfitRebateDetailsVo();
carsSoldProfitRebateDetailsVo.setPolicy(scmVehRebateCarsSoldProfitVo.getPolicy()); carsSoldProfitRebateDetailsVo.setPolicySideValue(scmVehRebateCarsSoldProfitVo.getPolicySideValue());
carsSoldProfitRebateDetailsVo.setRebateType(scmVehRebateCarsSoldProfitVo.getRebateTypeValue()); carsSoldProfitRebateDetailsVo.setRebateType(scmVehRebateCarsSoldProfitVo.getRebateTypeValue());
carsSoldProfitRebateDetailsVo.setYearAndMonth(scmVehRebateCarsSoldProfitVo.getPalceGenDate()); carsSoldProfitRebateDetailsVo.setYearAndMonth(scmVehRebateCarsSoldProfitVo.getPalceGenDate());
carsSoldProfitRebateDetailsVo.setRebateName(scmVehRebateCarsSoldProfitVo.getRebateName()); carsSoldProfitRebateDetailsVo.setRebateName(scmVehRebateCarsSoldProfitVo.getRebateName());

22
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.java

@ -0,0 +1,22 @@
package com.yxt.anrui.reportcenter.biz.factoryDailyReport;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@Mapper
public interface FactoryDaliyReportMapper {
List<FactoryDaliyReportVo> selectRecordList(@Param("map") Map<String, Object> map, @Param(Constants.WRAPPER)QueryWrapper<FactoryDaliyReportVo> qw);
int selectRecordCount(@Param(Constants.WRAPPER)QueryWrapper<FactoryDaliyReportVo> qw);
}

137
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.xml

@ -0,0 +1,137 @@
<?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.reportcenter.biz.factoryDailyReport.FactoryDaliyReportMapper">
<select id="selectRecordList" resultType="com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo">
select a.year,
ROUND(SUM(a.estimateRebate), 2) AS estimate,
ROUND(SUM(a.uploadMoney), 2) AS upload,
ROUND(SUM(a.adjustmentMoney), 2) AS adjust,
ROUND(SUM(a.notUploadMoney), 2) AS notUploadMoney,
ROUND(SUM(a.fee), 2) AS fee,
ROUND(SUM(a.expense_payment), 2) AS expense_payment,
ROUND(SUM(a.pending_payment), 2) AS pending_payment,
ROUND(SUM(a.offset_payment), 2) AS offset_payment,
ROUND(SUM(a.remaining_payment), 2) AS remaining_payment,
round(sum(a.unuploaded_rebate),2) as unuploaded_rebate
from (
select LEFT(palceGenDate, 4) AS year,
sum(estimateRebate) estimateRebate,
sum(uploadMoney) uploadMoney,
sum(adjustmentMoney) adjustmentMoney,
sum(estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END,
0)
- IFNULL(uploadMoney, 0) - IFNULL(secondaryUploadMoney, 0)) AS notUploadMoney,
-- 未上传返利金额(核心计算)
SUM(estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END,
0)
- (uploadMoney + secondaryUploadMoney)
) AS unuploaded_rebate,
SUM(onceTreatCost + secondTreatCost + tempTreatCost + expectTreatCost + expectSuppCost +
onceSuppCost +
secondSuppCost + tempSuppCost) as fee,
-- 其中费用支出(待支付费用)
SUM(onceTreatCost + secondTreatCost + tempTreatCost) AS expense_payment,
-- 待支付(预计待支付)
SUM(expectTreatCost) AS pending_payment,
-- 抵顶(预计抵顶+实际抵顶)
SUM(expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost) AS offset_payment,
-- 剩余(未上传合计-费用支出-待支付-抵顶)
SUM(estimateRebate - (uploadMoney + secondaryUploadMoney) -
(onceTreatCost + secondTreatCost + tempTreatCost) -
expectTreatCost -
(expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost)) AS remaining_payment
from anrui_scm.scm_veh_rebate
<where>
${ew.sqlSegment}
</where>
GROUP BY LEFT(palceGenDate, 4)
union all
select LEFT(palceGenDate, 4) AS year,
sum(estimateRebate) estimateRebate,
sum(uploadMoney) uploadMoney,
sum(adjustmentMoney) adjustmentMoney,
sum(estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END,
0)
- IFNULL(uploadMoney, 0) - IFNULL(secondaryUploadMoney, 0)) AS notUploadMoney,
-- 未上传返利金额(核心计算)
SUM(estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END,
0)
- (uploadMoney + secondaryUploadMoney)
) AS unuploaded_rebate,
SUM(onceTreatCost + secondTreatCost + tempTreatCost + expectTreatCost + expectSuppCost +
onceSuppCost +
secondSuppCost + tempSuppCost) as fee,
-- 其中费用支出(待支付费用)
SUM(onceTreatCost + secondTreatCost + tempTreatCost) AS expense_payment,
-- 待支付(预计待支付)
SUM(expectTreatCost) AS pending_payment,
-- 抵顶(预计抵顶+实际抵顶)
SUM(expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost) AS offset_payment,
-- 剩余(未上传合计-费用支出-待支付-抵顶)
SUM(estimateRebate - (uploadMoney + secondaryUploadMoney) -
(onceTreatCost + secondTreatCost + tempTreatCost) -
expectTreatCost -
(expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost)) AS remaining_payment
from anrui_scm.scm_special_rebate
<where>
${ew.sqlSegment}
</where>
GROUP BY LEFT(palceGenDate, 4)
union all
select LEFT(collectionDate, 4) AS year,
sum(estimateRebate) estimateRebate,
sum(uploadMoney) uploadMoney,
sum(adjustmentMoney) adjustmentMoney,
sum(estimateRebate +
IFNULL(adjustmentMoney, 0)
- IFNULL(uploadMoney, 0)) AS notUploadMoney,
-- 未上传返利金额(核心计算)
SUM(estimateRebate +
IFNULL(adjustmentMoney, 0)
- (uploadMoney)
) AS unuploaded_rebate,
0 as fee,
0 AS expense_payment,
0 AS pending_payment,
0 AS offset_payment,
-- 剩余(未上传合计-费用支出-待支付-抵顶)
SUM(estimateRebate - (uploadMoney)) AS remaining_payment
from anrui_scm.scm_collection_rebate
<where>
${ew.sqlSegment}
</where>
GROUP BY LEFT(collectionDate, 4)
) a where a.year != '' and a.year is not null
group by a.year
order by a.year desc
</select>
<select id="selectRecordCount" resultType="int">
SELECT count(distinct a.year) from(
select LEFT(palceGenDate, 4) AS year from anrui_scm.scm_veh_rebate
<where>
${ew.sqlSegment}
</where>
group by year
union all
select LEFT(palceGenDate, 4) AS year from anrui_scm.scm_special_rebate
<where>
${ew.sqlSegment}
</where>
group by year
union all
select LEFT(collectionDate, 4) AS year from anrui_scm.scm_collection_rebate
<where>
${ew.sqlSegment}
</where>
group by year)a where a.year != '' and a.year is not null
</select>
</mapper>

41
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java

@ -0,0 +1,41 @@
package com.yxt.anrui.reportcenter.biz.factoryDailyReport;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportFeign;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportQuery;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@Api(tags = "厂家返利报表")
@RestController
@RequestMapping("v1/factoryDailyReport")
public class FactoryDaliyReportRest implements FactoryDaliyReportFeign {
@Autowired
private FactoryDaliyReportService factoryDaliyReportService;
@Override
public ResultBean<FactoryDaliyReportVo> pageList1(PagerQuery<FactoryDaliyReportQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<FactoryDaliyReportVo> pv = factoryDaliyReportService.pageList1(pagerQuery);
return rb.success().setData(pv);
}
@Override
public ResultBean<Map<String, Object>> pageList(PagerQuery<FactoryDaliyReportQuery> pagerQuery) {
ResultBean<Map<String,Object>> rb = ResultBean.fireFail();
Map<String,Object> map = factoryDaliyReportService.pageList(pagerQuery);
return rb.success().setData(map);
}
}

161
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java

@ -0,0 +1,161 @@
package com.yxt.anrui.reportcenter.biz.factoryDailyReport;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.reportcenter.api.dailyreport.DailyReport;
import com.yxt.anrui.reportcenter.api.dailyreport.DailyReportAppPagerQuery;
import com.yxt.anrui.reportcenter.api.dailyreport.DailyReportListVo;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportQuery;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.UnUploadVo;
import com.yxt.anrui.reportcenter.config.DecimalUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/20
**/
@Service
@Slf4j
public class FactoryDaliyReportService {
@Autowired
private FactoryDaliyReportMapper factoryDaliyReportMapper;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
public PagerVo<FactoryDaliyReportVo> pageList1(PagerQuery<FactoryDaliyReportQuery> pagerQuery) {
long startTime = System.currentTimeMillis(); // 记录开始时间
PagerVo<FactoryDaliyReportVo> page = new PagerVo<>();
long pageNum = pagerQuery.getCurrent();
long pageSize = pagerQuery.getSize();
FactoryDaliyReportQuery query = pagerQuery.getParams();
QueryWrapper<FactoryDaliyReportVo> qw = new QueryWrapper<>();
if (query != null) {
}
Map<String, Object> map = new HashMap<>();
map.put("page", (pageNum - 1) * pageSize);
map.put("size", pageSize);
List<FactoryDaliyReportVo> recordList = factoryDaliyReportMapper.selectRecordList(map, qw);
recordList.removeAll(Collections.singleton(null));
if (!recordList.isEmpty()) {
for (int i = 0; i < recordList.size(); i++) {
FactoryDaliyReportVo factoryDaliyReportVo = recordList.get(i);
UnUploadVo unUploadVo = new UnUploadVo();
unUploadVo.setTotal(factoryDaliyReportVo.getNotUploadMoney());
unUploadVo.setFee(factoryDaliyReportVo.getFee());
unUploadVo.setFeeOutlay(factoryDaliyReportVo.getExpense_payment());
unUploadVo.setFeeTopping(factoryDaliyReportVo.getOffset_payment());
unUploadVo.setRebate(factoryDaliyReportVo.getUnuploaded_rebate());
unUploadVo.setFeeUnPaid(factoryDaliyReportVo.getPending_payment());
factoryDaliyReportVo.setUnUpload(unUploadVo);
}
}
int count = factoryDaliyReportMapper.selectRecordCount(qw);
page.setRecords(recordList);
page.setCurrent(pageNum);
page.setSize(pageSize);
page.setTotal(count);
long pages = (count + pageSize - 1) / pageSize;
page.setPages(pages);
long endTime = System.currentTimeMillis(); // 记录结束时间
long duration = endTime - startTime; // 计算耗时
log.info("集团日报列表接口耗时 {} ms", duration); // 输出日志
return page;
}
public Map<String, Object> pageList(PagerQuery<FactoryDaliyReportQuery> pagerQuery) {
Map<String, Object> reportMap = new HashMap<>();
long pageNum = pagerQuery.getCurrent();
long pageSize = pagerQuery.getSize();
FactoryDaliyReportQuery query = pagerQuery.getParams();
QueryWrapper<FactoryDaliyReportVo> qw = new QueryWrapper<>();
String orgPath = query.getOrgPath();
List<String> orgSidList = Arrays.asList(orgPath.split("/"));
String type = query.getType();
String name = "";
if (StringUtils.isNotBlank(type)) {
if ("syb".equals(type)) {
// 取事业部(前两级)
if (orgSidList.size() >= 2) {
String groupSid = orgSidList.get(0);
String sybSid = orgSidList.get(1);
String orgPathPrefix = groupSid + "/" + sybSid;
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sybSid).getData();
name = sysOrganization.getName();
reportMap.put("linkSid", sybSid);
qw.like("orgPath", orgPathPrefix);
}
} else if ("jt".equals(type)) {
name = "集团";
}
} else {
if (orgSidList.size() >= 3) {
String groupSid = orgSidList.get(0);
String sybSid = orgSidList.get(1);
String fgsSid = orgSidList.get(2);
String orgPathPrefix = groupSid + "/" + sybSid + "/" + fgsSid;
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(fgsSid).getData();
name = sysOrganization.getName();
reportMap.put("linkSid", fgsSid);
qw.like("orgPath", orgPathPrefix);
}
}
reportMap.put("name", name);
Map<String, Object> map = new HashMap<>();
map.put("page", (pageNum - 1) * pageSize);
map.put("size", pageSize);
List<FactoryDaliyReportVo> recordList = factoryDaliyReportMapper.selectRecordList(map, qw);
recordList.removeAll(Collections.singleton(null));
if (!recordList.isEmpty()) {
for (int i = 0; i < recordList.size(); i++) {
FactoryDaliyReportVo factoryDaliyReportVo = recordList.get(i);
factoryDaliyReportVo.setEstimate(DecimalUtil.format(factoryDaliyReportVo.getEstimate()));
factoryDaliyReportVo.setUpload(DecimalUtil.format(factoryDaliyReportVo.getUpload()));
factoryDaliyReportVo.setAdjust(DecimalUtil.format(factoryDaliyReportVo.getAdjust()));
factoryDaliyReportVo.setNotUploadMoney(DecimalUtil.format(factoryDaliyReportVo.getNotUploadMoney()));
factoryDaliyReportVo.setUnuploaded_rebate(DecimalUtil.format(factoryDaliyReportVo.getUnuploaded_rebate()));
factoryDaliyReportVo.setFee(DecimalUtil.format(factoryDaliyReportVo.getFee()));
factoryDaliyReportVo.setExpense_payment(DecimalUtil.format(factoryDaliyReportVo.getExpense_payment()));
factoryDaliyReportVo.setPending_payment(DecimalUtil.format(factoryDaliyReportVo.getPending_payment()));
factoryDaliyReportVo.setOffset_payment(DecimalUtil.format(factoryDaliyReportVo.getOffset_payment()));
UnUploadVo unUploadVo = new UnUploadVo();
unUploadVo.setTotal(factoryDaliyReportVo.getNotUploadMoney());
unUploadVo.setFee(factoryDaliyReportVo.getFee());
unUploadVo.setFeeOutlay(factoryDaliyReportVo.getExpense_payment());
unUploadVo.setFeeTopping(factoryDaliyReportVo.getOffset_payment());
unUploadVo.setRebate(factoryDaliyReportVo.getUnuploaded_rebate());
unUploadVo.setFeeUnPaid(factoryDaliyReportVo.getPending_payment());
factoryDaliyReportVo.setUnUpload(unUploadVo);
if(StringUtils.isBlank(type)){
String orgSid = orgSidList.get(2);
factoryDaliyReportVo.setLinkSid(orgSid+"#"+factoryDaliyReportVo.getYear());
}
}
}
int count = factoryDaliyReportMapper.selectRecordCount(qw);
long pages = (count + pageSize - 1) / pageSize;
reportMap.put("pages", pages);
reportMap.put("total", count);
reportMap.put("size", pageSize);
reportMap.put("current", pageNum);
reportMap.put("records", recordList);
return reportMap;
}
}

20
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/config/DecimalUtil.java

@ -0,0 +1,20 @@
package com.yxt.anrui.reportcenter.config;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/21
**/
public class DecimalUtil {
public static String format(Object obj) {
if (obj == null) return "0.00";
try {
return new BigDecimal(obj.toString()).setScale(2, RoundingMode.HALF_UP).toPlainString();
} catch (Exception e) {
return "0.00";
}
}
}

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApply.java

@ -20,6 +20,8 @@ import java.util.Date;
public class LoanRepurchaseApply extends BaseEntity { public class LoanRepurchaseApply extends BaseEntity {
@ApiModelProperty("销售订单sid") @ApiModelProperty("销售订单sid")
private String salesOrderSid; private String salesOrderSid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("申请日期") @ApiModelProperty("申请日期")
private Date applyDate; private Date applyDate;
@ApiModelProperty("申请部门") @ApiModelProperty("申请部门")
@ -38,6 +40,8 @@ public class LoanRepurchaseApply extends BaseEntity {
private String loanSid; private String loanSid;
@ApiModelProperty("贷款合同编号") @ApiModelProperty("贷款合同编号")
private String loanContractNo; private String loanContractNo;
@ApiModelProperty("资方sid")
private String bankSid;
@ApiModelProperty("资方") @ApiModelProperty("资方")
private String bankName; private String bankName;
@ApiModelProperty("资方合同编号") @ApiModelProperty("资方合同编号")
@ -78,10 +82,6 @@ public class LoanRepurchaseApply extends BaseEntity {
private String orgSidPath; private String orgSidPath;
@ApiModelProperty("回购原因") @ApiModelProperty("回购原因")
private String buybacksReason; private String buybacksReason;
@ApiModelProperty("资方收款账户")
private String bankReceivingAccount;
@ApiModelProperty("资方收款账号")
private String bankAccountNo;
@ApiModelProperty("付款时需备注内容") @ApiModelProperty("付款时需备注内容")
private String payRemarks; private String payRemarks;
} }

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDetailsVo.java

@ -30,7 +30,7 @@ public class LoanRepurchaseApplyDetailsVo implements Vo {
private String taskId; private String taskId;
@ApiModelProperty("实例id") @ApiModelProperty("实例id")
private String instanceId; private String instanceId;
// private LoanRepurchaseSolutionsDetailsssVo solutionsDetailsssVo = new LoanRepurchaseSolutionsDetailsssVo(); // private LoanRepurchaseSolutionsDetailsssVo solutionsDetailsssVo = new LoanRepurchaseSolutionsDetailsssVo();
//主体 //主体
@ApiModelProperty("申请日期") @ApiModelProperty("申请日期")
private String applyDate; private String applyDate;
@ -54,6 +54,8 @@ public class LoanRepurchaseApplyDetailsVo implements Vo {
private String loanSid; private String loanSid;
@ApiModelProperty("贷款合同编号") @ApiModelProperty("贷款合同编号")
private String loanContractNo; private String loanContractNo;
@ApiModelProperty("资方sid")
private String bankSid;
@ApiModelProperty("资方") @ApiModelProperty("资方")
private String bankName; private String bankName;
@ApiModelProperty("资方合同编号") @ApiModelProperty("资方合同编号")
@ -75,10 +77,6 @@ public class LoanRepurchaseApplyDetailsVo implements Vo {
private String amount; private String amount;
@ApiModelProperty("回购原因") @ApiModelProperty("回购原因")
private String buybacksReason; private String buybacksReason;
@ApiModelProperty("资方收款账户")
private String bankReceivingAccount;
@ApiModelProperty("资方收款账号")
private String bankAccountNo;
@ApiModelProperty("付款后需备注内容") @ApiModelProperty("付款后需备注内容")
private String payRemarks; private String payRemarks;
private List<LoanRepurchaseApplyFile> buyfiles = new ArrayList<>(); // 回购情况附件 private List<LoanRepurchaseApplyFile> buyfiles = new ArrayList<>(); // 回购情况附件

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyDto.java

@ -49,6 +49,8 @@ public class LoanRepurchaseApplyDto implements Dto {
private String loanSid; private String loanSid;
@ApiModelProperty("贷款合同编号") @ApiModelProperty("贷款合同编号")
private String loanContractNo; private String loanContractNo;
@ApiModelProperty("资方sid")
private String bankSid;
@ApiModelProperty("资方") @ApiModelProperty("资方")
private String bankName; private String bankName;
@ApiModelProperty("资方合同编号") @ApiModelProperty("资方合同编号")
@ -70,10 +72,6 @@ public class LoanRepurchaseApplyDto implements Dto {
private String amount; private String amount;
@ApiModelProperty("回购原因") @ApiModelProperty("回购原因")
private String buybacksReason; private String buybacksReason;
@ApiModelProperty("资方收款账户")
private String bankReceivingAccount;
@ApiModelProperty("资方收款账号")
private String bankAccountNo;
@ApiModelProperty("付款后需备注内容") @ApiModelProperty("付款后需备注内容")
private String payRemarks; private String payRemarks;
private List<LoanRepurchaseApplyFile> buyfiles = new ArrayList<>(); // 回购情况附件 private List<LoanRepurchaseApplyFile> buyfiles = new ArrayList<>(); // 回购情况附件

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeign.java

@ -69,6 +69,10 @@ public interface LoanRepurchaseApplyFeign {
@ResponseBody @ResponseBody
ResultBean<LoanSettleApplyDetailsVo> settleRepoInit(@RequestBody LoanRepoSettleApplyDetailsQuery query); ResultBean<LoanSettleApplyDetailsVo> settleRepoInit(@RequestBody LoanRepoSettleApplyDetailsQuery query);
@ApiOperation("生成pdf")
@PostMapping("/createPdf")
@ResponseBody
ResultBean<String> createPdf(@RequestParam("sid") String sid, @RequestParam("userName") String userName);
//---------------------流程接口------------------------------- //---------------------流程接口-------------------------------
@ApiOperation("提交") @ApiOperation("提交")

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseApplyFeignFallback.java

@ -48,6 +48,11 @@ public class LoanRepurchaseApplyFeignFallback implements LoanRepurchaseApplyFeig
return null; return null;
} }
@Override
public ResultBean<String> createPdf(String sid, String userName) {
return null;
}
@Override @Override
public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) { public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) {
return null; return null;

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepurchaseapply/LoanRepurchaseCompanyCostVo.java

@ -23,7 +23,7 @@ public class LoanRepurchaseCompanyCostVo {
private String bankOverInterest; private String bankOverInterest;
@ApiModelProperty("公司当期未到期月还") @ApiModelProperty("公司当期未到期月还")
private String companyCurrentNotPrice; private String companyCurrentNotPrice;
@ApiModelProperty("资方未到期金额") @ApiModelProperty("公司未到期金额")
private String bankNotPrice; private String bankNotPrice;
@ApiModelProperty("贷款保证金扣罚金额") @ApiModelProperty("贷款保证金扣罚金额")
private String deductionAmount; private String deductionAmount;

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java

@ -203,12 +203,12 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign {
@Override @Override
public ResultBean pushAdvancesVoucher(String sid, String paySid) { public ResultBean pushAdvancesVoucher(String sid, String paySid) {
return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid); return loanBePadsincereApplyService.pushAdvancesVoucherNew(sid,paySid);
} }
@Override @Override
public ResultBean<RskVoucher> pushAdvancesReturnVoucher(String sid, String paySid) { public ResultBean<RskVoucher> pushAdvancesReturnVoucher(String sid, String paySid) {
return loanBePadsincereApplyService.pushAdvancesReturnVoucher(sid,paySid); return loanBePadsincereApplyService.pushAdvancesReturnVoucherNew(sid,paySid);
} }
@Override @Override

345
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java

@ -1249,6 +1249,172 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
return rb.success(); return rb.success();
} }
public ResultBean pushAdvancesVoucherNew(String sid, String paySid) {
ResultBean rb = ResultBean.fireFail();
List<LoanBePadsincereVeh> records = loanBePadsincereVehService.selByMainSidAndPaySid(sid, paySid);
FinPaymentrecord paymentrecord = finPaymentrecordFeign.fetchBySid(paySid).getData();
if (!records.isEmpty()) {
PaymentVoucher paymentVoucher = new PaymentVoucher();
List<PaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
LoanBePadsincereVeh l = records.get(0);
if (null != l) {
String accountNumber = paymentrecord.getPayBankAccount();
paymentVoucher.setBankAccount(paymentrecord.getPayBankAccount());
String mainSid = l.getMainSid();
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(mainSid);
FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, loanBePadsincereApply.getUseOrgSid()).getData();
if (null != manufacturerBank) {
paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey());
}
String useOrgSid = loanBePadsincereApply.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
paymentVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
PaymentVoucher.PaymentVoucherDetail voucherDetail1 = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail1.setType("贷方");
List<BigDecimal> result = new ArrayList<>();
records.stream().forEach(r -> {
result.add(new BigDecimal(r.getPadMoney()));
});
BigDecimal b = result.stream()
// 使用reduce()聚合函数,实现累加器
.reduce(BigDecimal.ZERO, BigDecimal::add);
voucherDetail1.setAmount(b);
voucherDetail1.setDataTime(new DateTime());
voucherDetails.add(voucherDetail1);
for (LoanBePadsincereVeh v : records) {
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.selOneByBankNoAndBusVinSid(v.getBankContractNo(), v.getSaleVehSid());
if (null != planDetails) {
String bankName = planDetails.getBankName();
String orgCode = "";
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid());
if (null != schedule) {
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
orgCode = schedule.getCwDeptNo();
}
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
String customerNumber = "";
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
}
if("0".equals(busSalesOrderVehicle.getRiskState().toString())){
if (StringUtils.isNotBlank(v.getBankBeMoney())) {
BigDecimal beMoney = new BigDecimal(v.getBankBeMoney());
if (beMoney.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beMoney);
voucherDetails.add(voucherDetail);
}
}
if (StringUtils.isNotBlank(v.getBankBeInter())) {
BigDecimal beInter = new BigDecimal(v.getBankBeInter());
if (beInter.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beInter);
voucherDetails.add(voucherDetail);
}
}
}else{
if (StringUtils.isNotBlank(v.getBankBeMoney())) {
BigDecimal beMoney = new BigDecimal(v.getBankBeMoney());
if (beMoney.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER3.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beMoney);
voucherDetails.add(voucherDetail);
}
}
if (StringUtils.isNotBlank(v.getBankBeInter())) {
BigDecimal beInter = new BigDecimal(v.getBankBeInter());
if (beInter.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER4.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beInter);
voucherDetails.add(voucherDetail);
}
}
}
}
}
paymentVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveAdvancesVoucher(paymentVoucher);
}
return rb.success();
}
public ResultBean<String> bepadsincereCreatePdf(String sid) { public ResultBean<String> bepadsincereCreatePdf(String sid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
String finalPath = ""; String finalPath = "";
@ -1634,6 +1800,174 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
return rb.success(); return rb.success();
} }
public ResultBean<RskVoucher> pushAdvancesReturnVoucherNew(String sid, String paySid) {
ResultBean rb = ResultBean.fireFail();
List<LoanBePadsincereVeh> records = loanBePadsincereVehService.selByMainSidAndPaySid(sid, paySid);
FinPaymentrecord paymentrecord = finPaymentrecordFeign.fetchBySid(paySid).getData();
if (!records.isEmpty()) {
RskPaymentVoucher paymentVoucher = new RskPaymentVoucher();
List<RskPaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
LoanBePadsincereVeh l = records.get(0);
if (null != l) {
String accountNumber = paymentrecord.getPayBankAccount();
paymentVoucher.setBankAccount(paymentrecord.getPayBankAccount());
String mainSid = l.getMainSid();
LoanBePadsincereApply loanBePadsincereApply = fetchBySid(mainSid);
FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, loanBePadsincereApply.getUseOrgSid()).getData();
if (null != manufacturerBank) {
paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey());
}
String useOrgSid = loanBePadsincereApply.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
paymentVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
RskPaymentVoucher.PaymentVoucherDetail voucherDetail1 = new RskPaymentVoucher.PaymentVoucherDetail();
voucherDetail1.setType("贷方");
List<BigDecimal> result = new ArrayList<>();
records.stream().forEach(r -> {
result.add(new BigDecimal(r.getPadMoney()));
});
BigDecimal b = result.stream()
// 使用reduce()聚合函数,实现累加器
.reduce(BigDecimal.ZERO, BigDecimal::add);
voucherDetail1.setAmount(b);
voucherDetail1.setDataTime(new DateTime());
voucherDetails.add(voucherDetail1);
for (LoanBePadsincereVeh v : records) {
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.selOneByBankNoAndBusVinSid(v.getBankContractNo(), v.getSaleVehSid());
if (null != planDetails) {
String bankName = planDetails.getBankName();
String orgCode = "";
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid());
if (null != schedule) {
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
orgCode = schedule.getCwDeptNo();
}
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
String customerNumber = "";
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
}
if("0".equals(busSalesOrderVehicle.getRiskState().toString())){
if (StringUtils.isNotBlank(v.getBankBeMoney())) {
BigDecimal beMoney = new BigDecimal(v.getBankBeMoney());
if (beMoney.compareTo(BigDecimal.ZERO) > 0) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beMoney);
voucherDetails.add(voucherDetail);
}
}
if (StringUtils.isNotBlank(v.getBankBeInter())) {
BigDecimal beInter = new BigDecimal(v.getBankBeInter());
if (beInter.compareTo(BigDecimal.ZERO) > 0) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beInter);
voucherDetails.add(voucherDetail);
}
}
}else{
if (StringUtils.isNotBlank(v.getBankBeMoney())) {
BigDecimal beMoney = new BigDecimal(v.getBankBeMoney());
if (beMoney.compareTo(BigDecimal.ZERO) > 0) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER3.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beMoney);
voucherDetails.add(voucherDetail);
}
}
if (StringUtils.isNotBlank(v.getBankBeInter())) {
BigDecimal beInter = new BigDecimal(v.getBankBeInter());
if (beInter.compareTo(BigDecimal.ZERO) > 0) {
RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail();
voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER4.getCode());
voucherDetail.setType("借方");
if (StringUtils.isNotBlank(bankName)) {
voucherDetail.setBankName(bankName);
}
voucherDetail.setDeptCode(orgCode);
if (StringUtils.isNotBlank(customerNumber)) {
voucherDetail.setCustomerCode(customerNumber);
}
voucherDetail.setAmount(beInter);
voucherDetails.add(voucherDetail);
}
}
}
}
}
paymentVoucher.setVoucherDetails(voucherDetails);
RskVoucher rskVoucher = returnAdvancesVoucher(paymentVoucher);
return rb.success().setData(rskVoucher);
}
return rb.success();
}
public RskVoucher returnAdvancesVoucher(RskPaymentVoucher voucher) { public RskVoucher returnAdvancesVoucher(RskPaymentVoucher voucher) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@ -1657,6 +1991,17 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
} else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) { } else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) {
dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金"); dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金");
dto1.setSubjectNo("1201.02.03"); dto1.setSubjectNo("1201.02.03");
}else {
if(voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER3.getCode())){
dto1.setSummary(voucherDetail.getBankName() + "垫付" + voucherDetail.getCustomerName() + "月还款");
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
dto1.setSubjectNo(dictCommonVo.getDictValue());
}
}else if(voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER4.getCode())){
dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金");
dto1.setSubjectNo("1201.03.01");
}
} }
dto1.setDimensionDept(voucherDetail.getDeptCode()); dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode()); dto1.setDimensionCustom(voucherDetail.getCustomerCode());

234
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java

@ -23,6 +23,7 @@ import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedR
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.fin.api.kingdee.voucher.Voucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -32,6 +33,8 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
@ -145,6 +148,8 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
private LoanBucklePlanHistoryService loanBucklePlanHistoryService; private LoanBucklePlanHistoryService loanBucklePlanHistoryService;
@Autowired @Autowired
private LoanRepaymentScheduleService loanRepaymentScheduleService; private LoanRepaymentScheduleService loanRepaymentScheduleService;
@Autowired
private DictCommonFeign dictCommonFeign;
public PagerVo<LoanBuckleApplyVo> listPage(PagerQuery<LoanBuckleApplyQuery> pq) { public PagerVo<LoanBuckleApplyVo> listPage(PagerQuery<LoanBuckleApplyQuery> pq) {
IPage<LoanBuckleApply> page = PagerUtil.queryToPage(pq); IPage<LoanBuckleApply> page = PagerUtil.queryToPage(pq);
@ -675,7 +680,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> { Future future1 = pool.submit(() -> {
//推送划扣凭证 //推送划扣凭证
pushBuckleVoucher(businessSid); pushBuckleVoucherNew(businessSid);
}); });
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -778,7 +783,10 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) { if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) {
voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney())); voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney()));
} }
voucherDetails.add(voucherDetail); if("0".equals(busSalesOrderVehicle.getRiskState().toString())){
voucherDetails.add(voucherDetail);
}
} }
} }
} }
@ -912,6 +920,228 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
} }
} }
private void pushBuckleVoucherNew(String businessSid) {
List<LoanBuckleApplyRecord> records = loanBuckleApplyRecordService.selByMainSid(businessSid);
if (!records.isEmpty()) {
GeneralVoucher generalVoucher = new GeneralVoucher();//月还划扣
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
Voucher voucher = new Voucher();//直还划扣
List<Voucher.VoucherResultDetailDto> voucherDetails2 = new ArrayList<>();
for (LoanBuckleApplyRecord v : records) {
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(v.getRepaymentHistorySid());
if (null != planDetails) {
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
if("0".equals(busSalesOrderVehicle.getRiskState().toString())){//正常
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
// oweState 是否转累欠状态(0是,1否)
Integer oweState = planDetails.getOweState();
if (oweState == 1) {
//获取收款日期的当月最后一天
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(DateUtil.formatDate(new Date()), formatter);
LocalDate date = localDate.withDayOfMonth(localDate.lengthOfMonth());
Date dueDate = planDetails.getDueDate(); //应还日期
// Date -> LocalDate
LocalDate localDueDate = dueDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
boolean after = localDueDate.isAfter(date);
if (after) {
voucherDetail.setSceneCode("15");
} else {
voucherDetail.setSceneCode("01");
}
} else if (oweState == 0) {
List<FinUncollectedReceivablesDetailedJR> jrList = baseMapper.selFinJrList(planDetails.getSid());
if (null != jrList) {
if (jrList.size() > 0) {
voucherDetail.setSceneCode("03");
} else {
voucherDetail.setSceneCode("02");
}
} else {
voucherDetail.setSceneCode("02");
}
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
String bankName = planDetails.getBankName();
voucherDetail.setBankName(bankName);
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid());
if (null != schedule) {
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
voucherDetail.setDeptCode(schedule.getCwDeptNo());
}
}
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
}
voucherDetail.setAmount(v.getActualMoney());
voucherDetails.add(voucherDetail);
}else{
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(planDetails.getUseOrgSid()).getData();
if (null != organizationVo) {
voucher.setAccountBook(organizationVo.getOrgCode());
voucher.setVoucherNo(organizationVo.getOrgCode());
}
String customerNumber = "";
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != busSalesOrderVehicle && salesOrder != null) {
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
String deptCode = "";
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid());
if (null != schedule) {
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
deptCode = schedule.getCwDeptNo();
}
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
//借方
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
String bankName = planDetails.getBankName();
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(bankName, "investorsCode").getData();
if (null != dictCommonVo) {
voucherResultDetailDtoJf.setSubjectNo(dictCommonVo.getDictValue());
}
voucherResultDetailDtoJf.setSummary(bankName+"划扣");
voucherResultDetailDtoDf.setSummary(bankName+"划扣");
voucherResultDetailDtoDf.setSubjectNo("1201.03.01");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptCode);
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(v.getActualMoney().toString());
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptCode);
//核算客户
voucherResultDetailDtoDf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf.setCredit(v.getActualMoney().toString());
voucherDetails2.add(voucherResultDetailDtoJf);
voucherDetails2.add(voucherResultDetailDtoDf);
}
boolean isTrue = false;
List<FinUncollectedReceivablesDetailedJR> jrList = baseMapper.selFinJrList(planDetails.getSid());
if (null != jrList) {
if (jrList.size() > 0) {
isTrue = true;
}
}
if(isTrue){
//借方
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoJf.setSummary(planDetails.getBankName()+"划扣");
voucherResultDetailDtoJf.setSubjectNo("1133.10.20");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptCode);
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(v.getActualMoney().toString());
voucherDetails2.add(voucherResultDetailDtoJf);
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoDf.setSummary(planDetails.getBankName()+"划扣");
voucherResultDetailDtoDf.setSubjectNo("1201.03.01");
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptCode);
//核算客户
voucherResultDetailDtoDf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf.setDebit(v.getActualMoney().toString());
voucherDetails2.add(voucherResultDetailDtoDf);
}
}
}
}
if(!voucherDetails.isEmpty()){
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveBuckleVoucher(generalVoucher);
}
if(!voucherDetails2.isEmpty()){
voucher.setResultDetails(voucherDetails2);
finKingDeeFeign.saveVoucher(voucher);
}
}
}
public ResultBean revokeProcess(BuckleTaskQuery query) { public ResultBean revokeProcess(BuckleTaskQuery query) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();

29
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancasecloseapply/LoanCaseCloseApplyService.java

@ -581,16 +581,43 @@ public class LoanCaseCloseApplyService extends MybatisBaseService<LoanCaseCloseA
List<String> busVinSidList = loanCaseProgressVehService.selectByMainSid(loanCaseCloseApply.getBusSid()); List<String> busVinSidList = loanCaseProgressVehService.selectByMainSid(loanCaseCloseApply.getBusSid());
busVinSidList.removeAll(Collections.singleton(null)); busVinSidList.removeAll(Collections.singleton(null));
BigDecimal executeExpenseAmount = BigDecimal.ZERO; BigDecimal executeExpenseAmount = BigDecimal.ZERO;
Map<String, BigDecimal> vinAmountMap = new HashMap<>();
if(!busVinSidList.isEmpty()){ if(!busVinSidList.isEmpty()){
LoanCaseExecuteApply loanCaseExecuteApply = loanCaseProgressExecuteService.selectByBusSid(loanCaseCloseApply.getBusSid()); LoanCaseExecuteApply loanCaseExecuteApply = loanCaseProgressExecuteService.selectByBusSid(loanCaseCloseApply.getBusSid());
if(loanCaseExecuteApply != null){ if(loanCaseExecuteApply != null){
executeExpenseAmount= loanCaseExecuteApply.getExecuteExpenseAmount();//预计申请坏账金额 executeExpenseAmount= loanCaseExecuteApply.getExecuteExpenseAmount();//预计申请坏账金额
if(executeExpenseAmount != null){ if(executeExpenseAmount != null){
executeExpenseAmount = executeExpenseAmount.divide(BigDecimal.valueOf(busVinSidList.size()),2, RoundingMode.HALF_UP); int size = busVinSidList.size();
// 四舍五入到2位小数的平均值
BigDecimal roundedAverage = executeExpenseAmount.divide(BigDecimal.valueOf(size), 2, RoundingMode.HALF_UP);
// n台车 × roundedAverage
BigDecimal totalRounded = roundedAverage.multiply(BigDecimal.valueOf(size)).setScale(2, RoundingMode.HALF_UP);
if (executeExpenseAmount.setScale(2, RoundingMode.HALF_UP).compareTo(totalRounded) == 0) {
// 能整除,直接平均
for (String vinSid : busVinSidList) {
vinAmountMap.put(vinSid, roundedAverage);
}
} else {
// 不能整除,最后一台车补差值
BigDecimal totalForNMinusOne = roundedAverage.multiply(BigDecimal.valueOf(size - 1));
BigDecimal lastAmount = executeExpenseAmount.subtract(totalForNMinusOne).setScale(2, RoundingMode.HALF_UP);
for (int i = 0; i < size; i++) {
String vinSid = busVinSidList.get(i);
if (i == size - 1) {
vinAmountMap.put(vinSid, lastAmount);
} else {
vinAmountMap.put(vinSid, roundedAverage);
}
}
}
} }
} }
for (int i = 0; i < busVinSidList.size(); i++) { for (int i = 0; i < busVinSidList.size(); i++) {
String busVinSid = busVinSidList.get(i); String busVinSid = busVinSidList.get(i);
executeExpenseAmount = vinAmountMap.get(busVinSid);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData(); BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
String customerNumber = ""; String customerNumber = "";
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData(); BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();

40
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancaseexecuteapply/LoanCaseExecuteApplyService.java

@ -41,6 +41,7 @@ import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDe
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusVinStateSetQuery;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.voucher.Voucher; import com.yxt.anrui.fin.api.kingdee.voucher.Voucher;
@ -507,6 +508,13 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService<LoanCaseExec
UpdateFlowFieldVo ufVo = resultBean.getData(); UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
List<String> busVinSidList = loanCaseProgressVehService.selectByMainSid(loanCaseExecuteApply.getBusSid());
BusVinStateSetQuery busVinStateSetQuery = new BusVinStateSetQuery();
if(busVinSidList.isEmpty()){
busVinStateSetQuery.setState(12);//执行
busVinStateSetQuery.setBusVinSidList(busVinSidList);
ResultBean resultBean1 = busSalesOrderVehicleFeign.setRiskState(busVinStateSetQuery);
}
try { try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build(); .setNameFormat("demo-pool-%d").build();
@ -556,11 +564,39 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService<LoanCaseExec
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanCaseExecuteApply.getDeptSid()).getData(); SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanCaseExecuteApply.getDeptSid()).getData();
List<String> busVinSidList = loanCaseProgressVehService.selectByMainSid(loanCaseExecuteApply.getBusSid()); List<String> busVinSidList = loanCaseProgressVehService.selectByMainSid(loanCaseExecuteApply.getBusSid());
BigDecimal executeAmountInArear= loanCaseExecuteApply.getExecuteAmountInArear();//其中执行欠款金额 BigDecimal executeAmountInArear= loanCaseExecuteApply.getExecuteAmountInArear();//其中执行欠款金额
if(executeAmountInArear != null){ Map<String, BigDecimal> vinAmountMap = new HashMap<>();
executeAmountInArear = executeAmountInArear.divide(BigDecimal.valueOf(busVinSidList.size()),2, RoundingMode.HALF_UP);
if (executeAmountInArear != null && !busVinSidList.isEmpty()) {
int size = busVinSidList.size();
// 四舍五入到2位小数的平均值
BigDecimal roundedAverage = executeAmountInArear.divide(BigDecimal.valueOf(size), 2, RoundingMode.HALF_UP);
// n台车 × roundedAverage
BigDecimal totalRounded = roundedAverage.multiply(BigDecimal.valueOf(size)).setScale(2, RoundingMode.HALF_UP);
if (executeAmountInArear.setScale(2, RoundingMode.HALF_UP).compareTo(totalRounded) == 0) {
// 能整除,直接平均
for (String vinSid : busVinSidList) {
vinAmountMap.put(vinSid, roundedAverage);
}
} else {
// 不能整除,最后一台车补差值
BigDecimal totalForNMinusOne = roundedAverage.multiply(BigDecimal.valueOf(size - 1));
BigDecimal lastAmount = executeAmountInArear.subtract(totalForNMinusOne).setScale(2, RoundingMode.HALF_UP);
for (int i = 0; i < size; i++) {
String vinSid = busVinSidList.get(i);
if (i == size - 1) {
vinAmountMap.put(vinSid, lastAmount);
} else {
vinAmountMap.put(vinSid, roundedAverage);
}
}
}
} }
for (int i = 0; i < busVinSidList.size(); i++) { for (int i = 0; i < busVinSidList.size(); i++) {
String busVinSid = busVinSidList.get(i); String busVinSid = busVinSidList.get(i);
executeAmountInArear = vinAmountMap.get(busVinSid);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData(); BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
String customerNumber = ""; String customerNumber = "";
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData(); BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java

@ -620,7 +620,8 @@ public class LoanOutboundApplyService extends MybatisBaseService<LoanOutboundApp
if(!busVinSidList.isEmpty()){ if(!busVinSidList.isEmpty()){
busVinStateSetQuery.setBusVinSidList(busVinSidList); busVinStateSetQuery.setBusVinSidList(busVinSidList);
if("客户赎回".equals(loanOutboundApply.getDisposal())){ if("客户赎回".equals(loanOutboundApply.getDisposal())){
busVinStateSetQuery.setState(2); // busVinStateSetQuery.setState(2);
busVinStateSetQuery.setState(0);//修改为正常
ResultBean resultBean1 = busSalesOrderVehicleFeign.setRiskState(busVinStateSetQuery); ResultBean resultBean1 = busSalesOrderVehicleFeign.setRiskState(busVinStateSetQuery);
busVinStateSetQuery.setState(1); busVinStateSetQuery.setState(1);
ResultBean resultBean2 = busSalesOrderVehicleFeign.setFundState(busVinStateSetQuery); ResultBean resultBean2 = busSalesOrderVehicleFeign.setFundState(busVinStateSetQuery);
@ -647,7 +648,8 @@ public class LoanOutboundApplyService extends MybatisBaseService<LoanOutboundApp
} }
}else if("二次转租".equals(loanOutboundApply.getDisposal())){ }else if("二次转租".equals(loanOutboundApply.getDisposal())){
busVinStateSetQuery.setState(3); // busVinStateSetQuery.setState(3);
busVinStateSetQuery.setState(0);//修改为正常
ResultBean resultBean1 = busSalesOrderVehicleFeign.setRiskState(busVinStateSetQuery); ResultBean resultBean1 = busSalesOrderVehicleFeign.setRiskState(busVinStateSetQuery);
//推送金蝶财务其他出库单--二次转租推送的凭证与赎回推送的凭证一样 //推送金蝶财务其他出库单--二次转租推送的凭证与赎回推送的凭证一样
try { try {

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.java

@ -41,4 +41,6 @@ public interface LoanRepurchaseApplyMapper extends BaseMapper<LoanRepurchaseAppl
String selFundAllByBusVinSid(@Param("busVinSid") String busVinSid); String selFundAllByBusVinSid(@Param("busVinSid") String busVinSid);
int updateBus(@Param("busVinSid") String busVinSid); int updateBus(@Param("busVinSid") String busVinSid);
String selectNum(String billNo);
} }

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.xml

@ -204,4 +204,12 @@
AND p.busVinSid = #{busVinSid} AND p.busVinSid = #{busVinSid}
AND p.dueDate &lt;= NOW()) AS a) as b AND p.dueDate &lt;= NOW()) AS a) as b
</select> </select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from loan_repurchase_apply
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
</select>
</mapper> </mapper>

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyRest.java

@ -64,6 +64,13 @@ public class LoanRepurchaseApplyRest implements LoanRepurchaseApplyFeign {
return loanRepurchaseApplyService.settleRepoInit(query); return loanRepurchaseApplyService.settleRepoInit(query);
} }
@Override
public ResultBean<String> createPdf(String sid, String userName) {
ResultBean rb = ResultBean.fireFail();
String pdf = loanRepurchaseApplyService.createPdf(sid, userName);
return rb.success().setData(pdf);
}
@Override @Override
public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) { public ResultBean submitRecordApplication(SubmitRepurchaseDto dto) {
return loanRepurchaseApplyService.submitRecordApplication(dto); return loanRepurchaseApplyService.submitRecordApplication(dto);

175
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java

@ -7,8 +7,14 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.buscenter.api.bussalesorderreturnveh.BusSalesOrderReturnVehDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehPdfVo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo;
import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -18,6 +24,7 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
@ -45,13 +52,18 @@ import com.yxt.anrui.riskcenter.biz.loansettleapply.LoanSettleApplyService;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils;
import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.WordUtils;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery; import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import feign.FeignException; import feign.FeignException;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -64,6 +76,8 @@ import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static java.util.Comparator.comparing;
/** /**
* @description: * @description:
@ -84,8 +98,6 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
@Autowired @Autowired
private FileUploadComponent fileUploadComponent; private FileUploadComponent fileUploadComponent;
@Autowired @Autowired
private LoanSolutionsService loanSolutionsService;
@Autowired
private LoanRepurchaseCompanyCostService loanRepurchaseCompanyCostService; private LoanRepurchaseCompanyCostService loanRepurchaseCompanyCostService;
@Autowired @Autowired
private LoanRepurchaseCostService loanRepurchaseCostService; private LoanRepurchaseCostService loanRepurchaseCostService;
@ -101,6 +113,10 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
private FlowableFeign flowableFeign; private FlowableFeign flowableFeign;
@Autowired @Autowired
private MessageFeign messageFeign; private MessageFeign messageFeign;
@Autowired
private com.yxt.anrui.portal.api.flow.FlowableFeign flowableFeignSp;
@Autowired
private MessageListFeign messageListFeign;
public PagerVo<LoanRepurchaseApplyVo> listPage(PagerQuery<LoanRepurchaseApplyQuery> pq) { public PagerVo<LoanRepurchaseApplyVo> listPage(PagerQuery<LoanRepurchaseApplyQuery> pq) {
IPage<LoanRepurchaseApply> page = PagerUtil.queryToPage(pq); IPage<LoanRepurchaseApply> page = PagerUtil.queryToPage(pq);
@ -413,19 +429,27 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
sid = apply.getSid(); sid = apply.getSid();
apply.setCreateBySid(dto.getUserSid()); apply.setCreateBySid(dto.getUserSid());
apply.setOrgSidPath(dto.getOrgPath()); apply.setOrgSidPath(dto.getOrgPath());
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()); String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
if (orgSidByPath.getSuccess()) { apply.setUseOrgSid(useOrgSid);
String userOrgSid = orgSidByPath.getData(); ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid);
apply.setUseOrgSid(userOrgSid); if (organizationVo.getSuccess()) {
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid); SysOrganizationVo organizationVoData = organizationVo.getData();
if (organizationVo.getSuccess()) { if (null != organizationVoData) {
SysOrganizationVo organizationVoData = organizationVo.getData(); apply.setUseOrgName(organizationVoData.getName());
if (null != organizationVoData) {
apply.setUseOrgName(organizationVoData.getName());
}
} }
} }
apply.setNodeState("待提交"); apply.setNodeState("待提交");
String billNo = "";
String date = DateUtil.format(DateUtil.date(), "yyyyMM");
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
billNo = "HG" + sysOrganizationVo.getOrgCode() + date;
String i = baseMapper.selectNum(billNo);
if (StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
apply.setBillNo(billNo);
baseMapper.insert(apply); baseMapper.insert(apply);
LoanRepurchaseBankCostVo bankCostVo = dto.getBankCostVo(); LoanRepurchaseBankCostVo bankCostVo = dto.getBankCostVo();
LoanRepurchaseCost bankCost = new LoanRepurchaseCost(); LoanRepurchaseCost bankCost = new LoanRepurchaseCost();
@ -1095,4 +1119,131 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
} }
return rb.success().setData(loanSettleApplyDetailsVo); return rb.success().setData(loanSettleApplyDetailsVo);
} }
public String createPdf(String sid, String userName) {
LoanRepurchaseApplyDetailsVo data = fetchDetailsBySid(sid).getData();
LoanRepurchaseApply loanRepurchaseApply = fetchBySid(sid);
Map<String, Object> dataMap = new HashMap<String, Object>();
//分公司
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(data.getOrgPath()).getData();
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
dataMap.put("orgName", sysOrganizationVo.getName());
//创建部门
dataMap.put("deptName", data.getCreateDept());
//创建人
dataMap.put("createName", data.getCreateByName());
//创建日期
dataMap.put("createTime", data.getApplyDate());
//办结日期
dataMap.put("finishTime", DateUtil.formatDate(loanRepurchaseApply.getCloseDate()));
//审批编号
dataMap.put("billNo", loanRepurchaseApply.getBillNo());
dataMap.put("vinNo", data.getVinNo());
dataMap.put("cph", data.getVehMark());
dataMap.put("kh", data.getCustomerName());
dataMap.put("dkr", data.getLoanName());
dataMap.put("dkh", data.getLoanContractNo());
dataMap.put("zf", data.getBankName());
dataMap.put("zfh", data.getBankContractNo());
dataMap.put("jqr", data.getPrepareDate());
dataMap.put("yq", data.getOverdueMonthPrice());
dataMap.put("dq", data.getCurrentNotDuePrice());
dataMap.put("wdq", data.getNotDuePrice());
dataMap.put("bz", loanRepurchaseApply.getRemarks());
LoanRepurchaseBankCostVo bankCostVo = data.getBankCostVo();
dataMap.put("zbzj", bankCostVo.getLoanDeposit());
dataMap.put("dd", bankCostVo.isTopping() ? "是" : "否");
dataMap.put("zyh", bankCostVo.getPrice());
dataMap.put("zdq", bankCostVo.getCurrentNotDuePrice());
dataMap.put("zwdq", bankCostVo.getNotDuePrice());
dataMap.put("zlx", bankCostVo.getBankInterest());
dataMap.put("zmy", bankCostVo.getBankNominalPrice());
dataMap.put("zwy", bankCostVo.getBankContractLiquidated());
dataMap.put("zys", bankCostVo.getBankOtherReceivable());
dataMap.put("zsm", bankCostVo.getOtherReceivableRemarks());
dataMap.put("zjq", bankCostVo.getBankSettlePrice());
dataMap.put("zzo", bankCostVo.getBankAccount());
dataMap.put("zzh", bankCostVo.getAccountName());
LoanRepurchaseCompanyCostVo companyCostVo = data.getCompanyCostVo();
dataMap.put("gbzj", companyCostVo.getLoanDeposit());
dataMap.put("gyh", companyCostVo.getOverduePrice());
dataMap.put("glx", companyCostVo.getPutBankInterest());
dataMap.put("gzf", companyCostVo.getFunfCost());
dataMap.put("gzlx", companyCostVo.getBankOverInterest());
dataMap.put("gdq", companyCostVo.getCompanyCurrentNotPrice());
dataMap.put("gwdq", companyCostVo.getBankNotPrice());
dataMap.put("gfk", companyCostVo.getDeductionAmount());
dataMap.put("gmy", companyCostVo.getCompanyNominalPrice());
dataMap.put("gwy", companyCostVo.getContractLiquidated());
dataMap.put("gfy", companyCostVo.getCompanyOtherPrice());
dataMap.put("gsm", companyCostVo.getOtherCostRemarks());
dataMap.put("ghj", companyCostVo.getSettleAll());
dataMap.put("gjq", companyCostVo.getProfit());
dataMap.put("hg", data.getAmount());
dataMap.put("hgsm", data.getBuybacksReason());
dataMap.put("hgbz", data.getPayRemarks());
//获取审批记录
List<PCHistTaskListAndCommentList> flowRecordVo = flowableFeignSp.flowRecordAndComment(loanRepurchaseApply.getProcInstId(), "1").getData();
List<FinPaymentrecordSourceLCVo> finPaymentrecordSourceLCVos = new ArrayList<>();
for (PCHistTaskListAndCommentList flowTask : flowRecordVo) {
if (flowTask.getFlowableRecordVo() != null) {
Map<String, Object> flowableRecordVo = flowTask.getFlowableRecordVo();
FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo();
List<Map<String, Object>> taskUserInfos = ConstantUtils.getListData(flowableRecordVo, "taskUserInfos");
Map<String, Object> comment = ConstantUtils.getMap(flowableRecordVo, "comment");
String assigneeName = (String) taskUserInfos.get(0).get("assigneeName");
String comment1 = (String) comment.get("comment");
finPaymentrecordSourceLCVo.setName(assigneeName);
finPaymentrecordSourceLCVo.setComment(comment1);
finPaymentrecordSourceLCVo.setSpsj(flowableRecordVo.get("finishTime").toString());
finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo);
} else {
Map<String, Object> processCommentVo = flowTask.getProcessCommentVo();
FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo();
finPaymentrecordSourceLCVo.setName(processCommentVo.get("title").toString());
finPaymentrecordSourceLCVo.setComment(processCommentVo.get("content").toString());
finPaymentrecordSourceLCVo.setSpsj(processCommentVo.get("time").toString());
finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo);
}
}
List<Message> messages = messageFeign.selectByBusinessSid(data.getSid()).getData();
if (messages.size() > 0) {
for (Message message : messages) {
FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo();
String receiverNames = "";
List<MessageList> messageLists = messageListFeign.fetchByMainSid(message.getSid()).getData();
if (messageLists.size() > 0) {
for (MessageList messageList : messageLists) {
receiverNames = receiverNames + messageList.getReceiverName() + ",";
}
}
finPaymentrecordSourceLCVo.setName("系统");
finPaymentrecordSourceLCVo.setComment("抄送 " + receiverNames.substring(0, receiverNames.lastIndexOf(",")));
finPaymentrecordSourceLCVo.setSpsj(DateUtil.format(message.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo);
}
}
finPaymentrecordSourceLCVos.sort(comparing(FinPaymentrecordSourceLCVo::getSpsj));
dataMap.put("lcList", finPaymentrecordSourceLCVos);
//下载人
dataMap.put("downName", userName);
//下载时间
dataMap.put("downTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
//获取模板
//模板路径
String sourcePath = "D:\\anrui\\upload\\template\\";
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
// 生成文件路径
String targetPath = sourcePath + dateStr;
WordUtils.creatWord(dataMap, "hgsp", sourcePath, targetPath, typeName);
//新生成的word路径
String wordPath = targetPath + "\\" + typeName;
//生成出门证文件名
String pdfName = "回购_" + dateStr + seconds + ".pdf";
WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName);
return "/template/" + dateStr + "/" + pdfName;
}
} }

20
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml

@ -21,7 +21,7 @@
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyVo"> <select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyVo">
select la.sid, select la.sid,
la.`state`, la.state,
la.createBySid, la.createBySid,
if(length(la.nodeState) > 0, la.nodeState, '待提交') as nodeState, if(length(la.nodeState) > 0, la.nodeState, '待提交') as nodeState,
la.useOrgName, la.useOrgName,
@ -134,13 +134,13 @@ FROM (
<select id="selectGsYqYh" resultType="java.lang.String"> <select id="selectGsYqYh" resultType="java.lang.String">
select ifnull(sum(ss.yq_total), 0) select ifnull(sum(ss.yq_total), 0)
from (SELECT (lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))) AS yq_total from (SELECT (lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0))) AS yq_total
FROM `loan_repayment_plan_details` lrpd 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 DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt;
#{settingDate} #{settingDate}
AND lrpd.`busVinSid` = #{busVinSid} AND lrpd.busVinSid = #{busVinSid}
GROUP BY lrpd.`sid`) ss GROUP BY lrpd.sid) ss
</select> </select>
<select id="selectGsDqWdq" resultType="java.lang.String"> <select id="selectGsDqWdq" resultType="java.lang.String">
@ -164,13 +164,13 @@ FROM (
FROM FROM
( (
SELECT SELECT
lrpd.`dueMoney`, lrpd.dueMoney,
lrpd.sid lrpd.sid
FROM FROM
loan_repayment_plan_details lrpd loan_repayment_plan_details lrpd
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &gt;= #{settingDate} WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &gt;= #{settingDate}
and DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; DATE_FORMAT(LAST_DAY(#{settingDate}), '%Y-%m-%d') and DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; DATE_FORMAT(LAST_DAY(#{settingDate}), '%Y-%m-%d')
AND lrpd.`busVinSid` = #{busVinSid} AND lrpd.busVinSid = #{busVinSid}
) a ) a
</select> </select>
@ -196,13 +196,13 @@ FROM (
FROM FROM
( (
SELECT SELECT
lrpd.`dueMoney`, lrpd.dueMoney,
lrpd.sid lrpd.sid
FROM FROM
loan_repayment_plan_details lrpd loan_repayment_plan_details lrpd
WHERE WHERE
DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &gt; DATE_FORMAT(LAST_DAY(#{settingDate}), '%Y-%m-%d') DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &gt; DATE_FORMAT(LAST_DAY(#{settingDate}), '%Y-%m-%d')
AND lrpd.`busVinSid` = #{busVinSid} AND lrpd.busVinSid = #{busVinSid}
) a) b ) a) b
</select> </select>
<select id="selvehOverdueCount" resultType="java.lang.Integer"> <select id="selvehOverdueCount" resultType="java.lang.Integer">

6152
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hgsp.ftl

File diff suppressed because it is too large
Loading…
Cancel
Save