Browse Source

Merge remote-tracking branch 'origin/master'

master
God 1 year ago
parent
commit
23ff77f2c8
  1. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java
  2. 8
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml
  3. 321
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  4. 1545
      anrui-base/anrui-base-biz/src/main/resources/ftl/carContract.ftl
  5. 2879
      anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles.ftl
  6. 35
      anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles.ftl
  7. 2819
      anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles_black.ftl
  8. 31
      anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar.ftl
  9. 2817
      anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar_black.ftl
  10. 1074
      anrui-base/anrui-base-biz/src/main/resources/ftl/receiveCar.ftl
  11. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  12. 2
      anrui-riskcenter-ui/src/views/buyback/buybackAdd.vue
  13. 2
      anrui-riskcenter-ui/src/views/buyback/buybackInfo.vue
  14. 25
      anrui-riskcenter-ui/src/views/homevisitpreparation/thehomevisitisready.vue
  15. 8
      anrui-riskcenter-ui/src/views/settle/settleAdd.vue
  16. 4
      anrui-riskcenter-ui/src/views/settle/settleInfo.vue
  17. 2
      anrui-riskcenter-ui/src/views/workFlow/huigouFlow/buybackDaiBan.vue
  18. 2
      anrui-riskcenter-ui/src/views/workFlow/huigouFlow/buybackEdit.vue
  19. 2
      anrui-riskcenter-ui/src/views/workFlow/huigouFlow/buybackYiBan.vue
  20. 4
      anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleDaiBan.vue
  21. 8
      anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleEdit.vue
  22. 4
      anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleYiBan.vue
  23. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanContractVehList.java
  24. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanContractVehQuery.java
  25. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApply.java
  26. 15
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyDetailsQuery.java
  27. 54
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyDetailsVo.java
  28. 47
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyDto.java
  29. 35
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeign.java
  30. 30
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeignFallback.java
  31. 28
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyQuery.java
  32. 36
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyVo.java
  33. 50
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitVehVo.java
  34. 14
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/VehLedgerVo.java
  35. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java
  36. 27
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.java
  37. 109
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.xml
  38. 39
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyRest.java
  39. 399
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyService.java
  40. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitveh/LoanLawsuitVehMapper.java
  41. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitveh/LoanLawsuitVehMapper.xml
  42. 18
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitveh/LoanLawsuitVehService.java
  43. 741
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  44. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml
  45. 58
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java
  46. 14
      anrui-system-ui/src/views/Home/Home.vue

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import org.apache.ibatis.annotations.*;
import java.util.List;
@ -111,4 +112,8 @@ public interface CommonContractMapper extends BaseMapper<CommonContract> {
BusSalesOrder selectByBusSids(String busSid);
CommonContract selectByBusSidss(String busSid);
CrmCustomerTemp selectByCustomerSid(String affiliatedCompanySid);
List<SalesOrderVehicle> selectByOrderSid(String busSid);
}

8
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml

@ -279,4 +279,12 @@
<select id="selectByBusSidss" resultType="com.yxt.anrui.base.api.commoncontract.CommonContract">
select * from common_contract where busSid = #{busSid}
</select>
<select id="selectByCustomerSid" resultType="com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp">
select * from anrui_crm.crm_customer_temp where sid = #{affiliatedCompanySid}
</select>
<select id="selectByOrderSid" resultType="com.yxt.anrui.base.api.commoncontract.SalesOrderVehicle">
select * from anrui_buscenter.bus_sales_order_vehicle where salesOrderSid = #{busSid}
</select>
</mapper>

321
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java

@ -72,6 +72,8 @@ import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.config.DictCommonType;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateFeign;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateQuotationQuery;
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseFeign;
@ -202,6 +204,8 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
private LoanTemplateFeign loanTemplateFeign;
@Autowired
private BaseDistributorService baseDistributorService;
@Autowired
private LoanSolutionsFeign loanSolutionsFeign;
private QueryWrapper<CommonContract> createQueryWrapper(CommonContractQuery query) {
@ -821,7 +825,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String remarks = "";
CommonContract commonContract = baseMapper.selectByBusSidss(dto.getBusSid());
if (commonContract != null) {
String date = DateUtil.format(commonContract.getCreateTime(), "yyyy-MM-dd");
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
@ -836,24 +840,32 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
BaseDistributor baseDistributor = baseDistributorService.fetchBySid(busSalesOrder.getAffiliatedCompanySid());
if (baseDistributor != null) {
map.put("invoiceName", busSalesOrder.getAffiliatedCompany());//开票名称
map.put("invoiceName", baseDistributor.getDisName());//开票名称
map.put("invoiceNo", baseDistributor.getRegistNum());//纳税人识别号
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
}else{
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
} else {
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(busSalesOrder.getAffiliatedCompanySid());
if (crmCustomerTemp != null) {
map.put("invoiceName", crmCustomerTemp.getName());//开票名称
map.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
}
//组装到文档相对应的字段中
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
if (StringUtils.isNotBlank(dto.getCreateOrgName())) {
map.put("createOrgName", dto.getCreateOrgName());
} else {
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
}
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
if ("1".equals(busSalesOrder.getType()) && (StringUtils.isBlank(busSalesOrder.getNowCarUnknownVinNum()) || "0".equals(busSalesOrder.getNowCarUnknownVinNum()))) {
//获取模板
ftl = "existingvehicles";
if (stringList.size() > 0) {
@ -927,7 +939,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String remarks = "";
CommonContract commonContract = baseMapper.selectByBusSidss(dto.getBusSid());
if (commonContract != null) {
String date = DateUtil.format(commonContract.getCreateTime(), "yyyy-MM-dd");
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
@ -942,20 +954,32 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
BaseDistributor baseDistributor = baseDistributorService.fetchBySid(busSalesOrder.getAffiliatedCompanySid());
if (baseDistributor != null) {
map.put("invoiceName", busSalesOrder.getAffiliatedCompany());//开票名称
map.put("invoiceName", baseDistributor.getDisName());//开票名称
map.put("invoiceNo", baseDistributor.getRegistNum());//纳税人识别号
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
} else {
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(busSalesOrder.getAffiliatedCompanySid());
if (crmCustomerTemp != null) {
map.put("invoiceName", crmCustomerTemp.getName());//开票名称
map.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
}
//组装到文档相对应的字段中
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
if (StringUtils.isNotBlank(dto.getCreateOrgName())) {
map.put("createOrgName", dto.getCreateOrgName());
} else {
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
}
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
if ("1".equals(busSalesOrder.getType()) && (StringUtils.isBlank(busSalesOrder.getNowCarUnknownVinNum()) || "0".equals(busSalesOrder.getNowCarUnknownVinNum()))) {
//获取模板
ftl = "existingvehicles";
if (stringList.size() > 0) {
@ -1016,16 +1040,56 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String num = priceInfo.getNumber();
String remarks = "";
String ftl = "";
CommonContract commonContract = baseMapper.selectByBusSidss(dto.getBusSid());
if (commonContract != null) {
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
}
BusSalesOrder busSalesOrder = baseMapper.selectByBusSids(dto.getBusSid());
if (busSalesOrder.getAffiliatedCompanyType() == 0) {
//根据挂靠公司sid查询信息
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
BaseDistributor baseDistributor = baseDistributorService.fetchBySid(busSalesOrder.getAffiliatedCompanySid());
if (baseDistributor != null) {
map.put("invoiceName", baseDistributor.getDisName());//开票名称
map.put("customerName", baseDistributor.getDisName());//开票名称
map.put("invoiceNo", baseDistributor.getRegistNum());//纳税人识别号
map.put("idNo", baseDistributor.getRegistNum());//纳税人识别号
map.put("adds", baseDistributor.getRegistDetailAddress());//户籍地址
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
} else {
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(busSalesOrder.getAffiliatedCompanySid());
if (crmCustomerTemp != null) {
map.put("invoiceName", crmCustomerTemp.getName());//开票名称
map.put("customerName", crmCustomerTemp.getName());//开票名称
map.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
map.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号
map.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
}
map.put("createOrgName", "");
// 涉及高低开票的,需要打印两套合同,一套按照成交价打印(记账用),一套为价格空白的合同(开票用)
if ("1".equals(dto.getDiscountKey())) {
// 现车
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
if ("1".equals(busSalesOrder.getType()) && (StringUtils.isBlank(busSalesOrder.getNowCarUnknownVinNum()) || "0".equals(busSalesOrder.getNowCarUnknownVinNum()))) {
//获取模板
ftl = "existingvehicles_black";
AppOrderModelInfoVo orderModelInfoVo = appOrderDetailsVo.getModelInfo();
List<String> stringList = orderModelInfoVo.getOrderVinList();
if (stringList.size() > 0) {
remarks = "数量" + num + "台,单台成交价: 元。车架号:" + String.join("、", stringList);
// remarks = "数量" + num + "台,单台成交价: 元。车架号:" + String.join("、", stringList);
remarks = "数量" + num + "台,单台成交价: 元。";
} else {
remarks = "数量" + num + "台,单台成交价: 元。";
}
@ -1036,7 +1100,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
remarks = "数量" + num + "台,单台成交价: 元。";
}
map.put("remarks", remarks);
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl2/" + ftl + ".ftl");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
@ -1066,16 +1130,56 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String num = priceInfo.getNumber();
String remarks = "";
String ftl = "";
CommonContract commonContract = baseMapper.selectByBusSidss(dto.getBusSid());
if (commonContract != null) {
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
}
BusSalesOrder busSalesOrder = baseMapper.selectByBusSids(dto.getBusSid());
if (busSalesOrder.getAffiliatedCompanyType() == 0) {
//根据挂靠公司sid查询信息
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
BaseDistributor baseDistributor = baseDistributorService.fetchBySid(busSalesOrder.getAffiliatedCompanySid());
if (baseDistributor != null) {
map.put("invoiceName", baseDistributor.getDisName());//开票名称
map.put("customerName", baseDistributor.getDisName());//开票名称
map.put("invoiceNo", baseDistributor.getRegistNum());//纳税人识别号
map.put("idNo", baseDistributor.getRegistNum());//纳税人识别号
map.put("adds", baseDistributor.getRegistDetailAddress());//户籍地址
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
} else {
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(busSalesOrder.getAffiliatedCompanySid());
if (crmCustomerTemp != null) {
map.put("invoiceName", crmCustomerTemp.getName());//开票名称
map.put("customerName", crmCustomerTemp.getName());//开票名称
map.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
map.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号
map.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
}
}
map.put("invoiceType", busSalesOrder.getBillingType());//开票类型
}
map.put("createOrgName", "");
// 涉及高低开票的,需要打印两套合同,一套按照成交价打印(记账用),一套为价格空白的合同(开票用)
if ("1".equals(dto.getDiscountKey())) {
// 现车
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
if ("1".equals(busSalesOrder.getType()) && (StringUtils.isBlank(busSalesOrder.getNowCarUnknownVinNum()) || "0".equals(busSalesOrder.getNowCarUnknownVinNum()))) {
//获取模板
ftl = "existingvehicles_black2";
ftl = "existingvehicles_black";
AppOrderModelInfoVo orderModelInfoVo = appOrderDetailsVo.getModelInfo();
List<String> stringList = orderModelInfoVo.getOrderVinList();
if (stringList.size() > 0) {
remarks = "数量" + num + "台,单台成交价: 元。车架号:" + String.join("、", stringList);
// remarks = "数量" + num + "台,单台成交价: 元。车架号:" + String.join("、", stringList);
remarks = "数量" + num + "台,单台成交价: 元。";
} else {
remarks = "数量" + num + "台,单台成交价: 元。";
}
@ -1086,7 +1190,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
remarks = "数量" + num + "台,单台成交价: 元。";
}
map.put("remarks", remarks);
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl2/" + ftl + ".ftl");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
@ -1106,16 +1210,27 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
return url;
}
private String getReceiveCar(Map<String, Object> map, AppOrderDetailsVo appOrderDetailsVo) {
private String getReceiveCar(PrintConfirmDto dto, Map<String, Object> map, AppOrderDetailsVo appOrderDetailsVo) {
String url = "";
//查询销售订单的现车
AppOrderModelInfoVo orderModelInfoVo = appOrderDetailsVo.getModelInfo();
List<String> stringList = orderModelInfoVo.getVinList();
/*if (stringList.size() > 0) {
map.put("vinNo", String.join(",", stringList));
}*/
ResultBean<CrmCustomerTempVo> crmResultBean = crmCustomerTempFeign.fetchSid(appOrderDetailsVo.getCustomerSid());
CrmCustomerTempVo crmCustomerTempVo = crmResultBean.getData();
String idNo = crmCustomerTempVo.getIDNumber();
map.put("customerName", appOrderDetailsVo.getName());
map.put("idNo", idNo);
if (StringUtils.isNotBlank(dto.getCreateOrgName())) {
map.put("createOrgName", dto.getCreateOrgName());
} else {
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
}
String ftl = "receiveCar";
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl2/" + ftl + ".ftl");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
@ -1237,10 +1352,39 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
private String getCarContract(PrintConfirmDto dto, Map<String, Object> map, AppOrderDetailsVo appOrderDetailsVo) {
String url = "";
// map.put("createDate", DateUtil.today());
BusSalesOrder busSalesOrder = baseMapper.selectByBusSids(dto.getBusSid());
if (busSalesOrder != null) {
map.put("Yf", busSalesOrder.getCustomerName());
if (busSalesOrder.getAffiliatedCompanyType() == 0) {
//根据挂靠公司sid查询信息
if (StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())) {
BaseDistributor baseDistributor = baseDistributorService.fetchBySid(busSalesOrder.getAffiliatedCompanySid());
if (baseDistributor != null) {
map.put("invoiceName", baseDistributor.getDisName());//开票名称
}
}
}
}
map.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(dto.getCreateOrgName())) {
map.put("createOrgName", dto.getCreateOrgName());
} else {
if (StringUtils.isNotBlank(appOrderDetailsVo.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(appOrderDetailsVo.getUseOrgSid(), appOrderDetailsVo.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
}
CommonContract commonContract = baseMapper.selectByBusSidss(dto.getBusSid());
if (commonContract != null) {
String date =DateUtil.today();
map.put("date", date);
}
List<CarContractListVo> carContractListVos = new ArrayList<>();
if (dto != null) {
List<SalesOrderVehicle> salesOrderVehicles = dto.getSalesOrderVehicles();
List<SalesOrderVehicle> salesOrderVehicles = baseMapper.selectByOrderSid(dto.getBusSid());
salesOrderVehicles.removeAll(Collections.singleton(null));
for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(salesOrderVehicle.getLinkSid());
@ -1263,7 +1407,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
map.put("carLists", carContractListVos);
}
String ftl = "carContract";
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl2/" + ftl + ".ftl");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
@ -2080,12 +2224,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String mobile = appOrderDetailsVo.getPhone();
//根据客户sid查询客户的身份证号
sid = appOrderDetailsVo.getCustomerSid();
ResultBean<CrmCustomerTempVo> crmResultBean = crmCustomerTempFeign.fetchSid(sid);
if (!crmResultBean.getSuccess()) {
return rb.setMsg(crmResultBean.getMsg());
}
CrmCustomerTempVo crmCustomerTempVo = crmResultBean.getData();
String idNo = crmCustomerTempVo.getIDNumber();
//查询销售订单的车型信息
AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo();
//根据车型sid查询车型的全称
@ -2194,7 +2333,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
modelAllName.append("、").append(baseModelConfig.getTireCover());
}
StringBuilder modelAllName2 = new StringBuilder();
modelAllName2.append("\t");
modelAllName2.append("\t\t");
//驾驶室
if (StringUtils.isNotBlank(baseModelConfig.getSpecification()) && !"-".equals(baseModelConfig.getSpecification())) {
modelAllName2.append(baseModelConfig.getSpecification());
@ -2267,9 +2406,16 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
AppOrderDiscountListVo vv = discountList.get(iii);
String discountName = vv.getDiscountName();
if (iii == discountList.size() - 1) {
discountDetail = discountDetail + "价值" + vv.getPrice() + "元" + discountName + vv.getNumber() + "份(每份包含" + vv.getDiscountExplain() + ")。";
discountDetail = discountDetail + "价值" + vv.getPrice() + "元" + discountName + vv.getNumber() + "份";
if (StringUtils.isNotBlank(vv.getDiscountExplain())) {
discountDetail = discountDetail + "(每份包含" + vv.getDiscountExplain() + ")。";
}
} else {
discountDetail = discountDetail + "价值" + vv.getPrice() + "元" + discountName + vv.getNumber() + "份(每份包含" + vv.getDiscountExplain() + "),";
discountDetail = discountDetail + "价值" + vv.getPrice() + "元" + discountName + vv.getNumber() + "份";
if (StringUtils.isNotBlank(vv.getDiscountExplain())) {
discountDetail = discountDetail + "(每份包含" + vv.getDiscountExplain() + "),";
}
}
}
map.put("discountDetail", discountDetail);
@ -2380,68 +2526,71 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future<String> future1 = pool.submit(() -> {
return genCarSaleContract(dto, map, appOrderDetailsVo);
});
Future<String> future1_2 = pool.submit(() -> {
return genCarSaleContract2(dto, map, appOrderDetailsVo);
});
/*Future<String> future2 = pool.submit(() -> {
return genCarSaleContractBlank(dto, map, appOrderDetailsVo);
});
Future<String> future2_2 = pool.submit(() -> {
return genCarSaleContractBlank2(dto, map, appOrderDetailsVo);
});
//接收车辆委托书
Future<String> future4 = pool.submit(() -> {
return getReceiveCar(map, appOrderDetailsVo);
});
String singleFinalPriceOne = priceInfo.getSingleFinalPrice();
String depositOne = depositInfo.getDeposit();
Future<String> future8 = null;
if (!"02".equals(appOrderDetailsVo.getInvoiceType())) {
future8 = pool.submit(() -> {
return getCarContract(null, map, appOrderDetailsVo);
});
}*/
BusSalesOrder busSalesOrder = baseMapper.selectByBusSids(dto.getBusSid());
List<File> filesList = new ArrayList<>();
if (future1 != null) {
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
Future<String> future1 = pool.submit(() -> {
return genCarSaleContract(dto, map, appOrderDetailsVo);
});
Future<String> future1_2 = pool.submit(() -> {
return genCarSaleContract2(dto, map, appOrderDetailsVo);
});
Future<String> future2 = pool.submit(() -> {
return genCarSaleContractBlank(dto, map, appOrderDetailsVo);
});
Future<String> future2_2 = pool.submit(() -> {
return genCarSaleContractBlank2(dto, map, appOrderDetailsVo);
});
//接收车辆委托书
Future<String> future4 = pool.submit(() -> {
return getReceiveCar(dto, map, appOrderDetailsVo);
});
Future<String> future8 = null;
if ("0".equals(dto.getDiscountKey())) {
if (busSalesOrder.getAffiliatedCompanyType() == 0) {
future8 = pool.submit(() -> {
return getCarContract(dto, map, appOrderDetailsVo);
});
}
}
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (future1_2 != null) {
if (StringUtils.isNotBlank(future1_2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1_2.get());
filesList.add(file);
}
}
/*if (future2 != null) {
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
if (future2_2 != null) {
if (StringUtils.isNotBlank(future2_2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2_2.get());
filesList.add(file);
}
}
//合并pdf文件
if (future8 != null) {
if (StringUtils.isNotBlank(future8.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future8.get());
if (StringUtils.isNotBlank(future4.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future4.get());
filesList.add(file);
}
}
if (StringUtils.isNotBlank(future4.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future4.get());
filesList.add(file);
}*/
//合并pdf文件
if (future8 != null) {
if (StringUtils.isNotBlank(future8.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future8.get());
filesList.add(file);
}
}
} else {//贷款
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(dto.getBusSid()).getData();
if (loanSolutions != null) {
if (StringUtils.isBlank(loanSolutions.getTypeKey())) {
//担保
} else {
//非担保
}
}
}
if ("2".equals(appOrderDetailsVo.getPayTypeKey())) {
Future<String> future10 = pool.submit(() -> {
return getRisk(appOrderDetailsVo, dto);

1545
anrui-base/anrui-base-biz/src/main/resources/ftl/carContract.ftl

File diff suppressed because it is too large

2879
anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles.ftl

File diff suppressed because it is too large

35
anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles.ftl

@ -964,7 +964,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${createOrgName!} </w:t>
<w:t>${createOrgName!}</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -1589,7 +1589,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${totalPrice!} </w:t>
<w:t>${totalPrice!}</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -1632,7 +1632,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${priceRemarks!} </w:t>
<w:t>${priceRemarks!}</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -1736,7 +1736,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${depositTotal!} </w:t>
<w:t>${depositTotal!}</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -1831,7 +1831,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${address!} </w:t>
<w:t>${address!}</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2359,7 +2359,11 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${invoiceName!} </w:t>
<#if invoiceName??>
<w:t> ${invoiceName!} </w:t>
<#else><w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2402,7 +2406,11 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${invoiceNo!} </w:t>
<#if invoiceNo??>
<w:t> ${invoiceNo!} </w:t>
<#else><w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2455,7 +2463,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${invoiceType!} </w:t>
<w:t>${invoiceType!} </w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2480,6 +2488,17 @@
</w:rPr>
</w:pPr>
</w:p>
<w:p wsp:rsidR="00F05BA9" wsp:rsidRPr="000B0934" wsp:rsidRDefault="00F05BA9">
<w:pPr>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
</w:pPr>
</w:p>
<w:p wsp:rsidR="00F05BA9" wsp:rsidRPr="000B0934" wsp:rsidRDefault="00000000">
<w:pPr>
<w:tabs>

2819
anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles_black.ftl

File diff suppressed because it is too large

31
anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar.ftl

@ -1080,7 +1080,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${createOrgName!} </w:t>
<w:t>${createOrgName!}</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -1707,7 +1707,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${totalPrice!} </w:t>
<w:t>${totalPrice!}</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -1750,7 +1750,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${priceRemarks!} </w:t>
<w:t>${priceRemarks!}</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -1835,7 +1835,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${dayOne!} </w:t>
<w:t>${dayOne!}</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -1888,7 +1888,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${depositTotal!} </w:t>
<w:t>${depositTotal!}</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -1993,7 +1993,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${address!} </w:t>
<w:t>${address!}</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -2482,7 +2482,10 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${invoiceName!} </w:t>
<#if invoiceName??>
<w:t> ${invoiceName!} </w:t>
<#else><w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -2525,7 +2528,10 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${invoiceNo!} </w:t>
<#if invoiceNo??>
<w:t> ${invoiceNo!} </w:t>
<#else><w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -2556,7 +2562,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${invoiceType!} </w:t>
<w:t>${invoiceType!} </w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -2577,6 +2583,13 @@
</w:rPr>
</w:pPr>
</w:p>
<w:p wsp:rsidR="008101B7" wsp:rsidRPr="0071392F" wsp:rsidRDefault="008101B7">
<w:pPr>
<w:rPr>
<w:rFonts w:fareast="等线"/>
</w:rPr>
</w:pPr>
</w:p>
<w:p wsp:rsidR="008101B7" wsp:rsidRPr="0071392F" wsp:rsidRDefault="00000000">
<w:pPr>
<w:spacing w:before="39" w:line="439" w:line-rule="exact"/>

2817
anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar_black.ftl

File diff suppressed because it is too large

1074
anrui-base/anrui-base-biz/src/main/resources/ftl/receiveCar.ftl

File diff suppressed because it is too large

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

@ -4398,9 +4398,9 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isBlank(dto.getPayAccount())) {
return rb.setMsg("付款账号后4位不能为空");
}
if (StringUtils.isBlank(dto.getPayBank())) {
return rb.setMsg("付款银行不能为空");
}
// if (StringUtils.isBlank(dto.getPayBank())) {
// return rb.setMsg("付款银行不能为空");
// }
}
if ("03".equals(dto.getCollectionTypeKey()) || "05".equals(dto.getCollectionTypeKey())) {
//收款银行账号

2
anrui-riskcenter-ui/src/views/buyback/buybackAdd.vue

@ -138,7 +138,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">

2
anrui-riskcenter-ui/src/views/buyback/buybackInfo.vue

@ -136,7 +136,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">

25
anrui-riskcenter-ui/src/views/homevisitpreparation/thehomevisitisready.vue

@ -54,7 +54,7 @@
<el-table-column width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
<el-button type="primary" size="mini">下载合同</el-button>
<el-button type="primary" size="mini" @click="toDownLoad(scope.row)">下载合同</el-button>
<el-button type="primary" size="mini" @click="lookSale(scope.row)">查看订单</el-button>
</template>
</el-table-column>
@ -133,6 +133,7 @@ import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import salesOrder from '@/components/publicPage/salesOrder'
import {getStorage} from "@/utils/auth";
export default {
name: 'TheHomeVisitIsReady',
@ -265,6 +266,28 @@ export default {
}
this.getList()
},
toDownLoad(row) {
var xhr = new XMLHttpRequest()
xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + row.downUrl + '&outFileName=' + '消贷合同', true)
xhr.setRequestHeader('token', getStorage())
xhr.responseType = 'blob'
xhr.onload = function(e) {
//
var blob = this.response
var filename = '消贷合同.pdf'
var a = document.createElement('a')
// blob.type="application/octet-stream";
// url
var url = URL.createObjectURL(blob)
a.href = url
a.download = filename
a.click()
// URL
window.URL.revokeObjectURL(url)
}
//
xhr.send()
},
lookSale(row) {
this.viewState = 2
this.$refs['divSale'].showInfo(row.saleOrderSid)

8
anrui-riskcenter-ui/src/views/settle/settleAdd.vue

@ -165,14 +165,16 @@
<el-col :span="24">
<div class="span-sty">附件</div>
<el-form-item>
<el-image v-if="formobj.showHg" class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in image_list" :key="index" :src="item" :preview-src-list="image_list" />
<div v-if="formobj.showHg">
<el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in image_list" :key="index" :src="item" :preview-src-list="image_list" />
</div>
<uploadImg v-else ref="uploadImg" class="addinputInfo" v-model="formobj.loanSettleBankCostVo.filesList" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">
@ -278,7 +280,7 @@
</div>
<el-row>
<el-col :span="24">
<div class="span-sty">公司利润</div>
<div class="span-sty">结清利润</div>
<el-form-item><span class="addinputInfo">{{ calculateProfit }}</span></el-form-item>
</el-col>
</el-row>

4
anrui-riskcenter-ui/src/views/settle/settleInfo.vue

@ -145,7 +145,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">
@ -236,7 +236,7 @@
</div>
<el-row>
<el-col :span="24">
<div class="span-sty">公司利润</div>
<div class="span-sty">结清利润</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanSettleCompanyReductionVo.profit }}</span></el-form-item>
</el-col>
</el-row>

2
anrui-riskcenter-ui/src/views/workFlow/huigouFlow/buybackDaiBan.vue

@ -139,7 +139,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">

2
anrui-riskcenter-ui/src/views/workFlow/huigouFlow/buybackEdit.vue

@ -137,7 +137,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">

2
anrui-riskcenter-ui/src/views/workFlow/huigouFlow/buybackYiBan.vue

@ -136,7 +136,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.companyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">

4
anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleDaiBan.vue

@ -148,7 +148,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">
@ -239,7 +239,7 @@
</div>
<el-row>
<el-col :span="24">
<div class="span-sty">公司利润</div>
<div class="span-sty">结清利润</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanSettleCompanyReductionVo.profit }}</span></el-form-item>
</el-col>
</el-row>

8
anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleEdit.vue

@ -164,14 +164,16 @@
<el-col :span="24">
<div class="span-sty">附件</div>
<el-form-item>
<el-image v-if="formobj.showHg" class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in image_list" :key="index" :src="item" :preview-src-list="image_list" />
<div v-if="formobj.showHg">
<el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in image_list" :key="index" :src="item" :preview-src-list="image_list" />
</div>
<uploadImg v-else ref="uploadImg" :disabled="formobj.showHg" class="addinputInfo" v-model="formobj.loanSettleBankCostVo.filesList" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">
@ -277,7 +279,7 @@
</div>
<el-row>
<el-col :span="24">
<div class="span-sty">公司利润</div>
<div class="span-sty">结清利润</div>
<el-form-item><span class="addinputInfo">{{ calculateProfit }}</span></el-form-item>
</el-col>
</el-row>

4
anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleYiBan.vue

@ -145,7 +145,7 @@
</el-row>
<div class="title" style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>公司结清费用</div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
<div>贷款保<span>{{ formobj.loanSettleCompanyCostVo.loanDeposit }}</span></div>
</div>
<el-row>
<el-col :span="8">
@ -236,7 +236,7 @@
</div>
<el-row>
<el-col :span="24">
<div class="span-sty">公司利润</div>
<div class="span-sty">结清利润</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanSettleCompanyReductionVo.profit }}</span></el-form-item>
</el-col>
</el-row>

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanContractVehList.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/2/21 9:06
*/
@Data
public class LoanContractVehList {
private String loanContractNo;
private String loanContractSid;
private String customerName;
private String loanName;
private String bankName;
private String bankContractNo;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("客户sid")
private String customerSid;
private String salesOrderSid;
}

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanContractVehQuery.java

@ -0,0 +1,20 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/2/21 9:08
*/
@Data
public class LoanContractVehQuery implements Query {
private String userSid;
private String orgPath;
private String loanContractNo;
private String customerName;
private String loanName;
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApply.java

@ -30,6 +30,10 @@ public class LoanLawsuitApply extends BaseEntity {
private String customerSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款合同Sid")
private String loanContractSid;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
@ -46,8 +50,8 @@ public class LoanLawsuitApply extends BaseEntity {
private String procDefId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("环节id")
private String taskDefKey;
@ApiModelProperty("环节定义的sid")
private String nodeSid; // 环节定义的sid
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("使用组织名称")
@ -60,4 +64,8 @@ public class LoanLawsuitApply extends BaseEntity {
private String salesOrderSid;
@ApiModelProperty("申请日期")
private Date applyDate;
@ApiModelProperty("风控进展描述")
private String progress;
@ApiModelProperty("欠款合计")
private BigDecimal amountAll;
}

15
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyDetailsQuery.java

@ -0,0 +1,15 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/2/21 8:55
*/
@Data
public class LoanLawsuitApplyDetailsQuery {
private String userSid;
private String orgPath;
private String loanContractSid; //贷款合同Sid
}

54
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyDetailsVo.java

@ -4,6 +4,11 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
* @description
@ -12,14 +17,49 @@ import lombok.Data;
@Data
public class LoanLawsuitApplyDetailsVo implements Vo {
private String sid;
private String remarks;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("实例id")
private String instanceId;
private String userSid;
@ApiModelProperty("参数编码")
private String parameterNo;
@ApiModelProperty("参数名称")
private String parameterName;
@ApiModelProperty("参数值")
private String parameterValue;
@ApiModelProperty("使用组织全路径")
private String orgPath;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款合同Sid")
private String loanContractSid;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("诉讼主体")
private String lawsuitSubject;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("申请日期")
private String applyDate;
@ApiModelProperty("风控进展描述")
private String progress;
@ApiModelProperty("欠款合计")
private String amountAll;
private List<LoanLawsuitVehVo> vehList = new ArrayList<>();
}

47
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyDto.java

@ -4,6 +4,9 @@ import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
@ -13,15 +16,45 @@ import lombok.Data;
public class LoanLawsuitApplyDto implements Dto {
private String sid;
private String remarks;
private String userSid;
@ApiModelProperty("参数编码")
private String parameterNo;
@ApiModelProperty("参数名称")
private String parameterName;
@ApiModelProperty("参数值")
private String parameterValue;
@ApiModelProperty("使用组织全路径")
private String orgPath;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款人sid")
private String loanSid;
@ApiModelProperty("贷款合同Sid")
private String loanContractSid;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("诉讼主体")
private String lawsuitSubject;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("申请日期")
private String applyDate;
@ApiModelProperty("风控进展描述")
private String progress;
@ApiModelProperty("欠款合计")
private String amountAll;
private List<LoanLawsuitVehVo> vehList = new ArrayList<>();
}

35
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeign.java

@ -1,7 +1,14 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyQuery;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo;
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 io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
@ -18,4 +25,32 @@ import org.springframework.cloud.openfeign.FeignClient;
public interface LoanLawsuitApplyFeign {
@ApiOperation("根据条件分页查询分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanLawsuitApplyVo>> listPage(@RequestBody PagerQuery<LoanLawsuitApplyQuery> pq);
@ApiOperation("根据条件分页查询贷款合同列表")
@PostMapping("/loanContractListPage")
public ResultBean<PagerVo<LoanContractVehList>> loanContractListPage(@RequestBody PagerQuery<LoanContractVehQuery> pq);
@ApiOperation("新增初始化")
@PostMapping("/lawsuitInit")
public ResultBean<LoanLawsuitApplyDetailsVo> lawsuitInit(@RequestBody LoanLawsuitApplyDetailsQuery query);
@ApiOperation("修改保存")
@PostMapping("/saveLawsuit")
public ResultBean<String> saveLawsuit(@RequestBody LoanLawsuitApplyDto dto);
@ApiOperation("详情")
@GetMapping("/details")
public ResultBean<LoanLawsuitApplyDetailsVo> details(@RequestParam("sid") String sid);
@ApiOperation("批量删除")
@DeleteMapping("/deleteBySids")
@ResponseBody
public ResultBean deleteBySids(@RequestBody String[] sids);
}

30
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeignFallback.java

@ -13,4 +13,34 @@ import org.springframework.stereotype.Component;
@Component
public class LoanLawsuitApplyFeignFallback implements LoanLawsuitApplyFeign {
@Override
public ResultBean<PagerVo<LoanLawsuitApplyVo>> listPage(PagerQuery<LoanLawsuitApplyQuery> pq) {
return null;
}
@Override
public ResultBean<PagerVo<LoanContractVehList>> loanContractListPage(PagerQuery<LoanContractVehQuery> pq) {
return null;
}
@Override
public ResultBean<LoanLawsuitApplyDetailsVo> lawsuitInit(LoanLawsuitApplyDetailsQuery query) {
return null;
}
@Override
public ResultBean<String> saveLawsuit(LoanLawsuitApplyDto dto) {
return null;
}
@Override
public ResultBean<LoanLawsuitApplyDetailsVo> details(String sid) {
return null;
}
@Override
public ResultBean deleteBySids(String[] sids) {
return null;
}
}

28
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyQuery.java

@ -12,10 +12,30 @@ import lombok.Data;
@Data
public class LoanLawsuitApplyQuery implements Query {
@ApiModelProperty("参数编码")
private String parameterNo;
@ApiModelProperty("参数名称")
private String parameterName;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请开始日期")
private String applyStartDate;
@ApiModelProperty("申请结束日期")
private String applyEndDate;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("办结开始日期")
private String closeStartDate;
@ApiModelProperty("办结结束日期")
private String closeEndDate;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("菜单sid")

36
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyVo.java

@ -12,12 +12,32 @@ import lombok.Data;
@Data
public class LoanLawsuitApplyVo implements Vo {
private String sid;
@ApiModelProperty("参数编码")
private String parameterNo;
@ApiModelProperty("参数名称")
private String parameterName;
@ApiModelProperty("参数值")
private String parameterValue;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("申请日期")
private String applyDate;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("办结日期")
private String closeDate;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("诉讼主体")
private String lawsuitSubject;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("流程状态")
private String nodeState; // 流程实例的sid
}

50
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitVehVo.java

@ -0,0 +1,50 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/2/21 9:01
*/
@Data
public class LoanLawsuitVehVo {
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
private String currentBeMoney;
@ApiModelProperty("其中资金占用费")
private String wheFundOccMoney;
@ApiModelProperty("未到期金额")
private String unexpiredMoney;
@ApiModelProperty("总期数")
private String nper;
@ApiModelProperty("当前期数")
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
@ApiModelProperty("垫资方月还")
private String price;
@ApiModelProperty("垫资方逾期利息")
private String bankInterest;
@ApiModelProperty("车辆处置金额")
private String amount;
@ApiModelProperty("欠款小计")
private String owedTotal;
@ApiModelProperty("贷款保证金")
private String deposit;
@ApiModelProperty("是否回购")
private String repo;
}

14
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/VehLedgerVo.java

@ -0,0 +1,14 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/2/21 11:00
*/
@Data
public class VehLedgerVo {
private String legSid;
private String disposalKey; //03二次销售 04二次转租
}

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java

@ -46,11 +46,15 @@ public class ScheduledLoanFundDayService {
List<LoanRepaymentPlanDetails> list = loanRepaymentPlanDetailsService.planList();
list.removeAll(Collections.singleton(null));
if (list.size() > 0) {
//截止到当天垫款余额T
BigDecimal paymentMoneyAll = list.stream().map(LoanRepaymentPlanDetails::getPaymentMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
//当天资金占用费B
BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal(7)).divide(new BigDecimal(10000), BigDecimal.ROUND_CEILING);
// //截止到当天垫款余额T
// BigDecimal paymentMoneyAll = list.stream().map(LoanRepaymentPlanDetails::getPaymentMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
// //当天资金占用费B
// BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal(7)).divide(new BigDecimal(10000), BigDecimal.ROUND_CEILING);
for (int i = 0; i < list.size(); i++) {
//截止到当天垫款余额T
BigDecimal paymentMoneyAll = list.get(i).getPaymentMoney();
//当天资金占用费B
BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal(7)).divide(new BigDecimal(10000), BigDecimal.ROUND_CEILING);
LoanRepaymentPlanDetails loanRepaymentPlanDetails = list.get(i);
LoanFundDay loanFundDay = new LoanFundDay();
loanFundDay.setBusSid(loanRepaymentPlanDetails.getSid());

27
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.java

@ -1,9 +1,15 @@
package com.yxt.anrui.riskcenter.biz.loanlawsuitapply;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitApply;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.*;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
@ -15,4 +21,23 @@ import org.apache.ibatis.annotations.Mapper;
public interface LoanLawsuitApplyMapper extends BaseMapper<LoanLawsuitApply> {
IPage<LoanContractVehList> loanContractListPage(IPage<LoanContractVehList> page, @Param(Constants.WRAPPER) QueryWrapper<LoanContractVehQuery> qw);
LoanContractVehList getLoanVoByLoanSid(@Param("loanContractSid") String loanContractSid);
List<LoanLawsuitVehVo> selVehListByLoanContractSid(@Param("loanContractSid") String loanContractSid);
String getPaymentMoneyByBusVinSid(@Param("busVinSid") String busVinSid);
String getBankInterestByBusVinSid(@Param("busVinSid") String busVinSid);
VehLedgerVo getVehLedgerVoByBusVinSid(@Param("busVinSid") String busVinSid);
String selDisSaleMoney(@Param("legSid") String legSid, @Param("busVinSid") String busVinSid);
String selDisSubletMoney(@Param("legSid") String legSid, @Param("busVinSid") String busVinSid);
int selectBySid(String join);
IPage<LoanLawsuitApplyVo> listPage(IPage<LoanLawsuitApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanLawsuitApply> qw);
}

109
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.xml

@ -2,4 +2,113 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanlawsuitapply.LoanLawsuitApplyMapper">
<select id="loanContractListPage"
resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanContractVehList">
SELECT
l.sid as loanContractSid,
l.loanContractNo,
s.customerName,
v.borrowName as loanName,
l.bankContractNo,
l.bankName
FROM anrui_buscenter.bus_sales_order_loancontract as l
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as v on v.loanContractSid = l.sid
LEFT JOIN anrui_buscenter.bus_sales_order as s on l.salesOrderSid = s.sid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getLoanVoByLoanSid"
resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanContractVehList">
SELECT l.loanContractNo,
l.borrowerName AS loanName,
s.customerName,
l.bankName,
l.bankContractNo,
l.salesOrderSid,
l.borrowerSid as loanSid,
s.customerSid
FROM anrui_buscenter.bus_sales_order_loancontract AS l
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON l.salesOrderSid = s.sid
where l.sid = #{loanContractSid}
</select>
<select id="selVehListByLoanContractSid"
resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitVehVo">
SELECT v.vehMark,
v.linkNo AS vinNo,
v.sid AS busVinSid,
CASE
v.repoState
WHEN 0 THEN
'否'
WHEN 1 THEN
'是'
END AS repo
FROM anrui_buscenter.bus_sales_order_vehicle AS v
WHERE v.loanContractSid = #{loanContractSid}
AND v.settleState = '0'
</select>
<select id="getPaymentMoneyByBusVinSid" resultType="java.lang.String">
SELECT IFNULL((SUM(IFNULL(p.paymentMoney, 0))), 0)
FROM loan_repayment_plan_details AS p
WHERE p.busVinSid = #{busVinSid}
</select>
<select id="getBankInterestByBusVinSid" resultType="java.lang.String">
SELECT IFNULL((SUM(IFNULL(paymentInterest, 0))), 0)
FROM loan_repayment_plan_details AS p
WHERE p.busVinSid = #{busVinSid}
</select>
<select id="getVehLedgerVoByBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.VehLedgerVo">
SELECT sid as legSid,
disposalKey
FROM loan_return_veh_ledger
WHERE busVinSid = #{busVinSid}
</select>
<select id="selDisSaleMoney" resultType="java.lang.String">
SELECT c.vehPrice
FROM loan_secondary_sales_veh AS v
LEFT JOIN loan_secondary_sales_cost AS c ON v.mainSid = c.mainSid
LEFT JOIN loan_secondary_sales_apply AS a ON v.mainSid = a.sid
WHERE v.busSid = #{legSid}
AND v.busVinSid = #{busVinSid}
AND a.nodeState = '已办结'
</select>
<select id="selDisSubletMoney" resultType="java.lang.String">
SELECT a.amount
FROM loan_sublet_veh AS v
LEFT JOIN loan_sublet_apply AS a ON v.mainSid = a.sid
WHERE v.ledgerSid = #{legSid}
AND v.busVinSid = #{busVinSid}
AND a.nodeState = '已办结'
</select>
<select id="selectBySid" resultType="java.lang.Integer">
select count(*)
from loan_lawsuit_apply
where nodeState != '待提交'
and find_in_set(sid, #{join})
</select>
<select id="listPage" resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitApplyVo">
SELECT
sid,
nodeState,
useOrgName,
createDept,
createByName,
date_format(applyDate, '%Y-%m-%d' ) AS applyDate,
procDefId,
procInstId,
date_format(closeDate, '%Y-%m-%d' ) AS closeDate,
loanContractNo,
bankName,
bankContractNo,
loanName,
customerName,
lawsuitSubject
FROM
loan_lawsuit_apply
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

39
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyRest.java

@ -1,8 +1,12 @@
package com.yxt.anrui.riskcenter.biz.loanlawsuitapply;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitApplyFeign;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.*;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign;
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;
@ -22,4 +26,37 @@ public class LoanLawsuitApplyRest implements LoanLawsuitApplyFeign {
private LoanLawsuitApplyService loanLawsuitApplyService;
@Override
public ResultBean<PagerVo<LoanLawsuitApplyVo>> listPage(PagerQuery<LoanLawsuitApplyQuery> pq) {
ResultBean<PagerVo<LoanLawsuitApplyVo>> rb = ResultBean.fireFail();
PagerVo<LoanLawsuitApplyVo> pv = loanLawsuitApplyService.listPage(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<PagerVo<LoanContractVehList>> loanContractListPage(PagerQuery<LoanContractVehQuery> pq) {
ResultBean<PagerVo<LoanContractVehList>> rb = ResultBean.fireFail();
PagerVo<LoanContractVehList> pv = loanLawsuitApplyService.loanContractListPage(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<LoanLawsuitApplyDetailsVo> lawsuitInit(LoanLawsuitApplyDetailsQuery query) {
return loanLawsuitApplyService.lawsuitInit(query);
}
@Override
public ResultBean<String> saveLawsuit(LoanLawsuitApplyDto dto) {
return loanLawsuitApplyService.saveLawsuit(dto);
}
@Override
public ResultBean<LoanLawsuitApplyDetailsVo> details(String sid) {
return loanLawsuitApplyService.details(sid);
}
@Override
public ResultBean deleteBySids(String[] sids) {
return loanLawsuitApplyService.deleteBySids(sids);
}
}

399
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyService.java

@ -1,13 +1,45 @@
package com.yxt.anrui.riskcenter.biz.loanlawsuitapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitApply;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.*;
import com.yxt.anrui.riskcenter.api.loanlawsuitveh.LoanLawsuitVeh;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApply;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyQuery;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanSolutionsDetailsssVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyQuery;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyVo;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.biz.loanlawsuitveh.LoanLawsuitVehService;
import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@ -24,6 +56,371 @@ public class LoanLawsuitApplyService extends MybatisBaseService<LoanLawsuitApply
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private LoanRestoreReportApplyService loanRestoreReportApplyService;
@Autowired
private LoanSolutionsService loanSolutionsService;
@Autowired
private LoanLawsuitVehService loanLawsuitVehService;
public PagerVo<LoanContractVehList> loanContractListPage(PagerQuery<LoanContractVehQuery> pq) {
IPage<LoanContractVehList> page = PagerUtil.queryToPage(pq);
LoanContractVehQuery pagerQuery = pq.getParams();
QueryWrapper<LoanContractVehQuery> qw = new QueryWrapper<>();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(pagerQuery.getOrgPath());
if (orgSidByPath.getSuccess()) {
String userOrgSid = orgSidByPath.getData();
qw.eq("s.useOrgSid", userOrgSid);
}
//合同号
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) {
qw.like("l.loanContractNo", pagerQuery.getLoanContractNo());
}
//客户
if (StringUtils.isNotBlank(pagerQuery.getCustomerName())) {
qw.like("s.customerName", pagerQuery.getCustomerName());
}
//贷款人
if (StringUtils.isNotBlank(pagerQuery.getLoanName())) {
qw.like("v.borrowName", pagerQuery.getLoanName());
}
qw.eq("v.settleState", 0);
qw.groupBy("l.sid");
IPage<LoanContractVehList> pagging = baseMapper.loanContractListPage(page, qw);
PagerVo<LoanContractVehList> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<LoanLawsuitApplyDetailsVo> lawsuitInit(LoanLawsuitApplyDetailsQuery query) {
ResultBean rb = ResultBean.fireFail();
LoanLawsuitApplyDetailsVo vo = new LoanLawsuitApplyDetailsVo();
String userSid = query.getUserSid();
String loanContractSid = query.getLoanContractSid();
String orgPath = query.getOrgPath();
//根据用户查询发起人、发起部门、发起日期为当前日期
String deptName = "";
String deptSid = "";
String useOrgSid = "";
String orderSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization.getName() + "/" + sysOrganization1.getName();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
vo.setUseOrgSid(useOrgSid);
}
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationVo.getSuccess()) {
SysOrganizationVo organizationVoData = organizationVo.getData();
if (null != organizationVoData) {
vo.setUseOrgName(organizationVoData.getName());
}
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(userSid);
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
vo.setCreateDept(deptName);
vo.setCreateDeptSid(deptSid);
vo.setCreateByName(userVoResultBean.getData().getName());
vo.setOrgPath(query.getOrgPath());
vo.setUserSid(query.getUserSid());
vo.setApplyDate(DateUtil.today());
vo.setLoanContractSid(loanContractSid);
LoanContractVehList loanVo = baseMapper.getLoanVoByLoanSid(loanContractSid);
if (null != loanVo) {
if (StringUtils.isNotBlank(loanVo.getLoanName())) {
vo.setLoanName(loanVo.getLoanName());
}
if (StringUtils.isNotBlank(loanVo.getSalesOrderSid())) {
vo.setSalesOrderSid(loanVo.getSalesOrderSid());
orderSid = loanVo.getSalesOrderSid();
}
if (StringUtils.isNotBlank(loanVo.getBankName())) {
vo.setBankName(loanVo.getBankName());
}
if (StringUtils.isNotBlank(loanVo.getBankContractNo())) {
vo.setBankContractNo(loanVo.getBankContractNo());
}
if (StringUtils.isNotBlank(loanVo.getLoanContractNo())) {
vo.setLoanContractNo(loanVo.getLoanContractNo());
}
if (StringUtils.isNotBlank(loanVo.getCustomerName())) {
vo.setCustomerName(loanVo.getCustomerName());
}
if (StringUtils.isNotBlank(loanVo.getLoanSid())) {
vo.setLoanSid(loanVo.getLoanSid());
}
if (StringUtils.isNotBlank(loanVo.getCustomerSid())) {
vo.setCustomerSid(loanVo.getCustomerSid());
}
}
List<LoanLawsuitVehVo> vehList = baseMapper.selVehListByLoanContractSid(loanContractSid);
if (!vehList.isEmpty()) {
BigDecimal amountAll = new BigDecimal(0);
BigDecimal nowDueMoney = new BigDecimal(0);
BigDecimal notDueMoney = new BigDecimal(0);
BigDecimal disAmount = new BigDecimal(0);
BigDecimal owedTotal = new BigDecimal(0);
String boundAmounts = "";
//------金融方案-----------
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsService.selectDetailss(orderSid);
if (solutionsDetailsVoResultBean.getData() != null) {
SolutionsDetailsVo data = solutionsDetailsVoResultBean.getData();
if (StringUtils.isNotBlank(data.getBondAmounts())) {
boundAmounts = data.getBondAmounts();
}
}
for (LoanLawsuitVehVo veh : vehList) {
String busVinSid = veh.getBusVinSid();
AlrepaidAndArrVo alrepaidAndArr = loanRestoreReportApplyService.getAlrepaidAndArr(busVinSid);
if (null != alrepaidAndArr) {
//已还金额
if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoney())) {
veh.setAlRepaidMoney(alrepaidAndArr.getAlRepaidMoney());
}
//当前逾期金额
if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentBeMoney())) {
veh.setCurrentBeMoney(alrepaidAndArr.getCurrentBeMoney());
nowDueMoney = new BigDecimal(alrepaidAndArr.getCurrentBeMoney());
}
//未到期金额
if (StringUtils.isNotBlank(alrepaidAndArr.getUnexpiredMoney())) {
veh.setUnexpiredMoney(alrepaidAndArr.getUnexpiredMoney());
notDueMoney = new BigDecimal(alrepaidAndArr.getUnexpiredMoney());
}
//资金占用费
if (StringUtils.isNotBlank(alrepaidAndArr.getWheFundOccMoney())) {
veh.setWheFundOccMoney(alrepaidAndArr.getWheFundOccMoney());
}
//总期数
if (StringUtils.isNotBlank(alrepaidAndArr.getNper())) {
veh.setNper(alrepaidAndArr.getNper());
}
//当前期数
if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentPeriod())) {
veh.setCurrentPeriod(alrepaidAndArr.getCurrentPeriod());
}
//已还金额换算期数
if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoneyConPeriod())) {
veh.setAlRepaidMoneyConPeriod(alrepaidAndArr.getAlRepaidMoneyConPeriod());
}
//逾期金额换算期数
if (StringUtils.isNotBlank(alrepaidAndArr.getBeOverdueMoneyAndPeriod())) {
veh.setBeOverdueMoneyAndPeriod(alrepaidAndArr.getBeOverdueMoneyAndPeriod());
}
}
//垫资方月还
String paymentMoney = baseMapper.getPaymentMoneyByBusVinSid(busVinSid);
if (StringUtils.isNotBlank(paymentMoney)) {
veh.setPrice(paymentMoney);
}
//垫资方逾期利息
String bankInterest = baseMapper.getBankInterestByBusVinSid(busVinSid);
if (StringUtils.isNotBlank(bankInterest)) {
veh.setBankInterest(bankInterest);
}
veh.setDeposit(boundAmounts);
//车辆处置金额
VehLedgerVo ledgerVo = baseMapper.getVehLedgerVoByBusVinSid(busVinSid);
if (null != ledgerVo) {
String legSid = ledgerVo.getLegSid();
String disposalKey = ledgerVo.getDisposalKey();
if (disposalKey.equals("03")) {
//03二次销售
String disMoney = baseMapper.selDisSaleMoney(legSid, busVinSid);
if (StringUtils.isNotBlank(disMoney)) {
veh.setAmount(disMoney);
disAmount = new BigDecimal(disMoney);
}
} else if (disposalKey.equals("04")) {
//04二次转租
String disMoney = baseMapper.selDisSubletMoney(legSid, busVinSid);
if (StringUtils.isNotBlank(disMoney)) {
veh.setAmount(disMoney);
disAmount = new BigDecimal(disMoney);
}
}
}
//欠款小计
owedTotal = (nowDueMoney.add(notDueMoney)).subtract(disAmount);
veh.setOwedTotal(owedTotal.toString());
amountAll = owedTotal.add(amountAll);
}
vo.setVehList(vehList);
vo.setAmountAll(amountAll.toString());
}
return rb.success().setData(vo);
}
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> saveLawsuit(LoanLawsuitApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid();
LoanLawsuitApply updateEntity = fetchBySid(sid);
BeanUtil.copyProperties(dto, updateEntity, "id", "sid");
updateEntity.setOrgSidPath(dto.getOrgPath());
updateEntity.setCreateBySid(dto.getUserSid());
baseMapper.updateById(updateEntity);
loanLawsuitVehService.delByMainSid(sid);
} else {
LoanLawsuitApply entity = new LoanLawsuitApply();
sid = entity.getSid();
BeanUtil.copyProperties(dto, entity, "id", "sid");
entity.setOrgSidPath(dto.getOrgPath());
entity.setCreateBySid(dto.getUserSid());
entity.setNodeState("待提交");
baseMapper.insert(entity);
}
List<LoanLawsuitVehVo> vehList = dto.getVehList();
if (!vehList.isEmpty()) {
for (LoanLawsuitVehVo loanLawsuitVehVo : vehList) {
LoanLawsuitVeh veh = new LoanLawsuitVeh();
BeanUtil.copyProperties(loanLawsuitVehVo, veh, "id", "sid");
veh.setMainSid(sid);
loanLawsuitVehService.insert(veh);
}
}
return rb.success().setData(sid);
}
public ResultBean<LoanLawsuitApplyDetailsVo> details(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanLawsuitApplyDetailsVo vo = new LoanLawsuitApplyDetailsVo();
LoanLawsuitApply loanLawsuitApply = fetchBySid(sid);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (null != loanLawsuitApply) {
BeanUtil.copyProperties(loanLawsuitApply, vo);
vo.setUserSid(loanLawsuitApply.getCreateBySid());
vo.setOrgPath(loanLawsuitApply.getOrgSidPath());
vo.setApplyDate(sdf.format(loanLawsuitApply.getApplyDate()));
if (StringUtils.isNotBlank(loanLawsuitApply.getProcInstId())) {
vo.setInstanceId(loanLawsuitApply.getProcInstId());
}
List<LoanLawsuitVehVo> voList = loanLawsuitVehService.selByMainSid(sid);
if (!voList.isEmpty()) {
vo.setVehList(voList);
}
}
return rb.success().setData(vo);
}
public ResultBean deleteBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
delBySids(sids);
loanLawsuitVehService.deleteByApplySid(sids);
return ResultBean.fireSuccess().setMsg("删除成功");
}
public PagerVo<LoanLawsuitApplyVo> listPage(PagerQuery<LoanLawsuitApplyQuery> pq) {
IPage<LoanLawsuitApply> page = PagerUtil.queryToPage(pq);
LoanLawsuitApplyQuery pagerQuery = pq.getParams();
QueryWrapper<LoanLawsuitApply> qw = new QueryWrapper<>();
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(pagerQuery.getOrgPath());
privilegeQuery.setMenuSid(pagerQuery.getMenuSid());
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl());
privilegeQuery.setUserSid(pagerQuery.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = pagerQuery.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("createBySid", pagerQuery.getUserSid());
} else {
PagerVo<LoanLawsuitApplyVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<LoanLawsuitApplyVo> p = new PagerVo<>();
return p;
}
//=======================
//分公司
if (StringUtils.isNotBlank(pagerQuery.getUseOrgName())) {
qw.like("useOrgName", pagerQuery.getUseOrgName());
}
//申请人
if (StringUtils.isNotBlank(pagerQuery.getCreateByName())) {
qw.like("createByName", pagerQuery.getCreateByName());
}
//申请部门
if (StringUtils.isNotBlank(pagerQuery.getCreateDept())) {
qw.like("createDept", pagerQuery.getCreateDept());
}
//消贷合同号
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) {
qw.like("loanContractNo", pagerQuery.getLoanContractNo());
}
//资方
if (StringUtils.isNotBlank(pagerQuery.getBankName())) {
qw.like("bankName", pagerQuery.getBankName());
}
//资方合同号
if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) {
qw.like("bankContractNo", pagerQuery.getBankContractNo());
}
//客户名称
if (StringUtils.isNotBlank(pagerQuery.getCustomerName())) {
qw.like("customerName", pagerQuery.getCustomerName());
}
//贷款人
if (StringUtils.isNotBlank(pagerQuery.getLoanName())) {
qw.like("loanName", pagerQuery.getLoanName());
}
String applyStartTime = pagerQuery.getApplyStartDate();
String applyEndTime = pagerQuery.getApplyEndDate();
qw.apply(StringUtils.isNotEmpty(applyStartTime), "date_format (applyDate,'%Y-%m-%d') >= date_format('" + applyStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(applyEndTime), "date_format (applyDate,'%Y-%m-%d') <= date_format('" + applyEndTime + "','%Y-%m-%d')"
);
String closingStartDate = pagerQuery.getCloseStartDate();
String closingEndDate = pagerQuery.getCloseEndDate();
qw.apply(StringUtils.isNotEmpty(closingStartDate), "date_format (closeDate,'%Y-%m-%d') >= date_format('" + closingStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(closingEndDate), "date_format (closeDate,'%Y-%m-%d') <= date_format('" + closingEndDate + "','%Y-%m-%d')"
);
qw.eq("isDelete", 0);
qw.orderByDesc("applyDate");
IPage<LoanLawsuitApplyVo> pagging = baseMapper.listPage(page, qw);
PagerVo<LoanLawsuitApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitveh/LoanLawsuitVehMapper.java

@ -1,9 +1,13 @@
package com.yxt.anrui.riskcenter.biz.loanlawsuitveh;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitVehVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitveh.LoanLawsuitVeh;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
@ -15,4 +19,7 @@ import org.apache.ibatis.annotations.Mapper;
public interface LoanLawsuitVehMapper extends BaseMapper<LoanLawsuitVeh> {
int delByMainSid(@Param("mainSid") String mainSid);
List<LoanLawsuitVehVo> selByMainSid(@Param("mainSid") String mainSid);
}

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitveh/LoanLawsuitVehMapper.xml

@ -2,4 +2,14 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanlawsuitveh.LoanLawsuitVehMapper">
<delete id="delByMainSid">
DELETE
FROM loan_lawsuit_veh
WHERE mainSid = #{mainSid}
</delete>
<select id="selByMainSid" resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitVehVo">
select *
FROM loan_lawsuit_veh
WHERE mainSid = #{mainSid}
</select>
</mapper>

18
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitveh/LoanLawsuitVehService.java

@ -3,12 +3,16 @@ package com.yxt.anrui.riskcenter.biz.loanlawsuitveh;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitVehVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitveh.LoanLawsuitVeh;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
* @description:
@ -26,4 +30,18 @@ public class LoanLawsuitVehService extends MybatisBaseService<LoanLawsuitVehMapp
private SysOrganizationFeign sysOrganizationFeign;
public void deleteByApplySid(String[] sids) {
List<String> stringList = Arrays.asList(sids);
for (int i = 0; i < stringList.size(); i++) {
baseMapper.delByMainSid(stringList.get(i));
}
}
public int delByMainSid(String mainSid) {
return baseMapper.delByMainSid(mainSid);
}
public List<LoanLawsuitVehVo> selByMainSid(String mainSid) {
return baseMapper.selByMainSid(mainSid);
}
}

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

@ -43,66 +43,61 @@
</select>
<select id="selBeMoney" resultType="java.lang.String">
SELECT
(
a.yq_total - IFNULL(a.actualMoney, 0)
) AS yq_total
FROM
(SELECT
lrpd.`dueMoney` AS yq_total,
(SELECT
SUM(IFNULL(lrh.actualMoney, 0))
FROM
loan_repayment_history lrh
WHERE lrh.planDetailSid = lrpd.`sid`
AND lrh.`updateState` = '1') AS actualMoney
FROM
`loan_repayment_plan_details` lrpd
WHERE lrpd.vinNo = #{no}
AND lrpd.period = #{period}
AND lrpd.bankContractNo = #{bankContractNo}
AND DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a
SELECT (
a.yq_total - IFNULL(a.actualMoney, 0)
) AS yq_total
FROM (SELECT lrpd.`dueMoney` AS yq_total,
(SELECT SUM(IFNULL(lrh.actualMoney, 0))
FROM loan_repayment_history lrh
WHERE lrh.planDetailSid = lrpd.`sid`
AND lrh.`updateState` = '1') AS actualMoney
FROM `loan_repayment_plan_details` lrpd
WHERE lrpd.vinNo = #{no}
AND lrpd.period = #{period}
AND lrpd.bankContractNo = #{bankContractNo}
AND DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
GROUP BY lrpd.`sid`
HAVING (yq_total > 0)) a
</select>
<select id="details" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.MonRepayDetails">
SELECT
lrpd.useOrgName,
lrpd.dept,
lrpd.staffName,
RIGHT (lrpd.`vinNo`, 8) AS vinNo,
lrpd.`loanContractNo`,
lrpd.`bankName`,
lrpd.bankContractNo,
lrpd.customer,
lrpd.borrowerName,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
SELECT lrpd.useOrgName,
lrpd.dept,
lrpd.staffName,
RIGHT (lrpd.`vinNo`, 8) AS vinNo,
lrpd.`loanContractNo`,
lrpd.`bankName`,
lrpd.bankContractNo,
lrpd.customer,
lrpd.borrowerName,
(
lrpd.`dueMoney` - SUM (IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate
, '%Y-%m-%d')
&lt; CURDATE()
AND lrpd.busVinSid = #{saleVehSid}
GROUP BY lrpd.`sid`
HAVING (notRepaidMoney > 0)
ORDER BY lrpd.period
LIMIT 1
LIMIT 1
</select>
<select id="periodDetails" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.MonRepayPeriodDetails">
@ -151,15 +146,15 @@
SELECT pd.dueDate,
pd.useOrgSid,
pd.sid,
IFNULL(pd.fund, 0) AS fund,
IFNULL(pd.fund, 0) AS fund,
pd.dueMoney,
pd.overdue,
t.repaidMoney,
t.outstandingMoney,
-- IFNULL(v.bankBeInter, 0) AS bankBeInter,
IFNULL(pd.paymentInterest, 0) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
@ -207,421 +202,351 @@
LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_fin_policy as py ON s.policySid = py.sid
LEFT JOIN loan_fin_bank as b ON b.sid = py.bankSid
where
s.isDelete = 0
and p.sid = #{pSid}
where s.isDelete = 0
and p.sid = #{pSid}
</select>
<select id="selDifference" resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.DifferenceVo">
SELECT a.*
FROM (
SELECT pd.sid,
t.difference
FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN (
SELECT p.sid,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS difference
FROM loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
WHERE a.sid = #{pSid}
SELECT p.sid,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS difference
FROM loan_repayment_plan_details AS p
WHERE p.sid = #{pSid}
</select>
<select id="InsertForCheckPaymentAndBank" resultType="java.lang.String">
SELECT
CASE
WHEN
IFNULL(p.paymentMoney,0) > 0
AND b.reAdvances = 0 THEN
'0' ELSE '1'
END AS h
FROM
loan_repayment_plan_details AS p
LEFT JOIN loan_solutions AS s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_fin_policy AS py ON s.policySid = py.sid
LEFT JOIN loan_fin_bank AS b ON b.sid = py.bankSid
WHERE
p.sid = #{sid}
SELECT CASE
WHEN
IFNULL(p.paymentMoney, 0) > 0
AND b.reAdvances = 0 THEN
'0'
ELSE '1'
END AS h
FROM loan_repayment_plan_details AS p
LEFT JOIN loan_solutions AS s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_fin_policy AS py ON s.policySid = py.sid
LEFT JOIN loan_fin_bank AS b ON b.sid = py.bankSid
WHERE p.sid = #{sid}
AND s.isDelete = 0
</select>
<select id="getListByBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
select * from loan_repayment_plan_details where busVinSid =#{busVinSid}
select *
from loan_repayment_plan_details
where busVinSid = #{busVinSid}
</select>
<select id="selListForLateVoucher"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher">
SELECT
b.loanContractNo,
b.sid AS planSid,
CASE
WHEN ( b.outstandingMoney + b.bankBeInter + b.fund ) >
0 THEN
'0'
WHEN ( b.outstandingMoney + b.bankBeInter + b.fund ) &lt;= 0 THEN
'1'
END AS overdueState,
b.outstandingMoney,
b.useOrgSid,
b.deptSid,
b.busVinSid,
b.salesOrderSid
FROM
(
SELECT
a.*
FROM
(
SELECT
pd.loanContractNo,
pd.oweState,
pd.dueDate,
pd.useOrgSid,
pd.deptSid,
pd.busVinSid,
pd.sid,
IFNULL( pd.fund, 0 ) AS fund,
pd.dueMoney,
pd.overdue,
pd.salesOrderSid,
t.repaidMoney,
t.outstandingMoney,
SELECT b.loanContractNo,
b.sid AS planSid,
CASE
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) >
0 THEN
'0'
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) &lt;= 0 THEN
'1'
END AS overdueState,
b.outstandingMoney,
b.useOrgSid,
b.deptSid,
b.busVinSid,
b.salesOrderSid
FROM (
SELECT a.*
FROM (
SELECT pd.loanContractNo,
pd.oweState,
pd.dueDate,
pd.useOrgSid,
pd.deptSid,
pd.busVinSid,
pd.sid,
IFNULL(pd.fund, 0) AS fund,
pd.dueMoney,
pd.overdue,
pd.salesOrderSid,
t.repaidMoney,
t.outstandingMoney,
-- IFNULL( v.bankBeInter, 0 ) AS bankBeInter,
IFNULL( pd.paymentInterest, 0 ) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM
loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
IFNULL(pd.paymentInterest, 0) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN (
SELECT
p.sid,
IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM
loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
WHERE
a.dueDate &lt;= a.updateDate
AND a.oweState = 1
AND a.useOrgSid = #{pushUseOrgSid}
) AS b
LEFT JOIN (
SELECT p.sid,
IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
WHERE a.dueDate &lt;= a.updateDate
AND a.oweState = 1
AND a.useOrgSid = #{pushUseOrgSid}
) AS b
WHERE b.overdue = '0'
</select>
<select id="selForPushBuckleVoucher" resultType="java.lang.String">
SELECT
c.overdueState
FROM
(SELECT
b.sid AS planSid,
b.paymentMoney,
b.dueDate,
b.updateDate,
CASE
WHEN ( b.outstandingMoney + b.bankBeInter + b.fund ) > 0
AND b.dueDate &lt;= b.updateDate
AND IFNULL(b.paymentMoney,0) > 0
THEN '0'
WHEN ( b.outstandingMoney + b.bankBeInter + b.fund ) > 0
AND b.dueDate &lt;= b.updateDate
AND IFNULL(b.paymentMoney,0) &lt;= 0
THEN '1'
ELSE '2'
END AS overdueState,
-- 0逾期已垫款1逾期未垫款2正常
b.outstandingMoney,
b.useOrgSid,
b.deptSid,
b.busVinSid,
b.salesOrderSid
FROM
(
SELECT
a.*
FROM
(
SELECT
pd.paymentMoney,
pd.oweState,
pd.dueDate,
pd.useOrgSid,
pd.deptSid,
pd.busVinSid,
pd.sid,
IFNULL( pd.fund, 0 ) AS fund,
pd.dueMoney,
pd.overdue,
pd.salesOrderSid,
t.repaidMoney,
t.outstandingMoney,
SELECT c.overdueState
FROM (SELECT b.sid AS planSid,
b.paymentMoney,
b.dueDate,
b.updateDate,
CASE
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) > 0
AND b.dueDate &lt;= b.updateDate
AND IFNULL(b.paymentMoney, 0) > 0
THEN '0'
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) > 0
AND b.dueDate &lt;= b.updateDate
AND IFNULL(b.paymentMoney, 0) &lt;= 0
THEN '1'
ELSE '2'
END AS overdueState,
-- 0逾期已垫款1逾期未垫款2正常
b.outstandingMoney,
b.useOrgSid,
b.deptSid,
b.busVinSid,
b.salesOrderSid
FROM (
SELECT a.*
FROM (
SELECT pd.paymentMoney,
pd.oweState,
pd.dueDate,
pd.useOrgSid,
pd.deptSid,
pd.busVinSid,
pd.sid,
IFNULL(pd.fund, 0) AS fund,
pd.dueMoney,
pd.overdue,
pd.salesOrderSid,
t.repaidMoney,
t.outstandingMoney,
-- IFNULL( v.bankBeInter, 0 ) AS bankBeInter,
IFNULL( pd.paymentInterest, 0 ) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM
loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
IFNULL(pd.paymentInterest, 0) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN (
SELECT
p.sid,
IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM
loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
) AS b) as c
LEFT JOIN (
SELECT p.sid,
IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
) AS b) as c
WHERE c.planSid = #{planDetailSid}
</select>
<select id="getMainBankName" resultType="java.lang.String">
SELECT b.bankShortName FROM loan_repayment_plan_details as p
LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_fin_policy as po ON po.sid = s.policySid
LEFT JOIN loan_fin_bank as b ON po.bankSid = b.sid
SELECT b.bankShortName
FROM loan_repayment_plan_details as p
LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_fin_policy as po ON po.sid = s.policySid
LEFT JOIN loan_fin_bank as b ON po.bankSid = b.sid
WHERE p.sid = #{sid}
AND s.isDelete = '0'
</select>
<select id="getOtherBankName" resultType="java.lang.String">
SELECT b.bankShortName FROM loan_repayment_plan_details as p
LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_solutions_otherpolicy as o ON s.sid = o.solutionsSid
LEFT JOIN loan_fin_otherpolicy as po ON po.sid = s.policySid
LEFT JOIN loan_fin_bank as b ON po.bankSid = b.sid
SELECT b.bankShortName
FROM loan_repayment_plan_details as p
LEFT JOIN loan_solutions as s ON p.salesOrderSid = s.salesOrderSid
LEFT JOIN loan_solutions_otherpolicy as o ON s.sid = o.solutionsSid
LEFT JOIN loan_fin_otherpolicy as po ON po.sid = s.policySid
LEFT JOIN loan_fin_bank as b ON po.bankSid = b.sid
WHERE p.sid = #{sid}
AND s.isDelete = '0'
</select>
<select id="checkOverDue"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsForOverDue">
SELECT
c.planSid,
c.overdueState
FROM
(SELECT
b.sid AS planSid,
b.paymentMoney,
b.dueDate,
b.updateDate,
CASE
WHEN ( b.outstandingMoney + b.bankBeInter + b.fund ) > 0
AND b.dueDate &lt;= b.updateDate
THEN '0'
ELSE '1'
END AS overdueState,
-- 0逾期 1正常
b.outstandingMoney,
b.useOrgSid,
b.deptSid,
b.busVinSid,
b.salesOrderSid
FROM
(
SELECT
a.*
FROM
(
SELECT
pd.paymentMoney,
pd.oweState,
pd.dueDate,
pd.useOrgSid,
pd.deptSid,
pd.busVinSid,
pd.sid,
IFNULL( pd.fund, 0 ) AS fund,
pd.dueMoney,
pd.overdue,
pd.salesOrderSid,
t.repaidMoney,
t.outstandingMoney,
SELECT c.planSid,
c.overdueState
FROM (SELECT b.sid AS planSid,
b.paymentMoney,
b.dueDate,
b.updateDate,
CASE
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) > 0
AND b.dueDate &lt;= b.updateDate
THEN '0'
ELSE '1'
END AS overdueState,
-- 0逾期 1正常
b.outstandingMoney,
b.useOrgSid,
b.deptSid,
b.busVinSid,
b.salesOrderSid
FROM (
SELECT a.*
FROM (
SELECT pd.paymentMoney,
pd.oweState,
pd.dueDate,
pd.useOrgSid,
pd.deptSid,
pd.busVinSid,
pd.sid,
IFNULL(pd.fund, 0) AS fund,
pd.dueMoney,
pd.overdue,
pd.salesOrderSid,
t.repaidMoney,
t.outstandingMoney,
-- IFNULL( v.bankBeInter, 0 ) AS bankBeInter,
IFNULL( pd.paymentInterest, 0 ) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM
loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
IFNULL(pd.paymentInterest, 0) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid
LEFT JOIN (
SELECT
p.sid,
IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM
loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
) AS b) as c
LEFT JOIN (
SELECT p.sid,
IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
) AS b) as c
WHERE c.planSid = #{sid}
</select>
<update id="updateVehSidAndPeriod">
UPDATE
loan_repayment_plan_details
SET
paymentMoney = #{paymentMoney},
paymentInterest = #{paymentInterest}
loan_repayment_plan_details
SET paymentMoney = #{paymentMoney},
paymentInterest = #{paymentInterest}
WHERE busVinSid = #{busVinSid}
AND period = #{period}
</update>
<select id="selVehSidAndPeriod"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo">
SELECT
lrpd.sid,
IFNULL(lrpd.paymentMoney, 0) AS paymentMoney,
IFNULL(lrpd.paymentInterest, 0) AS paymentInterest
FROM
loan_repayment_plan_details lrpd
SELECT lrpd.sid,
IFNULL(lrpd.paymentMoney, 0) AS paymentMoney,
IFNULL(lrpd.paymentInterest, 0) AS paymentInterest
FROM loan_repayment_plan_details lrpd
WHERE lrpd.busVinSid = #{busVinSid}
AND lrpd.period = #{period}
</select>
<select id="selUseOrgSidListForFundVoucher" resultType="java.lang.String">
SELECT p.useOrgSid
FROM
anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE
j.payCostTitleKey = '006'
FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE j.payCostTitleKey = '006'
GROUP BY p.useOrgSid
</select>
<select id="getFundForVoucher"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher">
SELECT c.*,
(c.reveivableMoney - c.fund) as duePushMoney
FROM
(SELECT b.* FROM
(SELECT a.*,
IFNULL(
(SELECT SUM(fund) FROM loan_push_fund_history as ph WHERE ph.busVinSid = a.busVinSid)
,0) as fund
FROM
(SELECT
p.busVinSid,
p.useOrgSid,
p.useOrgName,
SUM(j.reveivableMoney) as reveivableMoney
FROM
anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE
j.payCostTitleKey = '006'
GROUP BY p.busVinSid
) as a ) as b
WHERE b.reveivableMoney - b.fund > 0
AND b.useOrgSid = #{u}
) c
FROM (SELECT b.*
FROM (SELECT a.*,
IFNULL(
(SELECT SUM(fund) FROM loan_push_fund_history as ph WHERE ph.busVinSid = a.busVinSid)
, 0) as fund
FROM (SELECT p.busVinSid,
p.useOrgSid,
p.useOrgName,
SUM(j.reveivableMoney) as reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE j.payCostTitleKey = '006'
GROUP BY p.busVinSid
) as a) as b
WHERE b.reveivableMoney - b.fund > 0
AND b.useOrgSid = #{u}
) c
</select>
<select id="selUseOrgSidListForLateVoucher" resultType="java.lang.String">
SELECT
p.useOrgSid
FROM loan_repayment_history as h LEFT JOIN loan_repayment_plan_details as p
ON h.planDetailSid = p.sid GROUP BY p.useOrgSid
SELECT p.useOrgSid
FROM loan_repayment_history as h
LEFT JOIN loan_repayment_plan_details as p
ON h.planDetailSid = p.sid
GROUP BY p.useOrgSid
</select>
<select id="selOneByBankNoAndBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
SELECT
*
FROM
loan_repayment_plan_details
WHERE
bankContractNo = #{bankContractNo}
AND busVinSid = #{saleVehSid}
LIMIT 1
SELECT *
FROM loan_repayment_plan_details
WHERE bankContractNo = #{bankContractNo}
AND busVinSid = #{saleVehSid} LIMIT 1
</select>
</mapper>

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

@ -50,7 +50,7 @@
<where>
${ew.sqlSegment}
</where>
order by la.useOrgName desc, la.createTime desc, la.loanContractNo desc, la.vinNo
order by la.createTime desc,la.useOrgName desc, la.createTime desc, la.loanContractNo desc, la.vinNo
</select>
<select id="selectBySid" resultType="int">

58
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

@ -389,8 +389,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (StringUtils.isNotBlank(loanSettleApply.getBusSid())) {
loanSettleApplyDetailsVo.setShowHg(true);
}
if(loanSettleApplyDetailsVo.isShowHg()){
loanSettleApplyDetailsVo = getInit(loanSettleApplyDetailsVo,loanSettleApply);
if (loanSettleApplyDetailsVo.isShowHg()) {
loanSettleApplyDetailsVo = getInit(loanSettleApplyDetailsVo, loanSettleApply);
}
}
return rb.success().setData(loanSettleApplyDetailsVo);
@ -924,20 +924,48 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
LoanSettleCompanyCost loanSettleCompanyCost = loanSettleCompanyCostService.selectByMainSid(sid);
if (loanSettleCompanyCost != null) {
settleApplyAppVo.setLoanDeposit(loanSettleCompanyCost.getLoanDeposit().toString());
settleApplyAppVo.setOverduePrice(loanSettleCompanyCost.getOverduePrice().toString());
settleApplyAppVo.setPutBankInterest(loanSettleCompanyCost.getPutBankInterest().toString());
settleApplyAppVo.setFunfCost(loanSettleCompanyCost.getFunfCost().toString());
settleApplyAppVo.setBankOverInterest(loanSettleCompanyCost.getBankOverInterest().toString());
settleApplyAppVo.setCompanyCurrentNotPrice(loanSettleCompanyCost.getCompanyCurrentNotPrice().toString());
settleApplyAppVo.setBankNotPrice(loanSettleCompanyCost.getBankNotPrice().toString());
settleApplyAppVo.setDeductionAmount(loanSettleCompanyCost.getDeductionAmount().toString());
settleApplyAppVo.setCompanyNominalPrice(loanSettleCompanyCost.getCompanyNominalPrice().toString());
settleApplyAppVo.setContractLiquidated(loanSettleCompanyCost.getContractLiquidated().toString());
settleApplyAppVo.setCompanyOtherPrice(loanSettleCompanyCost.getCompanyOtherPrice().toString());
if (loanSettleCompanyCost.getLoanDeposit() != null) {
settleApplyAppVo.setLoanDeposit(loanSettleCompanyCost.getLoanDeposit().toString());
}
if (loanSettleCompanyCost.getOverduePrice() != null) {
settleApplyAppVo.setOverduePrice(loanSettleCompanyCost.getOverduePrice().toString());
}
if (loanSettleCompanyCost.getPutBankInterest() != null) {
settleApplyAppVo.setPutBankInterest(loanSettleCompanyCost.getPutBankInterest().toString());
}
if (loanSettleCompanyCost.getFunfCost() != null) {
settleApplyAppVo.setFunfCost(loanSettleCompanyCost.getFunfCost().toString());
}
if (loanSettleCompanyCost.getBankOverInterest() != null) {
settleApplyAppVo.setBankOverInterest(loanSettleCompanyCost.getBankOverInterest().toString());
}
if (loanSettleCompanyCost.getCompanyCurrentNotPrice() != null) {
settleApplyAppVo.setCompanyCurrentNotPrice(loanSettleCompanyCost.getCompanyCurrentNotPrice().toString());
}
if (loanSettleCompanyCost.getBankNotPrice() != null) {
settleApplyAppVo.setBankNotPrice(loanSettleCompanyCost.getBankNotPrice().toString());
}
if (loanSettleCompanyCost.getDeductionAmount() != null) {
settleApplyAppVo.setDeductionAmount(loanSettleCompanyCost.getDeductionAmount().toString());
}
if (loanSettleCompanyCost.getCompanyNominalPrice() != null) {
settleApplyAppVo.setCompanyNominalPrice(loanSettleCompanyCost.getCompanyNominalPrice().toString());
}
if (loanSettleCompanyCost.getContractLiquidated() != null) {
settleApplyAppVo.setContractLiquidated(loanSettleCompanyCost.getContractLiquidated().toString());
}
if (loanSettleCompanyCost.getCompanyOtherPrice() != null) {
settleApplyAppVo.setCompanyOtherPrice(loanSettleCompanyCost.getCompanyOtherPrice().toString());
}
if (loanSettleCompanyCost.getSettleAll() != null) {
settleApplyAppVo.setSettleAll(loanSettleCompanyCost.getSettleAll().toString());
}
if (loanSettleCompanyCost.getFundAll() != null) {
settleApplyAppVo.setFundAll(loanSettleCompanyCost.getFundAll().toString());
}
settleApplyAppVo.setOtherCostRemarks(loanSettleCompanyCost.getOtherCostRemarks());
settleApplyAppVo.setSettleAll(loanSettleCompanyCost.getSettleAll().toString());
settleApplyAppVo.setFundAll(loanSettleCompanyCost.getFundAll().toString());
}
LoanSettleCompanyReduction loanSettleCompanyReduction = loanSettleCompanyReductionService.selectByMainSid(sid);
if (loanSettleCompanyReduction != null) {

14
anrui-system-ui/src/views/Home/Home.vue

@ -103,15 +103,15 @@
</el-dialog>
<el-dialog :visible.sync="TZGGVisible" width="50%">
<el-form :model="formobj" class="formaddcopy02">
<div style="text-align: center;font-weight: bold;font-size: 16px">{{ formobj.title }}</div>
<div style="text-align: center;font-weight: bold;font-size: 20px">{{ formobj.title }}</div>
<el-row style="border-left: 0px;margin-top: 10px">
<el-col :span="12" style="border-right: 0px;border-bottom: 0px">
<div class="span-sty" style="border-right: 0px">发布日期:</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
<div class="span-sty" style="border-right: 0px;font-family: 'SimSun';font-size: 10px;">发布日期:</div>
<el-form-item><span style="font-family: 'SimSun';font-weight: bold;margin-left: 60px">{{ formobj.createTime }}</span></el-form-item>
</el-col>
<el-col :span="12" style="border-right: 0px;border-bottom: 0px">
<div class="span-sty" style="border-right: 0px">有效期至:</div>
<el-form-item><span class="addinputInfo">{{ formobj.validityDate }}</span></el-form-item>
<div class="span-sty" style="border-right: 0px;font-family: 'SimSun';font-size: 10px;">有效期至:</div>
<el-form-item><span style="font-family: 'SimSun';font-weight: bold;margin-left: 60px">{{ formobj.validityDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row style="border-left: 0px">
@ -121,8 +121,8 @@
</el-row>
<el-row style="border-left: 0px">
<el-col :span="24" style="border-right: 0px;border-bottom: 0px">
<div class="span-sty" style="border-right: 0px">附件:</div>
<el-form-item><span class="bluezi addinputInfo" v-for="(item, index) in formobj.filesList" :key="index" @click="handleDownLoad(item.url)">{{ item.name }}</span></el-form-item>
<div class="span-sty" style="border-right: 0px;font-family: 'SimSun';font-size: 10px;">附件:</div>
<el-form-item><span class="bluezi" style="font-family: 'SimSun';font-weight: bold;margin-left: 60px" v-for="(item, index) in formobj.filesList" :key="index" @click="handleDownLoad(item.url)">{{ item.name }}</span></el-form-item>
</el-col>
</el-row>
</el-form>

Loading…
Cancel
Save