diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/HomeKcCust.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/HomeKcCust.java index 2acc9c1410..e2f3312061 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/HomeKcCust.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/HomeKcCust.java @@ -83,6 +83,8 @@ public class HomeKcCust { private String accCompAddress; @ApiModelProperty("实际经营地址") private String accCompxAddress; + @ApiModelProperty("股东人数") + private String shareNum; @ApiModelProperty("挂车或上装是否公司采购(0是,1否)") private String isCompBuy; } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java index 215e9ddb9f..debdcb6cd5 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java @@ -187,14 +187,6 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService baseOutsourcingApplicationVehicleDtos = dto.getBaseOutsourcingApplicationVehicleDtos(); CommonAppendix contract = dto.getContract(); String sid = dto.getSid(); @@ -208,32 +200,13 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService> sysStaffOrgListByStaffSid = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid); - List data = sysStaffOrgListByStaffSid.getData(); - String orgSidPath = ""; - for (SysStaffOrgVo datum : data) { - orgSidPath = datum.getOrgSidPath(); - String[] split = orgSidPath.split("/"); - for (String s : split) {//TODO 封装到组织架构的feign中 - ResultBean sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s); - SysOrganizationVo data1 = sysOrganizationVoResultBean.getData(); - Integer isDept = data1.getIsDept(); - String psid = data1.getPsid(); - if (isDept != null) { - if (isDept == 0 && !psid.equals(0)) { - orgSidPath = s; - break; - } - } - } - } - entity.setUseOrgSid(orgSidPath); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData(); + entity.setUseOrgSid(useOrgSid); entity.setCreateBySid(dto.getUserSid()); entity.setNodeState("待提交"); String carBrandSid = dto.getCarBrandSid(); @@ -246,10 +219,9 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService SELECT * FROM base_vehicle - WHERE vinNo = #{vinNo} + WHERE vinNo like concat('%',#{vinNo},'%') AND useOrgSid = #{useOrgSid} AND isDelete = 0 AND vehicleState != "0004" diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java index afacb408fe..3a17e9c9ae 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java @@ -633,8 +633,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService saveSaleOrderInputLender(@PathVariable("saleOrderSid") String saleOrderSid, @PathVariable("sid") String sid); + + @ApiOperation("查询销售订单价格信息") + @PostMapping("/selectByContractNoOne") + @ResponseBody + ResultBean selectByContractNoOne(@RequestParam("contractNo") String contractNo); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java index 9eaf02f158..db0b3817db 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java @@ -366,4 +366,9 @@ public class BusSalesOrderFeignFallback implements BusSalesOrderFeign { public ResultBean saveSaleOrderInputLender(String saleOrderSid, String sid) { return null; } + + @Override + public ResultBean selectByContractNoOne(String contractNo) { + return null; + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java index b56b9a128b..4fe7fe2e37 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java @@ -1443,7 +1443,6 @@ public class BusDeliveredApplyService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - BusHandover mortgageHandover = busHandover; - Future future1 = pool.submit(() -> { - String orderSid = mortgageHandover.getOrderSid(); - BusSalesOrder salesOrder = busSalesOrderService.fetchBySid(orderSid); - String createBySid = ""; - String staff = ""; - String staffSid = ""; - String bankName = ""; - String bankSid = ""; - String orgPath = ""; - String dept = ""; - String deptSid = ""; - if (null != salesOrder) { - if (StringUtils.isNotBlank(salesOrder.getPayTypeKey())) { - if ("2".equals(salesOrder.getPayTypeKey())) { - if (StringUtils.isNotBlank(salesOrder.getCreateBySid())) { - createBySid = salesOrder.getCreateBySid(); - } - if (StringUtils.isNotBlank(salesOrder.getOrgSidPath())) { - orgPath = salesOrder.getOrgSidPath(); - } - if (StringUtils.isNotBlank(salesOrder.getStaffSid())) { - staffSid = salesOrder.getStaffSid(); - } - if (StringUtils.isNotBlank(salesOrder.getStaffName())) { - staff = salesOrder.getStaffName(); - } - if (StringUtils.isNotBlank(salesOrder.getOrgName())) { - dept = salesOrder.getOrgName(); - } - if (StringUtils.isNotBlank(salesOrder.getOrgSid())) { - deptSid = salesOrder.getOrgSid(); - } - LoanSolutions solutions = loanSolutionsFeign.getOneByOrderSid(orderSid).getData(); - if (null != solutions) { - if (StringUtils.isNotBlank(solutions.getPolicySid())) { - LoanFinPolicyVo policyVo = loanFinPolicyFeign.details(solutions.getPolicySid()).getData(); - if (null != policyVo) { - if (StringUtils.isNotBlank(policyVo.getBankSid())) { - bankSid = policyVo.getBankSid(); - } - if (StringUtils.isNotBlank(policyVo.getBankShortName())) { - bankName = policyVo.getBankShortName(); + //------------------推送抵押办理------------------------ + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + BusHandover mortgageHandover = busHandover; + Future future1 = pool.submit(() -> { + String orderSid = mortgageHandover.getOrderSid(); + BusSalesOrder salesOrder = busSalesOrderService.fetchBySid(orderSid); + String createBySid = ""; + String staff = ""; + String staffSid = ""; + String bankName = ""; + String bankSid = ""; + String orgPath = ""; + String dept = ""; + String deptSid = ""; + if (null != salesOrder) { + if (StringUtils.isNotBlank(salesOrder.getPayTypeKey())) { + if ("2".equals(salesOrder.getPayTypeKey())) { + if (StringUtils.isNotBlank(salesOrder.getCreateBySid())) { + createBySid = salesOrder.getCreateBySid(); + } + if (StringUtils.isNotBlank(salesOrder.getOrgSidPath())) { + orgPath = salesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(salesOrder.getStaffSid())) { + staffSid = salesOrder.getStaffSid(); + } + if (StringUtils.isNotBlank(salesOrder.getStaffName())) { + staff = salesOrder.getStaffName(); + } + if (StringUtils.isNotBlank(salesOrder.getOrgName())) { + dept = salesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(salesOrder.getOrgSid())) { + deptSid = salesOrder.getOrgSid(); + } + LoanSolutions solutions = loanSolutionsFeign.getOneByOrderSid(orderSid).getData(); + if (null != solutions) { + if (StringUtils.isNotBlank(solutions.getPolicySid())) { + LoanFinPolicyVo policyVo = loanFinPolicyFeign.details(solutions.getPolicySid()).getData(); + if (null != policyVo) { + if (StringUtils.isNotBlank(policyVo.getBankSid())) { + bankSid = policyVo.getBankSid(); + } + if (StringUtils.isNotBlank(policyVo.getBankShortName())) { + bankName = policyVo.getBankShortName(); + } } } } - } - List vinItems = busHandoverItemsService.getItemsListByMainSid(mortgageHandover.getSid()).getData(); - vinItems.removeAll(Collections.singleton(null)); - if (!vinItems.isEmpty()) { - vinItems = vinItems.stream().filter(obj -> obj.getVehivelOrTrailer().equals("主车")).collect(Collectors.toList()); - for (BusHandoverItems vinItem : vinItems) { - LoanMortgageInformationTransactDto mortagageDto = new LoanMortgageInformationTransactDto(); - mortagageDto.setCreateBySid(createBySid); - mortagageDto.setOrgSidPath(orgPath); - mortagageDto.setSalesOrderSid(orderSid); - mortagageDto.setBankName(bankName); - mortagageDto.setBankSid(bankSid); - mortagageDto.setDept(dept); - mortagageDto.setDeptSid(deptSid); - mortagageDto.setStaffSid(staffSid); - mortagageDto.setStaff(staff); - if (StringUtils.isNotBlank(vinItem.getVinSid())) { - mortagageDto.setVehSid(vinItem.getVinSid()); - BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectOneByVehSidAndOrderSid(vinItem.getVinSid(), orderSid); - if (null != busSalesOrderVehicle) { - if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { - String linkNo = busSalesOrderVehicle.getLinkNo(); - if (linkNo.length() > 8) { - String substringLinkNo = linkNo.substring(linkNo.length() - 8); - mortagageDto.setVinNo(substringLinkNo); - } else { - mortagageDto.setVinNo(linkNo); + List vinItems = busHandoverItemsService.getItemsListByMainSid(mortgageHandover.getSid()).getData(); + vinItems.removeAll(Collections.singleton(null)); + if (!vinItems.isEmpty()) { + vinItems = vinItems.stream().filter(obj -> obj.getVehivelOrTrailer().equals("主车")).collect(Collectors.toList()); + for (BusHandoverItems vinItem : vinItems) { + LoanMortgageInformationTransactDto mortagageDto = new LoanMortgageInformationTransactDto(); + mortagageDto.setCreateBySid(createBySid); + mortagageDto.setOrgSidPath(orgPath); + mortagageDto.setSalesOrderSid(orderSid); + mortagageDto.setBankName(bankName); + mortagageDto.setBankSid(bankSid); + mortagageDto.setDept(dept); + mortagageDto.setDeptSid(deptSid); + mortagageDto.setStaffSid(staffSid); + mortagageDto.setStaff(staff); + if (StringUtils.isNotBlank(vinItem.getVinSid())) { + mortagageDto.setVehSid(vinItem.getVinSid()); + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectOneByVehSidAndOrderSid(vinItem.getVinSid(), orderSid); + if (null != busSalesOrderVehicle) { + if (StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String linkNo = busSalesOrderVehicle.getLinkNo(); + if (linkNo.length() > 8) { + String substringLinkNo = linkNo.substring(linkNo.length() - 8); + mortagageDto.setVinNo(substringLinkNo); + } else { + mortagageDto.setVinNo(linkNo); + } } - } - if (StringUtils.isNotBlank(busSalesOrderVehicle.getSid())) { - mortagageDto.setBusVinSid(busSalesOrderVehicle.getSid()); - } - if (StringUtils.isNotBlank(busSalesOrderVehicle.getBorrowerSid())) { - mortagageDto.setBorrowerSid(busSalesOrderVehicle.getBorrowerSid()); - } - if (StringUtils.isNotBlank(busSalesOrderVehicle.getBorrowName())) { - mortagageDto.setBorrowerName(busSalesOrderVehicle.getBorrowName()); - } - if (StringUtils.isNotBlank(busSalesOrderVehicle.getLoanContractSid())) { - mortagageDto.setLoanContractSid(busSalesOrderVehicle.getLoanContractSid()); - BusSalesOrderLoancontract loancontract = busSalesOrderLoancontractService.fetchBySid(busSalesOrderVehicle.getLoanContractSid()); - if (null != loancontract) { - if (StringUtils.isNotBlank(loancontract.getLoanContractNo())) { - mortagageDto.setLoanContractNo(loancontract.getLoanContractNo()); + if (StringUtils.isNotBlank(busSalesOrderVehicle.getSid())) { + mortagageDto.setBusVinSid(busSalesOrderVehicle.getSid()); + } + if (StringUtils.isNotBlank(busSalesOrderVehicle.getBorrowerSid())) { + mortagageDto.setBorrowerSid(busSalesOrderVehicle.getBorrowerSid()); + } + if (StringUtils.isNotBlank(busSalesOrderVehicle.getBorrowName())) { + mortagageDto.setBorrowerName(busSalesOrderVehicle.getBorrowName()); + } + if (StringUtils.isNotBlank(busSalesOrderVehicle.getLoanContractSid())) { + mortagageDto.setLoanContractSid(busSalesOrderVehicle.getLoanContractSid()); + BusSalesOrderLoancontract loancontract = busSalesOrderLoancontractService.fetchBySid(busSalesOrderVehicle.getLoanContractSid()); + if (null != loancontract) { + if (StringUtils.isNotBlank(loancontract.getLoanContractNo())) { + mortagageDto.setLoanContractNo(loancontract.getLoanContractNo()); + } } } - } + } } + loanMortgageInformationTransactFeign.saveMortgageInfo(mortagageDto); } - loanMortgageInformationTransactFeign.saveMortgageInfo(mortagageDto); } } - } } - } - }); - } catch (Exception e) { - e.printStackTrace(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - return rb.success().setData(resultBean.getData()); } else { return rb.setMsg("操作失败!提交的数据不一致"); diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java index 70ab013cc8..df787cf1ad 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java @@ -449,4 +449,9 @@ public class BusSalesOrderRest implements BusSalesOrderFeign { public ResultBean saveSaleOrderInputLender(String saleOrderSid, String sid) { return busSalesOrderService.saveSaleOrderInputLender(saleOrderSid,sid); } + + @Override + public ResultBean selectByContractNoOne(String contractNo) { + return busSalesOrderService.selectByContractNoOne(contractNo); + } } diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue index 63c6f6ab29..3d94941cee 100644 --- a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue +++ b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue @@ -179,7 +179,7 @@ - + @@ -189,7 +189,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -239,7 +239,7 @@ - + @@ -407,6 +407,7 @@ export default { payCode: '', // 供应商编码 cost: '' }, + disabledCost: false, imgList: [], rules: { payWayValue: [{ required: true, message: '请选择付款方式', trigger: 'change' }], @@ -654,10 +655,14 @@ export default { }, handleEdit(row) { this.dialogVisible = true + if (row.costTypeValue === '垫款' || row.costTypeValue === '月还代收') { + this.disabledCost = true + } this.formobj.payRemark = row.payRemark this.$nextTick(() => { this.$refs['form_obj'].clearValidate() }) + this.formobj.cost = row.cost this.formobj.receiveCompany = row.receiveCompany this.formobj.receiveBankAccount = row.receiveBankAccount this.formobj.receiveBank = row.receiveBank @@ -798,6 +803,7 @@ export default { payCode: '', // 供应商编码 cost: '' } + this.disabledCost = false this.submitdisabled = false this.diploma_list = [] this.$refs['form_obj'].resetFields() diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempDto.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempDto.java index c6b3f4eb71..46e09938e0 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempDto.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempDto.java @@ -163,4 +163,7 @@ public class AppCrmCustomerTempDto implements Dto { @ApiModelProperty("身份证正反面") private List filePaths = Collections.emptyList(); + @ApiModelProperty("证件地址") + private String certificateAddress; + } \ No newline at end of file diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTemp.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTemp.java index b75abec74a..b3d34767f0 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTemp.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTemp.java @@ -25,79 +25,79 @@ import lombok.Data; public class CrmCustomerTemp extends BaseEntity { private static final long serialVersionUID = 1L; - + @ApiModelProperty("客户编号(部门编码+客户类型(1位,0个人,1企业)+部门内部流水号(6位))") private String customerNo; - + @ApiModelProperty("客户类型(自然人/法人)") private String customerType; - + @ApiModelProperty("客户类型key") private String customerTypeKey; - + @ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)") private String customerClass; - + @ApiModelProperty("客户分类key") private String customerClassKey; - + @ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)") private String source; - + @ApiModelProperty("客户来源key") private String sourceKey; - + @ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)") private String level; - + @ApiModelProperty("客户级别key") private String levelKey; - + @ApiModelProperty("客户名称") private String name; @ApiModelProperty("证件类型key") private String certificateTypeKey; - + @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)") private String certificateType; - + @ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)") private String IDNumber; - + @ApiModelProperty("证件有效期") private String endDate; - + @ApiModelProperty("行政区划代码(省)") private String address_province; - + @ApiModelProperty("行政区划代码(市)") private String address_city; - + @ApiModelProperty("行政区划代码(县)") private String address_county; - + @ApiModelProperty("省") private String province; - + @ApiModelProperty("市") private String city; - + @ApiModelProperty("县") private String county; - + @ApiModelProperty("详细地址") private String address; - + @ApiModelProperty("邮编") private String zipCode; - + @ApiModelProperty("电子邮箱") private String e_mail; - + @ApiModelProperty("联系人") private String contacts; - + @ApiModelProperty("联系电话") private String mobile; @@ -106,16 +106,16 @@ public class CrmCustomerTemp extends BaseEntity { @ApiModelProperty("紧急联系电话") private String emergencyMobile; - + @ApiModelProperty("微信号码") private String weixin; - + @ApiModelProperty("业务人员sid") private String staffSid; - + @ApiModelProperty("创建组织sid") private String createOrgSid; - + @ApiModelProperty("性别") private String sex; @@ -124,13 +124,13 @@ public class CrmCustomerTemp extends BaseEntity { @ApiModelProperty("生日") private String birthday; - + @ApiModelProperty("所在公司名称") private String companyName; @ApiModelProperty("跟进状态key") private String follow_state_key; - + @ApiModelProperty("跟进状态") private String follow_state; @@ -139,13 +139,13 @@ public class CrmCustomerTemp extends BaseEntity { @ApiModelProperty("是否开启提醒(1开启,0不开启)") private String isOnRemind; - + @ApiModelProperty("提醒日期") private String remind_day; - + @ApiModelProperty("提醒备注") private String remind_remark; - + @ApiModelProperty("客户头像") private String customerPhoto; @@ -154,4 +154,7 @@ public class CrmCustomerTemp extends BaseEntity { @ApiModelProperty("见面方式(到店/电话/拜访)") private String visitWay; + + @ApiModelProperty("证件地址") + private String certificateAddress; } diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java index ba5a25e3d3..0235793c84 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java @@ -98,6 +98,7 @@ public interface CrmCustomerTempFeign { /** * 客户列表导出 + * * @param crmCustomerTempQuery */ @PostMapping("/exportExcel") @@ -221,5 +222,9 @@ public interface CrmCustomerTempFeign { @ApiOperation("根据客户sid修改身份证号码") @PostMapping("/updateIdBySid") - ResultBean updateIdBySid(@RequestParam("idCard") String idCard,@RequestParam("custSid") String custSid); + ResultBean updateIdBySid(@RequestParam("idCard") String idCard, @RequestParam("custSid") String custSid); + + @ApiOperation("新增或更新客户信息") + @PostMapping("/updateTemp") + ResultBean updateTemp(@RequestBody CustomerSecondSalesDto dto); } \ No newline at end of file diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java index c5758d360c..363bdf02a1 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java @@ -175,5 +175,10 @@ public class CrmCustomerTempFeignFallback implements CrmCustomerTempFeign { return null; } + @Override + public ResultBean updateTemp(CustomerSecondSalesDto dto) { + return null; + } + } \ No newline at end of file diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CustomerSecondSalesDto.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CustomerSecondSalesDto.java new file mode 100644 index 0000000000..1dfa2be83f --- /dev/null +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CustomerSecondSalesDto.java @@ -0,0 +1,40 @@ +package com.yxt.anrui.crm.api.crmcustomertemp; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Data +public class CustomerSecondSalesDto implements Dto { + private static final long serialVersionUID = -1955772984622113809L; + + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户类型") + private String customerType; + private String customerTypeKey; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("证件类型") + private String certificateTypeKey; + private String certificateType; + @ApiModelProperty("证件号码") + @JsonProperty("IDNumber") + private String IDNumber; + @ApiModelProperty("证件有效期") + private String endDate; + @ApiModelProperty("证件地址") + private String certificateAddress; + + private String userSid; + + private String orgPath; +} diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java index c69318d535..1a34371902 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java @@ -352,5 +352,10 @@ public class CrmCustomerTempRest implements CrmCustomerTempFeign { return rb.success(); } + @Override + public ResultBean updateTemp(CustomerSecondSalesDto dto) { + return crmCustomerTempService.updateTemp(dto); + } + } diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java index dc3d261383..7f91760202 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempService.java @@ -1158,7 +1158,7 @@ public class CrmCustomerTempService extends MybatisBaseService updateTemp(CustomerSecondSalesDto dto) { + ResultBean rb = ResultBean.fireFail(); + AppCrmCustomerTempDto appCrmCustomerTempDto = new AppCrmCustomerTempDto(); + if(StringUtils.isNotBlank(dto.getCustomerSid())){ + CrmCustomerTemp customerTemp = fetchBySid(dto.getCustomerSid()); + BeanUtils.copyProperties(customerTemp,appCrmCustomerTempDto); + appCrmCustomerTempDto.setSid(dto.getCustomerSid()); + appCrmCustomerTempDto.setCertificateTypeKey(dto.getCertificateTypeKey()); + appCrmCustomerTempDto.setCertificateType(dto.getCertificateType()); + appCrmCustomerTempDto.setIDNumber(dto.getIDNumber()); + appCrmCustomerTempDto.setEndDate(dto.getEndDate()); + appCrmCustomerTempDto.setCertificateAddress(dto.getCertificateAddress()); + appCrmCustomerTempDto.setUserSid(dto.getUserSid()); + }else{ + appCrmCustomerTempDto.setSid(dto.getCustomerSid()); + appCrmCustomerTempDto.setName(dto.getCustomerName()); + appCrmCustomerTempDto.setMobile(dto.getMobile()); + appCrmCustomerTempDto.setCertificateTypeKey(dto.getCertificateTypeKey()); + appCrmCustomerTempDto.setCertificateType(dto.getCertificateType()); + appCrmCustomerTempDto.setCustomerType(dto.getCustomerType()); + appCrmCustomerTempDto.setCustomerTypeKey(dto.getCustomerTypeKey()); + appCrmCustomerTempDto.setIDNumber(dto.getIDNumber()); + appCrmCustomerTempDto.setEndDate(dto.getEndDate()); + appCrmCustomerTempDto.setCertificateAddress(dto.getCertificateAddress()); + appCrmCustomerTempDto.setUserSid(dto.getUserSid()); + appCrmCustomerTempDto.setOrgPath(dto.getOrgPath()); + } + + ResultBean resultBean = saveOrUpdateAppCustomerTemp(appCrmCustomerTempDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java index 3b2ea5e051..6bd9723362 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java @@ -269,4 +269,9 @@ public interface FinBillApplicationFeign { @GetMapping("/selectByContractNo") @ResponseBody ResultBean selectByContractNo(@RequestParam("contractId") String contractId, @RequestParam("vins") List vins); + + @ApiOperation("根据合同号查询") + @GetMapping("/selectByCon") + @ResponseBody + ResultBean selectByCon(@RequestParam("contractNo") String contractNo); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java index bc57e54ebe..779b332140 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java @@ -281,4 +281,9 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign public ResultBean selectByContractNo(String contractId, List vins) { return null; } + + @Override + public ResultBean selectByCon(String contractNo) { + return null; + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java index 2ef3a0209a..ef7a2d9694 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java @@ -31,6 +31,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -95,10 +96,14 @@ public class FinPaymentrecord extends BaseEntity { private String receiveBank; @ApiModelProperty("收款单位名称") private String receiveCompany; - @ApiModelProperty(value = "实收金额") + /*@ApiModelProperty(value = "实收金额") private Integer cost; @ApiModelProperty(value = "应收金额") - private Integer accountsReceive; + private Integer accountsReceive;*/ + @ApiModelProperty(value = "实收金额") + private BigDecimal cost; + @ApiModelProperty(value = "应收金额") + private BigDecimal accountsReceive; @ApiModelProperty(value = "业务编号") private String busSid; diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java index 3678fca33b..32099d04f4 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java @@ -75,9 +75,9 @@ public class FinPaymentrecordDto implements Dto { @ApiModelProperty("收款单位名称") private String receiveCompany; @ApiModelProperty(value = "实收金额") - private Integer cost; + private String cost; @ApiModelProperty(value = "应收金额") - private Integer accountsReceive; + private String accountsReceive; @ApiModelProperty(value = "业务编号") private String busSid; @ApiModelProperty(value = "付款备注") diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java index 2d9820bbd5..b467d2db45 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java @@ -70,7 +70,13 @@ public interface FinPaymentrecordFeign { @ApiOperation("新增") @PostMapping("/save") @ResponseBody - public ResultBean save(@RequestBody FinPaymentrecordDto dto); + public ResultBean save(@RequestBody FinPaymentrecordDto dto); + + @ApiOperation("新增") + @PostMapping("/saveReturnSid") + @ResponseBody + public ResultBean saveReturnSid(@RequestBody FinPaymentrecordDto dto); + @ApiOperation("修改") @PostMapping("/update") diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java index ad11923f04..1ae4e9229e 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java @@ -62,8 +62,13 @@ public class FinPaymentrecordFeignFallback implements FinPaymentrecordFeign { } @Override - public ResultBean save(FinPaymentrecordDto dto) { - return ResultBean.fireFail().setMsg("接口anrui-fin/finpaymentrecord/save无法访问"); + public ResultBean save(FinPaymentrecordDto dto) { + return null; + } + + @Override + public ResultBean saveReturnSid(FinPaymentrecordDto dto) { + return null; } @Override diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordUpdateDto.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordUpdateDto.java index b9ddfd0896..cf927b8f68 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordUpdateDto.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordUpdateDto.java @@ -49,7 +49,7 @@ public class FinPaymentrecordUpdateDto implements Dto { @ApiModelProperty("供应商编码") private String payCode; @ApiModelProperty(value = "实收金额") - private Integer cost; + private String cost; @ApiModelProperty(value = "应收金额") - private Integer accountsReceive; + private String accountsReceive; } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java index fc35e8c15f..9f5386cfab 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java @@ -79,9 +79,9 @@ public class FinPaymentrecordVo implements Vo { @ApiModelProperty(value = "收款账号") private String receiveBankAccount; @ApiModelProperty(value = "实收金额") - private Integer cost; + private String cost; @ApiModelProperty(value = "应收金额") - private Integer accountsReceive; + private String accountsReceive; @ApiModelProperty(value = "付款凭证") private List payFiles; diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java index 4cbeb63cf4..aaf94ed4d6 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java @@ -46,5 +46,7 @@ public class PaymentVoucher { public BigDecimal amount; @ApiModelProperty("备注") public String remarks; + @ApiModelProperty("借贷方类型") + public String type; } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java index 06fb2e3057..eb9d3616b1 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java @@ -95,4 +95,7 @@ public interface FinBillApplicationMapper extends BaseMapper BillApplicationIInfoVoss selectByContractNos(String contractId); VinListVos selectByBus(@Param("contractNo") String contractId,@Param("vinSid") String s); + + @Select("select * from fin_bill_application where contractNo = #{contractNo} limit 1") + FinBillApplicationDetailsVo selectByCon(String contractNo); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java index bc512b002d..e2991da398 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java @@ -340,4 +340,9 @@ public class FinBillApplicationRest implements FinBillApplicationFeign { public ResultBean selectByContractNo(String contractId, List vins) { return finBillApplicationService.selectByContractNo(contractId,vins); } + + @Override + public ResultBean selectByCon(String contractNo) { + return finBillApplicationService.selectByCon(contractNo); + } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index 3ef54c50eb..cc017baa63 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -4779,4 +4779,10 @@ public class FinBillApplicationService extends MybatisBaseService selectByCon(String contractNo) { + ResultBean rb = ResultBean.fireFail(); + FinBillApplicationDetailsVo finBillApplicationDetailsVo = baseMapper.selectByCon(contractNo); + return rb.success().setData(finBillApplicationDetailsVo); + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java index 5ec479dfd0..9164400f5b 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java @@ -3804,36 +3804,75 @@ public class FinCollectionConfirmationService extends MybatisBaseService bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid); - if (bankResultBean.getData() != null) { - LoanFinBank loanFinBank = bankResultBean.getData(); - if (null != loanFinBank.getReAdvances()) { - BigDecimal paymentMoney = planDetails.getPaymentMoney(); - String subscriptionMoney = v.getSubscriptionMoney(); - BigDecimal subtract = paymentMoney.subtract(new BigDecimal(subscriptionMoney)); - planDetails.setPaymentMoney(subtract); - loanRepaymentPlanDetailsFeign.updateByEntity(planDetails); - if (loanFinBank.getReAdvances() == 1) { - FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); - jr.setCreateBySid(userSid); - SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData(); - jr.setCreateByName(userVo.getName()); - jr.setBusSid(planSid); - jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney())); - jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney())); - jr.setPayCostTitleKey("007"); - jr.setPayCostTitleValue("资方退还垫款"); - jr.setOrgSidPath(planDetails.getOrgSidPath()); - jr.setUseOrgName(planDetails.getUseOrgName()); - jr.setUseOrgSid(planDetails.getUseOrgSid()); - jr.setStaffDeptName(planDetails.getDept()); - jr.setStaffName(planDetails.getStaffName()); - jr.setStaffDeptSid(planDetails.getDeptSid()); - jr.setStaffUserSid(planDetails.getSalesUserSid()); - finUncollectedReceivablesDetailedJRService.insert(jr); + if (v.getReceivablesName().equals("月还")) { + if (null != planDetails.getPaymentMoney()) { + if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 1) { + String orderSid = planDetails.getSalesOrderSid(); + ResultBean bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid); + if (bankResultBean.getData() != null) { + LoanFinBank loanFinBank = bankResultBean.getData(); + if (null != loanFinBank.getReAdvances()) { + BigDecimal paymentMoney = planDetails.getPaymentMoney(); + String subscriptionMoney = v.getSubscriptionMoney(); + BigDecimal subtract = paymentMoney.subtract(new BigDecimal(subscriptionMoney)); + planDetails.setPaymentMoney(subtract); + loanRepaymentPlanDetailsFeign.updateByEntity(planDetails); + if (loanFinBank.getReAdvances() == 1) { + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setCreateBySid(userSid); + SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData(); + jr.setCreateByName(userVo.getName()); + jr.setBusSid(planSid); + jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setPayCostTitleKey("007"); + jr.setPayCostTitleValue("资方退还垫款"); + jr.setOrgSidPath(planDetails.getOrgSidPath()); + jr.setUseOrgName(planDetails.getUseOrgName()); + jr.setUseOrgSid(planDetails.getUseOrgSid()); + jr.setStaffDeptName(planDetails.getDept()); + jr.setStaffName(planDetails.getStaffName()); + jr.setStaffDeptSid(planDetails.getDeptSid()); + jr.setStaffUserSid(planDetails.getSalesUserSid()); + finUncollectedReceivablesDetailedJRService.insert(jr); + } + } + } + } + } + } + if (v.getReceivablesName().equals("资方逾期利息")) { + if (null != planDetails.getPaymentInterest()) { + if (planDetails.getPaymentInterest().compareTo(BigDecimal.ZERO) == 1) { + String orderSid = planDetails.getSalesOrderSid(); + ResultBean bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid); + if (bankResultBean.getData() != null) { + LoanFinBank loanFinBank = bankResultBean.getData(); + if (null != loanFinBank.getReAdvances()) { + BigDecimal paymentInterest = planDetails.getPaymentInterest(); + String subscriptionMoney = v.getSubscriptionMoney(); + BigDecimal subtract = paymentInterest.subtract(new BigDecimal(subscriptionMoney)); + planDetails.setPaymentInterest(subtract); + loanRepaymentPlanDetailsFeign.updateByEntity(planDetails); + if (loanFinBank.getReAdvances() == 1) { + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setCreateBySid(userSid); + SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData(); + jr.setCreateByName(userVo.getName()); + jr.setBusSid(planSid); + jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney())); + jr.setPayCostTitleKey("007"); + jr.setPayCostTitleValue("资方退还垫款"); + jr.setOrgSidPath(planDetails.getOrgSidPath()); + jr.setUseOrgName(planDetails.getUseOrgName()); + jr.setUseOrgSid(planDetails.getUseOrgSid()); + jr.setStaffDeptName(planDetails.getDept()); + jr.setStaffName(planDetails.getStaffName()); + jr.setStaffDeptSid(planDetails.getDeptSid()); + jr.setStaffUserSid(planDetails.getSalesUserSid()); + finUncollectedReceivablesDetailedJRService.insert(jr); + } } } } @@ -3843,17 +3882,17 @@ public class FinCollectionConfirmationService extends MybatisBaseService save(FinPaymentrecordDto dto) { return finPaymentrecordService.saveDto(dto); } + @Override + public ResultBean saveReturnSid(FinPaymentrecordDto dto) { + return finPaymentrecordService.saveReturnSid(dto); + } + @Override public ResultBean update(FinPaymentrecordUpdateDto dto) { return finPaymentrecordService.updateAll(dto); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java index ba79d57eaa..72da53c3d1 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java @@ -52,8 +52,10 @@ import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.BusDeliveredApplyDet import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo; import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapply; import com.yxt.anrui.fin.api.finpaymentrecord.*; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR; import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill; import com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyService; +import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRService; import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService; import com.yxt.anrui.portal.api.flow.FlowableFeign; import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; @@ -66,6 +68,15 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.portal.api.sysuser.UserQuery; +import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApply; +import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereApplyFeign; +import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; +import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehFeign; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo; +import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.ConstantUtils; @@ -89,6 +100,7 @@ import org.springframework.stereotype.Service; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.math.BigDecimal; import java.text.NumberFormat; import java.util.*; import java.util.concurrent.*; @@ -147,6 +159,16 @@ public class FinPaymentrecordService extends MybatisBaseService listPageVo(PagerQuery pq) { FinPaymentrecordQuery query = pq.getParams(); @@ -303,12 +325,20 @@ public class FinPaymentrecordService extends MybatisBaseService saveDto(FinPaymentrecordDto dto) { ResultBean rb = ResultBean.fireFail(); FinPaymentrecord finPaymentrecord = new FinPaymentrecord(); BeanUtil.copyProperties(dto, finPaymentrecord, "sid"); baseMapper.insert(finPaymentrecord); - return rb.success(); + return rb.success().setData(finPaymentrecord.getSid()); + } + + public ResultBean saveReturnSid(FinPaymentrecordDto dto) { + ResultBean rb = ResultBean.fireFail(); + FinPaymentrecord finPaymentrecord = new FinPaymentrecord(); + BeanUtil.copyProperties(dto, finPaymentrecord, "sid"); + baseMapper.insert(finPaymentrecord); + return rb.success().setData(finPaymentrecord.getSid()); } public ResultBean updateAll(FinPaymentrecordUpdateDto dto) { @@ -338,11 +368,44 @@ public class FinPaymentrecordService extends MybatisBaseService list = new ArrayList<>(); for (int i = 0; i < sids.size(); i++) { FinPaymentrecord finPaymentrecord = fetchBySid(sids.get(i)); + //更新还款计划表垫款金额和逾期利息 + if ("007".equals(finPaymentrecord.getCostTypeKey())) { + List loanBePadsincereVehDetailsVos = loanBePadsincereVehFeign.selByMainSid(finPaymentrecord.getBusSid()).getData(); + for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos) { + log.info("车辆sid++++++++++++++++++++++++++++++++++++++++++" + loanBePadsincereVehDetailsVo.getBusVinSid()); + log.info("期数++++++++++++++++++++++++++++++++++++++++++" + loanBePadsincereVehDetailsVo.getPeriod()); + LoanRepaymentPlanMoneyVo loanRepaymentPlanMoneyVo = loanRepaymentPlanDetailsFeign.selVehSidAndPeriod(loanBePadsincereVehDetailsVo.getBusVinSid(), loanBePadsincereVehDetailsVo.getPeriod()).getData(); + LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(loanRepaymentPlanMoneyVo.getSid()).getData(); + String paymentMoney = loanRepaymentPlanMoneyVo.getPaymentMoney().add(new BigDecimal(loanBePadsincereVehDetailsVo.getPadMoney())).toString(); + String paymentInterest = loanRepaymentPlanMoneyVo.getPaymentInterest().add(new BigDecimal(loanBePadsincereVehDetailsVo.getBankBeInter())).toString(); + loanRepaymentPlanDetailsFeign.updateVehSidAndPeriod(loanBePadsincereVehDetailsVo.getBusVinSid(), loanBePadsincereVehDetailsVo.getPeriod(), paymentMoney, paymentInterest); + //推送金融应收 + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setCreateBySid(finPaymentrecord.getCreateBySid()); + SysUserVo userVo = sysUserFeign.fetchBySid(finPaymentrecord.getCreateBySid()).getData(); + jr.setCreateByName(userVo.getName()); + jr.setBusSid(planDetails.getSid()); + jr.setApplySid(finPaymentrecord.getBusSid()); + jr.setCurrentReceivableMoney(new BigDecimal(paymentInterest)); + jr.setReveivableMoney(new BigDecimal(paymentInterest)); + jr.setPayCostTitleKey("005"); + jr.setPayCostTitleValue("资方逾期利息"); + jr.setOrgSidPath(planDetails.getOrgSidPath()); + jr.setUseOrgName(planDetails.getUseOrgName()); + jr.setUseOrgSid(planDetails.getUseOrgSid()); + jr.setStaffDeptName(planDetails.getDept()); + jr.setStaffName(planDetails.getStaffName()); + jr.setStaffDeptSid(planDetails.getDeptSid()); + jr.setStaffUserSid(planDetails.getSalesUserSid()); + finUncollectedReceivablesDetailedJRService.insert(jr); + } + } + FinPaymentrecord finPaymentrecordOne = null; - if (dto.getCost() < finPaymentrecord.getAccountsReceive()) {//实收金额小于应收金额 + if (new BigDecimal(dto.getCost()).compareTo(finPaymentrecord.getAccountsReceive()) < 0) {//实收金额小于应收金额 finPaymentrecordOne = new FinPaymentrecord(); BeanUtil.copyProperties(finPaymentrecord, finPaymentrecordOne, "sid"); - finPaymentrecordOne.setAccountsReceive(finPaymentrecord.getAccountsReceive() - dto.getCost()); + finPaymentrecordOne.setAccountsReceive(finPaymentrecord.getAccountsReceive().subtract(new BigDecimal(dto.getCost()))); finPaymentrecordOne.setCost(finPaymentrecordOne.getAccountsReceive()); } BeanUtil.copyProperties(dto, finPaymentrecord, "sid"); @@ -455,6 +518,18 @@ public class FinPaymentrecordService extends MybatisBaseService { + loanTransferPaymentApplyFeign.pushPaymentRecord(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()); + }); + Future future2 = pool.submit(() -> { + loanTransferPaymentApplyFeign.pushPaymentVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()); + }); + } else if ("007".equals(costTypeKey)) { + Future future1 = pool.submit(() -> { + loanBePadsincereApplyFeign.pushAdvancesVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()); + }); } } catch (Exception e) { e.printStackTrace(); @@ -515,10 +590,10 @@ public class FinPaymentrecordService extends MybatisBaseService FPAYBILLENTRYs = new ArrayList<>(); if (finPaymentrecord.getCost() != null - && finPaymentrecord.getCost() > 0) { + && finPaymentrecord.getCost().compareTo(BigDecimal.ZERO) > 0) { ApPayBill.FPAYBILLENTRY fpaybillentry = new ApPayBill.FPAYBILLENTRY(); //应付金额 - fpaybillentry.setFPAYTOTALAMOUNTFOR(Double.valueOf(finPaymentrecord.getCost())); + fpaybillentry.setFPAYTOTALAMOUNTFOR(finPaymentrecord.getCost().doubleValue()); //登账日期 fpaybillentry.setFPOSTDATE(DateUtil.formatDate(finPaymentrecord.getPayDate())); //我方银行账号 @@ -817,7 +892,7 @@ public class FinPaymentrecordService extends MybatisBaseService select * from anrui_fin.fin_uncollected_receivables_detailed_jr where busSid = #{sid} and payCostTitleValue = #{type} + + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java index c5c5077026..4e10af8906 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java @@ -35,6 +35,7 @@ import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedR import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRQuery; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.result.ResultBean; @@ -135,9 +136,27 @@ public class FinUncollectedReceivablesDetailedJRService extends MybatisBaseServi public ResultBean updateAll(String sid, String type, BigDecimal fundDay) { ResultBean rb = ResultBean.fireFail(); FinUncollectedReceivablesDetailedJR finUncollectedReceivablesDetailedJR = baseMapper.selectByType(sid, type); - BigDecimal bigDecimal =finUncollectedReceivablesDetailedJR.getReveivableMoney().add(fundDay); - finUncollectedReceivablesDetailedJR.setReveivableMoney(bigDecimal); - baseMapper.updateById(finUncollectedReceivablesDetailedJR); + if (finUncollectedReceivablesDetailedJR == null) { + LoanRepaymentPlanDetails planDetails = baseMapper.selectDetails(sid); + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setBusSid(planDetails.getSid()); + jr.setReveivableMoney(fundDay); + jr.setPayCostTitleKey("006"); + jr.setPayCostTitleValue("资金占用费"); + jr.setOrgSidPath(planDetails.getOrgSidPath()); + jr.setUseOrgName(planDetails.getUseOrgName()); + jr.setUseOrgSid(planDetails.getUseOrgSid()); + jr.setStaffDeptName(planDetails.getDept()); + jr.setStaffName(planDetails.getStaffName()); + jr.setStaffDeptSid(planDetails.getDeptSid()); + jr.setStaffUserSid(planDetails.getSalesUserSid()); + baseMapper.insert(jr); + } else { + BigDecimal bigDecimal = finUncollectedReceivablesDetailedJR.getReveivableMoney().add(fundDay); + finUncollectedReceivablesDetailedJR.setReveivableMoney(bigDecimal); + baseMapper.updateById(finUncollectedReceivablesDetailedJR); + } + return rb.success(); } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java index f8d1b025f3..cc2e9bc1fc 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java @@ -550,33 +550,36 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { List voucherDetails = voucher.getVoucherDetails(); if (!voucherDetails.isEmpty()) { for (PaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) { - Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 - Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方 - if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode())) { - dto1.setSummary(voucherDetail.getBankName() + "垫付" + voucherDetail.getCustomerName() + "月还款"); - DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData(); - if (null != dictCommonVo) { - dto1.setSubjectNo(dictCommonVo.getDictValue()); + if (voucherDetail.getType().equals("借方")) { + Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 + if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode())) { + dto1.setSummary(voucherDetail.getBankName() + "垫付" + voucherDetail.getCustomerName() + "月还款"); + DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData(); + if (null != dictCommonVo) { + dto1.setSubjectNo(dictCommonVo.getDictValue()); + } + } else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) { + dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金"); + dto1.setSubjectNo("1201.02.03"); } - } else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) { - dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金"); - dto1.setSubjectNo("1201.02.03"); - } - if (voucher.getPayTypeCode().equals("02")) { - dto2.setSubjectNo("1002.01.00"); - } else if (voucher.getPayTypeCode().equals("01")) { - dto2.setSubjectNo("1002.02.01"); + dto1.setDimensionDept(voucherDetail.getDeptCode()); + dto1.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setDebit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto1); + } else if (voucherDetail.getType().equals("贷方")) { + Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方 + if (voucher.getPayTypeCode().equals("02")) { + dto2.setSubjectNo("1002.01.00"); + } else if (voucher.getPayTypeCode().equals("01")) { + dto2.setSubjectNo("1002.02.01"); + } + String date = sdf.format(voucherDetail.getDataTime()); + String[] split = date.split("-"); + dto2.setSummary(split[1] + "月垫付月还款"); + dto2.setBankAccount(voucher.getBankAccount()); + dto2.setCredit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto2); } - String date = sdf.format(voucherDetail.getDataTime()); - String[] split = date.split("-"); - dto2.setSummary(split[1] + "月垫付月还款"); - dto1.setDimensionDept(voucherDetail.getDeptCode()); - dto1.setDimensionCustom(voucherDetail.getCustomerCode()); - dto2.setBankAccount(voucher.getBankAccount()); - dto1.setDebit(String.valueOf(voucherDetail.getAmount())); - dto2.setCredit(String.valueOf(voucherDetail.getAmount())); - resultDetails.add(dto1); - resultDetails.add(dto2); } newVoucher.setResultDetails(resultDetails); } @@ -643,8 +646,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { List voucherDetails = voucher.getVoucherDetails(); if (!voucherDetails.isEmpty()) { for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) { - Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 - Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方 String format = sdf.format(voucherDetail.getDataTime()); String[] split = format.split("-"); String month = split[1]; @@ -654,18 +655,24 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { } else { m = String.valueOf(Integer.parseInt(month) - 1); } - dto1.setSummary("计提" + m + "逾期利息"); - dto2.setSummary("计提" + m + "逾期利息"); - dto1.setSubjectNo("1201.02.02"); - dto2.setSubjectNo("2191.05.00"); - dto1.setDimensionDept(voucherDetail.getDeptCode()); - dto1.setDimensionCustom(voucherDetail.getCustomerCode()); - dto2.setDimensionDept(voucherDetail.getDeptCode()); - // dto2.setDimensionCustom(voucherDetail.getCustomerCode()); - dto1.setDebit(String.valueOf(voucherDetail.getAmount())); - dto2.setCredit(String.valueOf(voucherDetail.getAmount())); - resultDetails.add(dto1); - resultDetails.add(dto2); + if (voucherDetail.getSceneCode().equals("借方")) { + Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 + dto1.setSummary("计提" + m + "逾期利息"); + dto1.setSubjectNo("1201.02.02"); + dto1.setDimensionDept(voucherDetail.getDeptCode()); + dto1.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setDebit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto1); + } + if (voucherDetail.getSceneCode().equals("贷方")) { + Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方 + dto2.setSummary("计提" + m + "逾期利息"); + dto2.setSubjectNo("2191.05.00"); + dto2.setDimensionDept(voucherDetail.getDeptCode()); + // dto2.setDimensionCustom(voucherDetail.getCustomerCode()); + dto2.setCredit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto2); + } } newVoucher.setResultDetails(resultDetails); } diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java index 2ebb097aaf..c3c899c390 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java @@ -71,6 +71,10 @@ public enum ProcDefEnum { LOANVEHCLEARANCEAPPLY("车辆远程解控申请", "process_zbzenr9b:2:7782504"), LOANRESTOREREPORTAPPLY("车辆交回事前报备申请", "process_w796wtt7:1:7822504"), LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"), + LOANRETUENINBOUNDAPPLY("交回车辆入库申请", "process_h0i1vnn8:1:7945004"), + LOANSUBLETAPPLY("交回车辆二次转租申请", "process_lu7pdwzs:1:7940004"), + LOANOUTBOUNDVEHAPPLY("交回车辆出库申请", "process_14spbdx8:1:7982504"), + LOANSECONDSALEAPPLY("交车车辆二次销售申请", "process_6kb1z0pe:4:8110004"), /******************************测试流程id*********************************************/ diff --git a/anrui-riskcenter-ui/src/api/Common/dictcommons.js b/anrui-riskcenter-ui/src/api/Common/dictcommons.js index f6a8b305fe..5a3ab83031 100644 --- a/anrui-riskcenter-ui/src/api/Common/dictcommons.js +++ b/anrui-riskcenter-ui/src/api/Common/dictcommons.js @@ -52,7 +52,7 @@ export function selModelByUseOrgSid(data) { }) } -// 根据当前登录用户的全路径sidPath、用户sid、客户类型(01个人、02企业)等获取客户信息 +// 根据当前登录用户的全路径sidPath、用户sid、客户类型(01个人、02企业)等获取当前登录用户下的客户信息 export function selectCustomerList(data) { return request({ url: '/crm/v1/crmcustomertemp/selectCustomerList', @@ -61,6 +61,15 @@ export function selectCustomerList(data) { }) } +// 根据当前登录用户的全路径sidPath获取分公司下的客户信息 +export function pickCustomer(data) { + return request({ + url: '/riskcenter/v1/loansubletapply/pickCustomer', + method: 'get', + params: data + }) +} + // 当前用户创建申请时判断该用户是否有该菜单的操作权限 export function selectHaveMessage(data) { return request({ @@ -186,3 +195,16 @@ export function getGressionUserList(data) { params: data }) } + +// 车型配置详细信息 +export function selectExiCarConfig(data) { + return request({ + url: '/base/v1/basevehicle/selectExiCarConfig', + method: 'post', + params: { + modelSid: data.modelSid, + configSid: data.configSid, + vehModelConfigSid: data.vehModelConfigSid + } + }) +} diff --git a/anrui-riskcenter-ui/src/api/returntheaccount/returntheaccount.js b/anrui-riskcenter-ui/src/api/returntheaccount/returntheaccount.js new file mode 100644 index 0000000000..084fd8bbe0 --- /dev/null +++ b/anrui-riskcenter-ui/src/api/returntheaccount/returntheaccount.js @@ -0,0 +1,21 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/riskcenter/v1/LoanReturnVehLedger/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + update: function(data) { + return request({ + url: '/riskcenter/v1/LoanReturnVehLedger/update', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + } +} diff --git a/anrui-riskcenter-ui/src/api/returntostorage/returntostorage.js b/anrui-riskcenter-ui/src/api/returntostorage/returntostorage.js index 1211c11171..ada094603c 100644 --- a/anrui-riskcenter-ui/src/api/returntostorage/returntostorage.js +++ b/anrui-riskcenter-ui/src/api/returntostorage/returntostorage.js @@ -4,36 +4,38 @@ export default { // 查询分页列表 listPage: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/listPage', + url: '/riskcenter/v1/LoanReturnInboundApply/listPage', method: 'post', data: params, headers: { 'Content-Type': 'application/json' } }) }, - saveOrUpdate: function(data) { + getVinList: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/save', + url: '/riskcenter/v1/LoanReturnInboundApply/getInboundList', method: 'post', - data: data, + data: params, headers: { 'Content-Type': 'application/json' } }) }, - init: function(data) { + saveOrUpdate: function(data) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/init', - method: 'get', - params: data + url: '/riskcenter/v1/LoanReturnInboundApply/saveOrUpdate', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } }) }, fetchBySid: function(data) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/fetchDetailsBySid/' + data, - method: 'get' + url: '/riskcenter/v1/LoanReturnInboundApply/details', + method: 'post', + params: data }) }, deleteBySids: function(data) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/delBySids', + url: '/riskcenter/v1/LoanReturnInboundApply/delBySids', method: 'DELETE', data: data, headers: { 'Content-Type': 'application/json' } @@ -42,7 +44,7 @@ export default { // 提交流程 submit: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/submit', + url: '/riskcenter/v1/LoanReturnInboundApply/submitApply', method: 'post', data: params, headers: { 'Content-Type': 'application/json' } @@ -51,7 +53,7 @@ export default { // 流程审批(同意) complete: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/complete', + url: '/riskcenter/v1/LoanReturnInboundApply/complete', method: 'post', data: params, headers: { 'Content-Type': 'application/json' } @@ -60,7 +62,7 @@ export default { // 流程审批(加签) delegate: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/delegate', + url: '/riskcenter/v1/LoanReturnInboundApply/delegate', method: 'post', data: params, headers: { 'Content-Type': 'application/json' } @@ -69,7 +71,7 @@ export default { // 流程审批(驳回) reject: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/reject', + url: '/riskcenter/v1/LoanReturnInboundApply/reject', method: 'post', data: params, headers: { 'Content-Type': 'application/json' } @@ -78,7 +80,7 @@ export default { // 流程审批(终止) breakProcess: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/breakProcess', + url: '/riskcenter/v1/LoanReturnInboundApply/breakProcess', method: 'post', data: params, headers: { 'Content-Type': 'application/json' } @@ -87,7 +89,7 @@ export default { // 流程审批(撤回) revokeProcess: function(params) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/revokeProcess', + url: '/riskcenter/v1/LoanReturnInboundApply/revokeProcess', method: 'post', data: params, headers: { 'Content-Type': 'application/json' } @@ -96,7 +98,7 @@ export default { // 审批流程(同意)获取下一环节 getNextNodesForSubmit: function(data) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/getNextNodesForSubmit', + url: '/riskcenter/v1/LoanReturnInboundApply/getNextNodesForSubmit', method: 'get', params: data }) @@ -104,7 +106,7 @@ export default { // 审批流程(驳回)获取上一环节 getPreviousNodesForReject: function(data) { return request({ - url: '/riskcenter/v1/loanrestorereportapply/getPreviousNodesForReject', + url: '/riskcenter/v1/LoanReturnInboundApply/getPreviousNodesForReject', method: 'get', params: data }) diff --git a/anrui-riskcenter-ui/src/api/returntothewarehouse/returntothewarehouse.js b/anrui-riskcenter-ui/src/api/returntothewarehouse/returntothewarehouse.js new file mode 100644 index 0000000000..897af26b63 --- /dev/null +++ b/anrui-riskcenter-ui/src/api/returntothewarehouse/returntothewarehouse.js @@ -0,0 +1,98 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + saveOrUpdate: function(data) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/updateOutbound', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + fetchBySid: function(data) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/outboundDetails', + method: 'get', + params: data + }) + }, + // 提交流程 + submit: function(params) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/submit', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(同意) + complete: function(params) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/complete', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(加签) + delegate: function(params) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/delegate', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(驳回) + reject: function(params) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/reject', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(终止) + breakProcess: function(params) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/breakProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(撤回) + revokeProcess: function(params) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/revokeProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 审批流程(同意)获取下一环节 + getNextNodesForSubmit: function(data) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/getNextNodesForSubmit', + method: 'get', + params: data + }) + }, + // 审批流程(驳回)获取上一环节 + getPreviousNodesForReject: function(data) { + return request({ + url: '/riskcenter/v1/loanoutboundapply/getPreviousNodesForReject', + method: 'get', + params: data + }) + } +} diff --git a/anrui-riskcenter-ui/src/api/secondarysales/secondarysales.js b/anrui-riskcenter-ui/src/api/secondarysales/secondarysales.js new file mode 100644 index 0000000000..7f518cd113 --- /dev/null +++ b/anrui-riskcenter-ui/src/api/secondarysales/secondarysales.js @@ -0,0 +1,140 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + getVinList: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/getVinList', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + saveOrUpdate: function(data) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/saveOrUpdate', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 生成合同--初始化 + getDetails: function(data) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesCustomer/getDetails', + method: 'get', + params: data + }) + }, + // 生成合同--保存合同 + save: function(data) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesCustomer/saveOrUpdate', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + fetchBySid: function(data) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/details', + method: 'POST', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + deleteBySids: function(data) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/delBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 销售订单 -- 金融方案初始化 + selectDetailss: function(data) { + return request({ + url: '/riskcenter/v1/loansolutions/selectDetailss', + method: 'get', + params: data + }) + }, + // 提交流程 + submit: function(params) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/submitApply', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(同意) + complete: function(params) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/complete', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(加签) + delegate: function(params) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/delegate', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(驳回) + reject: function(params) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/reject', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(终止) + breakProcess: function(params) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/breakProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(撤回) + revokeProcess: function(params) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/revokeProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 审批流程(同意)获取下一环节 + getNextNodesForSubmit: function(data) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/getNextNodesForSubmit', + method: 'get', + params: data + }) + }, + // 审批流程(驳回)获取上一环节 + getPreviousNodesForReject: function(data) { + return request({ + url: '/riskcenter/v1/LoanSecondarySalesApply/getPreviousNodesForReject', + method: 'get', + params: data + }) + } +} diff --git a/anrui-riskcenter-ui/src/api/secondarysublet/secondarysublet.js b/anrui-riskcenter-ui/src/api/secondarysublet/secondarysublet.js new file mode 100644 index 0000000000..83f050db15 --- /dev/null +++ b/anrui-riskcenter-ui/src/api/secondarysublet/secondarysublet.js @@ -0,0 +1,129 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + getVinList: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/getVinList', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + saveOrUpdate: function(data) { + return request({ + url: '/riskcenter/v1/loansubletapply/saveSublet', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + init: function(data) { + return request({ + url: '/riskcenter/v1/loansubletapply/subletInit', + method: 'get', + params: data + }) + }, + fetchBySid: function(data) { + return request({ + url: '/riskcenter/v1/loansubletapply/subletDetails', + method: 'get', + params: data + }) + }, + deleteBySids: function(data) { + return request({ + url: '/riskcenter/v1/loansubletapply/deleteBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 销售订单 -- 金融方案初始化 + selectDetailss: function(data) { + return request({ + url: '/riskcenter/v1/loansolutions/selectDetailss', + method: 'get', + params: data + }) + }, + // 提交流程 + submit: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/submit', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(同意) + complete: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/complete', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(加签) + delegate: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/delegate', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(驳回) + reject: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/reject', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(终止) + breakProcess: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/breakProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 流程审批(撤回) + revokeProcess: function(params) { + return request({ + url: '/riskcenter/v1/loansubletapply/revokeProcess', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 审批流程(同意)获取下一环节 + getNextNodesForSubmit: function(data) { + return request({ + url: '/riskcenter/v1/loansubletapply/getNextNodesForSubmit', + method: 'get', + params: data + }) + }, + // 审批流程(驳回)获取上一环节 + getPreviousNodesForReject: function(data) { + return request({ + url: '/riskcenter/v1/loansubletapply/getPreviousNodesForReject', + method: 'get', + params: data + }) + } +} diff --git a/anrui-riskcenter-ui/src/components/publicPage/criterion.vue b/anrui-riskcenter-ui/src/components/publicPage/criterion.vue new file mode 100644 index 0000000000..0d254e4a48 --- /dev/null +++ b/anrui-riskcenter-ui/src/components/publicPage/criterion.vue @@ -0,0 +1,65 @@ + + + + diff --git a/anrui-riskcenter-ui/src/components/publicPage/vehicleconfiguration.vue b/anrui-riskcenter-ui/src/components/publicPage/vehicleconfiguration.vue new file mode 100644 index 0000000000..d53c3596eb --- /dev/null +++ b/anrui-riskcenter-ui/src/components/publicPage/vehicleconfiguration.vue @@ -0,0 +1,307 @@ + + + + diff --git a/anrui-riskcenter-ui/src/router/index.js b/anrui-riskcenter-ui/src/router/index.js index 6df3fa8700..683e400ffd 100644 --- a/anrui-riskcenter-ui/src/router/index.js +++ b/anrui-riskcenter-ui/src/router/index.js @@ -583,6 +583,38 @@ export const constantRoutes = [ } ] }, + { + path: '/returntostorage', + component: Layout, + redirect: '/returntostorage', + meta: { + title: '交回车辆入库申请' + }, + children: [ + { + path: '/returntostorage/returntostorage', + component: () => import('@/views/returntostorage/returntostorage.vue'), + name: 'ReturnToStorage', + meta: { title: '交回车辆入库申请', noCache: true } + } + ] + }, + { + path: '/returntheaccount', + component: Layout, + redirect: '/returntheaccount', + meta: { + title: '交回车辆台账' + }, + children: [ + { + path: '/returntheaccount/returntheaccount', + component: () => import('@/views/returntheaccount/returntheaccount.vue'), + name: 'ReturnTheAccount', + meta: { title: '交回车辆台账', noCache: true } + } + ] + }, { path: '/surrenderforredemption', component: Layout, @@ -599,6 +631,54 @@ export const constantRoutes = [ } ] }, + { + path: '/secondarysales', + component: Layout, + redirect: '/secondarysales', + meta: { + title: '交回车辆二次销售' + }, + children: [ + { + path: '/secondarysales/secondarysales', + component: () => import('@/views/secondarysales/secondarysales.vue'), + name: 'SecondarySales', + meta: { title: '交回车辆二次销售', noCache: true } + } + ] + }, + { + path: '/secondarysublet', + component: Layout, + redirect: '/secondarysublet', + meta: { + title: '交回车辆二次转租' + }, + children: [ + { + path: '/secondarysublet/secondarysublet', + component: () => import('@/views/secondarysublet/secondarysublet.vue'), + name: 'SecondarySublet', + meta: { title: '交回车辆二次转租', noCache: true } + } + ] + }, + { + path: '/returntothewarehouse', + component: Layout, + redirect: '/returntothewarehouse', + meta: { + title: '交回车辆出库申请' + }, + children: [ + { + path: '/returntothewarehouse/returntothewarehouse', + component: () => import('@/views/returntothewarehouse/returntothewarehouse.vue'), + name: 'ReturnToTheWarehouse', + meta: { title: '交回车辆出库申请', noCache: true } + } + ] + }, // 流程审批 // 金融产品政策报备--编辑 @@ -954,6 +1034,27 @@ export const constantRoutes = [ import('@/views/workFlow/zifangduizhangFlow/zifangduizhangYiBan.vue'), name: 'ZiFangDuiZhangYiBan' }, + // 交回车辆入库申请管理--编辑 + { + path: '/jiaohuirukuFlow/returntostorageEdit', + component: () => + import('@/views/workFlow/jiaohuirukuFlow/returntostorageEdit.vue'), + name: 'ReturnToStorageEdit' + }, + // 交回车辆入库申请管理--待办 + { + path: '/jiaohuirukuFlow/returntostorageDaiBan', + component: () => + import('@/views/workFlow/jiaohuirukuFlow/returntostorageDaiBan.vue'), + name: 'ReturnToStorageDaiBan' + }, + // 交回车辆入库申请管理--已办 + { + path: '/jiaohuirukuFlow/returntostorageYiBan', + component: () => + import('@/views/workFlow/jiaohuirukuFlow/returntostorageYiBan.vue'), + name: 'ReturnToStorageYiBan' + }, // 交回车辆赎回申请管理--编辑 { path: '/jiaohuishuhuiFlow/surrenderforredemptionEdit', @@ -974,6 +1075,76 @@ export const constantRoutes = [ component: () => import('@/views/workFlow/jiaohuishuhuiFlow/surrenderforredemptionYiBan.vue'), name: 'SurrenderForRedemptionYiBan' + }, + // 交回车辆二次销售申请管理--编辑 + { + path: '/ercixiaoshouFlow/secondarysalesEdit', + component: () => + import('@/views/workFlow/ercixiaoshouFlow/secondarysalesEdit.vue'), + name: 'SecondarySalesEdit' + }, + // 交回车辆二次销售申请管理--待办 + { + path: '/ercixiaoshouFlow/secondarysalesDaiBan', + component: () => + import('@/views/workFlow/ercixiaoshouFlow/secondarysalesDaiBan.vue'), + name: 'SecondarySalesDaiBan' + }, + // 交回车辆二次销售申请管理--待办--风控中心处置岗填写车辆评估价 + { + path: '/ercixiaoshouFlow/secondarysalesByPGJ', + component: () => + import('@/views/workFlow/ercixiaoshouFlow/secondarysalesByPGJ.vue'), + name: 'SecondarySalesByPGJ' + }, + // 交回车辆二次销售申请管理--已办 + { + path: '/ercixiaoshouFlow/secondarysalesYiBan', + component: () => + import('@/views/workFlow/ercixiaoshouFlow/secondarysalesYiBan.vue'), + name: 'SecondarySalesYiBan' + }, + // 交回车辆二次转租申请管理--编辑 + { + path: '/ercizhuanzuFlow/secondarysubletEdit', + component: () => + import('@/views/workFlow/ercizhuanzuFlow/secondarysubletEdit.vue'), + name: 'SecondarySubletEdit' + }, + // 交回车辆二次转租申请管理--待办 + { + path: '/ercizhuanzuFlow/secondarysubletDaiBan', + component: () => + import('@/views/workFlow/ercizhuanzuFlow/secondarysubletDaiBan.vue'), + name: 'SecondarySubletDaiBan' + }, + // 交回车辆二次转租申请管理--已办 + { + path: '/ercizhuanzuFlow/secondarysubletYiBan', + component: () => + import('@/views/workFlow/ercizhuanzuFlow/secondarysubletYiBan.vue'), + name: 'SecondarySubletYiBan' + }, + // 交回车辆出库申请管理--编辑 + { + path: '/jiaohuichukuFlow/returntothewarehouseEdit', + component: () => + import('@/views/workFlow/jiaohuichukuFlow/returntothewarehouseEdit.vue'), + name: 'ReturnToTheWarehouseEdit' + }, + // 交回车辆出库申请管理--待办 + { + path: '/jiaohuichukuFlow/returntothewarehouseDaiBan', + component: () => + import('@/views/workFlow/jiaohuichukuFlow/returntothewarehouseDaiBan.vue'), + name: 'ReturnToTheWarehouseDaiBan' + }, + // 交回车辆出库申请管理--已办 + { + path: '/jiaohuichukuFlow/returntothewarehouseYiBan', + component: () => + import('@/views/workFlow/jiaohuichukuFlow/returntothewarehouseYiBan.vue'), + name: 'ReturnToTheWarehouseYiBan' }, // 404 page must be placed at the end !!! // { path: '*', redirect: '/404', hidden: true } diff --git a/anrui-riskcenter-ui/src/views/advancerequest/advancerequestAdd.vue b/anrui-riskcenter-ui/src/views/advancerequest/advancerequestAdd.vue index a2687dcac2..8b1b7a3239 100644 --- a/anrui-riskcenter-ui/src/views/advancerequest/advancerequestAdd.vue +++ b/anrui-riskcenter-ui/src/views/advancerequest/advancerequestAdd.vue @@ -30,7 +30,7 @@
财务付款形式
- + @@ -279,6 +279,8 @@ export default { req.init({ orgPath: window.sessionStorage.getItem('defaultOrgPath'), userSid: window.sessionStorage.getItem('userSid') }).then((res) => { if (res.success) { this.formobj = res.data + this.formobj.finPaymentFormKey = '01' + this.formobj.finPaymentFormValue = '按资方合同编号单笔付款' } }) }, diff --git a/anrui-riskcenter-ui/src/views/alsotransfer/alsotransfer.vue b/anrui-riskcenter-ui/src/views/alsotransfer/alsotransfer.vue index 2568ffdb62..d87070969f 100644 --- a/anrui-riskcenter-ui/src/views/alsotransfer/alsotransfer.vue +++ b/anrui-riskcenter-ui/src/views/alsotransfer/alsotransfer.vue @@ -67,8 +67,8 @@ - - + +
diff --git a/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewAdd.vue b/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewAdd.vue index 7cab719464..ae008093d2 100644 --- a/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewAdd.vue +++ b/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewAdd.vue @@ -21,25 +21,25 @@ -
房屋照片
+
小区/村口照片
-
门口照片
+
住所照片
+ + + + + + -
客厅卧室照片
- -
-
- - -
合影照等
+
签字合影照
diff --git a/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewInfo.vue b/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewInfo.vue index 5a6fff5842..6ed98bbce5 100644 --- a/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewInfo.vue +++ b/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewInfo.vue @@ -20,25 +20,25 @@ -
房屋照片
+
小区/村口照片
-
门口照片
+
住所照片
+ + + + + + -
客厅卧室照片
- -
-
- - -
合影照等
+
签字合影照
diff --git a/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewReplenish.vue b/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewReplenish.vue index 118a14fb17..c1617059f2 100644 --- a/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewReplenish.vue +++ b/anrui-riskcenter-ui/src/views/homevisitdatareview/homevisitdatareviewReplenish.vue @@ -19,25 +19,25 @@ -
房屋照片
+
小区/村口照片
-
门口照片
+
住所照片
+ + + + + + -
客厅卧室照片
- -
-
- - -
合影照等
+
签字合影照
diff --git a/anrui-riskcenter-ui/src/views/monthlypayment/monthlypayment.vue b/anrui-riskcenter-ui/src/views/monthlypayment/monthlypayment.vue index 6195a44213..2248a0a582 100644 --- a/anrui-riskcenter-ui/src/views/monthlypayment/monthlypayment.vue +++ b/anrui-riskcenter-ui/src/views/monthlypayment/monthlypayment.vue @@ -57,6 +57,7 @@
+ 需调整 查询 重置
@@ -149,7 +150,7 @@ import Pagination from '@/components/pagination' import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar' import req from '@/api/monthlypayment/monthlypayment' -import { typeValues } from '@/api/Common/dictcommons' +import { typeValues, getButtonPermissions } from '@/api/Common/dictcommons' import adjust from './adjust' import deductAdd from '../deduct/deductAdd' @@ -271,7 +272,8 @@ export default { borrowerName: '', period: '', returnWayKey: '', - buckleKey: '' + buckleKey: '', + change: '0' } } } @@ -281,7 +283,18 @@ export default { this.getList() }, mounted() { - this.$refs['btnbar'].setButtonList(this.btnList) + getButtonPermissions({ userSid: window.sessionStorage.getItem('userSid'), url: this.$route.path, type: 0 }).then((res) => { + if (res.success) { + for (var i = 0; i < res.data.length; i++) { + for (var k = 0; k < this.btnList.length; k++) { + if (res.data[i].buttonId === this.btnList[k].btnKey) { + this.btnList.splice(k, 1) + } + } + } + this.$refs['btnbar'].setButtonList(this.btnList) + } + }) }, methods: { init() { @@ -357,6 +370,11 @@ export default { } }) }, + handleAdjust() { + this.listQuery.current = 1 + this.listQuery.params.change = '1' + this.getList() + }, // 查询按钮 handleFilter() { this.listQuery.current = 1 @@ -386,7 +404,8 @@ export default { borrowerName: '', period: '', returnWayKey: '', - buckleKey: '' + buckleKey: '', + change: '0' } } this.getList() diff --git a/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalAdd.vue b/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalAdd.vue index 9a8f7f2b8b..7fc01a80a2 100644 --- a/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalAdd.vue +++ b/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalAdd.vue @@ -56,7 +56,7 @@ - + @@ -231,8 +231,8 @@ export default { this.upload_list.forEach((e) => { this.formobj.detailsVoList.forEach((k) => { if (e.bankContractNo === k.bankContractNo) { - k.tiredDeficiency = e.bankOverdueMoney - k.diffMoney = parseFloat(k.overdueMoney) - parseFloat(k.tiredDeficiency) + k.bankOverdueMoney = e.bankOverdueMoney + k.diffMoney = parseFloat(k.overdueMoney) - parseFloat(k.bankOverdueMoney) } }) }) diff --git a/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalInfo.vue b/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalInfo.vue index e54e008415..5299b2062f 100644 --- a/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalInfo.vue +++ b/anrui-riskcenter-ui/src/views/overduereconciliationcapital/overduereconciliationcapitalInfo.vue @@ -53,7 +53,7 @@ - + diff --git a/anrui-riskcenter-ui/src/views/overduevehicle/relation/materialInfo.vue b/anrui-riskcenter-ui/src/views/overduevehicle/relation/materialInfo.vue index c5a14f79dc..22e41958e1 100644 --- a/anrui-riskcenter-ui/src/views/overduevehicle/relation/materialInfo.vue +++ b/anrui-riskcenter-ui/src/views/overduevehicle/relation/materialInfo.vue @@ -20,25 +20,25 @@ -
房屋照片
+
小区/村口照片
-
门口照片
+
住所照片
+ + + + + + -
客厅卧室照片
- -
-
- - -
合影照等
+
签字合影照
diff --git a/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrol.vue b/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrol.vue index 4b310aec02..62c92add43 100644 --- a/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrol.vue +++ b/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrol.vue @@ -12,12 +12,12 @@ - - - + + + @@ -57,12 +57,12 @@ {{ scope.row.nodeState }}
- + - + diff --git a/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolAdd.vue b/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolAdd.vue index 05bee4f5ae..db4a67fdcf 100644 --- a/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolAdd.vue +++ b/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolAdd.vue @@ -50,13 +50,13 @@ 删除 - + - + - + diff --git a/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolInfo.vue b/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolInfo.vue index c85e8c21aa..70cc4b6a7e 100644 --- a/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolInfo.vue +++ b/anrui-riskcenter-ui/src/views/remotedecontrol/remotedecontrolInfo.vue @@ -42,13 +42,13 @@
- + - + - + diff --git a/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentschedule.vue b/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentschedule.vue index f926c610fd..fd86a0d48c 100644 --- a/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentschedule.vue +++ b/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentschedule.vue @@ -251,7 +251,7 @@ export default { }, toEdit() { if (this.sids.length === 1) { - if (this.multipleSelection[0].bankContractNo !== '' && (this.multipleSelection[0].builded === '否' && this.multipleSelection[0].handleBtn)) { + if (this.multipleSelection[0].handleBtn) { this.viewState = 2 this.$refs['divAdd'].showEdit(this.sids[0]) } else { diff --git a/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue b/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue index 62ce046af6..3466d4aaff 100644 --- a/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue +++ b/anrui-riskcenter-ui/src/views/repaymentschedule/repaymentscheduleAdd.vue @@ -2,7 +2,7 @@
-
{{ viewTitle }}
+
生成还款计划表(单车)
生成 关闭 @@ -27,7 +27,7 @@
主金融产品{{ (formobj.policyName) }}
- 查看金融方案 + 查看单车金融方案
@@ -40,30 +40,30 @@ {{ formobj.mainPeriod }} -
首期还款日
- +
*首期还款日
+
-
首期月还
- +
*首期月还
+
-
期间月还
- +
*期间月还
+
-
末期月还
- +
*末期月还
+
其它融({{ formobj.otherPolicyName }})
-
资方合同号
- +
*资方合同号
+ {{ formobj.otherBankNo }} @@ -79,22 +79,22 @@ {{ formobj.otherPeriod }}
-
首期还款日
- +
*首期还款日
+
-
首期月还
- +
*首期月还
+
-
期间月还
- +
*期间月还
+
-
末期月还
- +
*末期月还
+
@@ -116,8 +116,73 @@ export default { financialschemeInfo }, data() { + var mainFirstRepay = (rule, value, callback) => { + if (value === '') { + callback(new Error('主金融产品期间月还不能为空')) + } else { + if (value == '0') { + callback(new Error('主金融产品期间月还不能为零')) + } else { + callback() + } + } + } + var mainMidRepay = (rule, value, callback) => { + if (value === '') { + callback(new Error('主金融产品期间月还不能为空')) + } else { + if (value == '0') { + callback(new Error('主金融产品期间月还不能为零')) + } else { + callback() + } + } + } + var mainLastRepay = (rule, value, callback) => { + if (value === '') { + callback(new Error('主金融产品末期月还不能为空')) + } else { + if (value == '0') { + callback(new Error('主金融产品末期月还不能为零')) + } else { + callback() + } + } + } + var otherFirstRepay = (rule, value, callback) => { + if (value === '') { + callback(new Error('其它融首期月还不能为空')) + } else { + if (value == '0') { + callback(new Error('其它融首期月还不能为零')) + } else { + callback() + } + } + } + var otherMdRepay = (rule, value, callback) => { + if (value === '') { + callback(new Error('其它融期间月还不能为空')) + } else { + if (value == '0') { + callback(new Error('其它融期间月还不能为零')) + } else { + callback() + } + } + } + var otherLastRepay = (rule, value, callback) => { + if (value === '') { + callback(new Error('其它融末期月还不能为空')) + } else { + if (value == '0') { + callback(new Error('其它融末期月还不能为零')) + } else { + callback() + } + } + } return { - viewTitle: '', viewState: 1, submitdisabled: false, formobj: { @@ -146,12 +211,21 @@ export default { userSid: '', solutionsDetailsssVo: [] }, - rules: {} + rules: { + mainRepayDate: [{ required: true, message: '主金融产品首期还款日不能为空', trigger: 'change' }], + mainFirstRepay: [{ required: true, validator: mainFirstRepay, trigger: 'blur' }], + mainMidRepay: [{ required: true, validator: mainMidRepay, trigger: 'blur' }], + mainLastRepay: [{ required: true, validator: mainLastRepay, trigger: 'blur' }], + otherFirstRepay: [{ required: true, validator: otherFirstRepay, trigger: 'blur' }], + otherMidRepay: [{ required: true, validator: otherMdRepay, trigger: 'blur' }], + otherLastRepay: [{ required: true, validator: otherLastRepay, trigger: 'blur' }], + otherBankNo: [{ required: true, message: '其它融资方合同号不能为空', trigger: 'blur' }], + otherRepayDate: [{ required: true, message: '其它融首期还款日不能为空', trigger: 'change' }] + } } }, methods: { showEdit(sid) { - this.viewTitle = '生成还款计划表' this.$nextTick(() => { this.$refs['form_obj'].clearValidate() }) @@ -176,6 +250,11 @@ export default { this.$message({ showClose: true, type: 'success', message: '生成成功' }) this.handleReturn('true') } + else { + this.submitdisabled = false + } + }).catch(() => { + this.submitdisabled = false }) } }) @@ -233,6 +312,9 @@ export default { .addinputInfo { margin-left: 120px !important; } +/deep/ .el-form-item__error { + margin-left: 110px !important; +} .titleOne { padding: 7px; display: flex; diff --git a/anrui-riskcenter-ui/src/views/returnreserve/returnreserve.vue b/anrui-riskcenter-ui/src/views/returnreserve/returnreserve.vue index 849678803e..bc7e961cb6 100644 --- a/anrui-riskcenter-ui/src/views/returnreserve/returnreserve.vue +++ b/anrui-riskcenter-ui/src/views/returnreserve/returnreserve.vue @@ -12,12 +12,12 @@ - - - + + + @@ -88,12 +88,12 @@ {{ scope.row.nodeState }} - + - + @@ -113,7 +113,7 @@ {{ scope.row.modifyTime }} - + @@ -133,7 +133,7 @@ {{ scope.row.bankName }} - + diff --git a/anrui-riskcenter-ui/src/views/returntheaccount/returntheaccount.vue b/anrui-riskcenter-ui/src/views/returntheaccount/returntheaccount.vue new file mode 100644 index 0000000000..138b0f334b --- /dev/null +++ b/anrui-riskcenter-ui/src/views/returntheaccount/returntheaccount.vue @@ -0,0 +1,404 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/returntostorage/returntostorage.vue b/anrui-riskcenter-ui/src/views/returntostorage/returntostorage.vue index 19cc643627..4421841cd8 100644 --- a/anrui-riskcenter-ui/src/views/returntostorage/returntostorage.vue +++ b/anrui-riskcenter-ui/src/views/returntostorage/returntostorage.vue @@ -8,7 +8,7 @@
{{ searchxianshitit }} - + - + + + +
+ + + + + + + + + 查询 + + +
+ + + + + + + + + + + + +
+
+ + +
+
@@ -153,19 +214,19 @@ import Pagination from '@/components/pagination' import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar' -import req from '@/api/returnreserve/returnreserve' +import req from '@/api/returntostorage/returntostorage' import { getStorage } from '@/utils/auth' -import returnreserveAdd from './returnreserveAdd' -import returnreserveInfo from './returnreserveInfo' +import returntostorageAdd from './returntostorageAdd' +import returntostorageInfo from './returntostorageInfo' export default { - name: 'ReturnReserve', + name: 'ReturnToStorage', components: { Pagination, pageye, ButtonBar, - returnreserveAdd, - returnreserveInfo + returntostorageAdd, + returntostorageInfo }, data() { return { @@ -202,6 +263,16 @@ export default { tableKey: 0, list: [], sids: [], // 用于导出的时候保存已选择的SIDs + tralier_list: [ + { + dictKey: '0', + dictValue: '是' + }, + { + dictKey: '1', + dictValue: '否' + } + ], FormLoading: false, listLoading: false, // 翻页 @@ -210,18 +281,40 @@ export default { size: 5, total: 0, params: { + bankContractNo: '', + bankName: '', + closeDateEnd: '', + closeDateStart: '', + createDateEnd: '', + createDateStart: '', createByName: '', - createEndTime: '', - createStartTime: '', - deptName: '', + createDept: '', + customerName: '', + loanContractNo: '', + loanName: '', menuUrl: '', - modifyEndTime: '', - modifyStartTime: '', orgPath: '', + tralier: '', useOrgName: '', - userSid: '' + userSid: '', + vehMark: '', + vinNo: '' } - } + }, + carVisible: false, + carKey: 2, + carList: { + current: 1, + size: 5, + total: 0, + params: { + vehMark: '', + vinNo: '', + orgPath: '' + } + }, + listByCar: [], + carLoading: false } }, created() { @@ -257,7 +350,7 @@ export default { this.centerDialogVisible = true var params = { deployId: row.procDefId, - procInsId: row.procInstSid, + procInsId: row.procInstId, token: getStorage() } this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params))) @@ -330,23 +423,32 @@ export default { size: 5, total: 0, params: { + bankContractNo: '', + bankName: '', + closeDateEnd: '', + closeDateStart: '', + createDateEnd: '', + createDateStart: '', createByName: '', createEndTime: '', createStartTime: '', deptName: '', menuUrl: '', - modifyEndTime: '', - modifyStartTime: '', orgPath: '', + tralier: '', useOrgName: '', - userSid: '' + userSid: '', + vehMark: '', + vinNo: '' } } this.getList() }, toAdd() { - this.viewState = 2 - this.$refs['divAdd'].showAdd() + this.carVisible = true + this.carList.params.vinNo = '' + this.carList.params.vehMark = '' + this.getCarList() }, toEdit(row) { this.viewState = 3 @@ -386,6 +488,35 @@ export default { }).catch(() => { }) }, + // 现车序号 + carindexMethod(index) { + var pagestart = (this.carList.current - 1) * this.carList.size + var pageindex = index + 1 + pagestart + return pageindex + }, + getCarList() { + this.carLoading = true + this.carList.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') + req.getVinList(this.carList).then(response => { + this.carLoading = false + if (response.success) { + this.listByCar = response.data.records + this.carList.total = response.data.total + } else { + this.listByCar = [] + this.carList.total = 0 + } + }) + }, + selectCar() { + this.carList.current = 1 + this.getCarList() + }, + chooseCar(row) { + this.carVisible = false + this.viewState = 2 + this.$refs['divAdd'].showAdd(row) + }, // 修改、编辑、详情返回列表页面 resetState() { this.viewState = 1 diff --git a/anrui-riskcenter-ui/src/views/returntostorage/returntostorageAdd.vue b/anrui-riskcenter-ui/src/views/returntostorage/returntostorageAdd.vue index 2f7312427a..c5282ef9c9 100644 --- a/anrui-riskcenter-ui/src/views/returntostorage/returntostorageAdd.vue +++ b/anrui-riskcenter-ui/src/views/returntostorage/returntostorageAdd.vue @@ -14,104 +14,117 @@
申请部门
- {{ formobj.dept }} + {{ formobj.createDept }}
申请人
- {{ formobj.applyName }} + {{ formobj.createByName }}
申请日期
- {{ formobj.applyDate }} + {{ formobj.createDate }}
车架号
- {{ formobj.dept }} + {{ formobj.vinNo }}
车牌号
- {{ formobj.applyName }} + {{ formobj.vehMark }}
首次登记日期
- {{ formobj.applyDate }} + + +
车型
- {{ formobj.dept }} + {{ formobj.modelName }}
是否带挂车
- {{ formobj.applyDate }} + + + + + +
客户名称
- {{ formobj.dept }} + {{ formobj.customerName }}
贷款人
- {{ formobj.applyName }} + {{ formobj.loanName }}
贷款合同编号
- {{ formobj.applyDate }} + {{ formobj.loanContractNo }}
资方
- {{ formobj.dept }} + {{ formobj.bankName }}
资方合同编号
- {{ formobj.applyName }} + {{ formobj.bankContractNo }}
入库价(元)
- {{ formobj.applyDate }} + {{ formobj.inboundMoney }}
- -
停放地点
- {{ formobj.dept }} -
-
停车收费标准
- {{ formobj.applyName }} -
-
-
挂车信息
- - -
车架号
- {{ formobj.dept }} -
- -
车牌号
- {{ formobj.applyName }} -
- -
入库价(元)
- {{ formobj.applyDate }} +
停放地点
+
-
- -
挂车类型
- {{ formobj.dept }} -
- -
备注
- {{ formobj.applyName }} +
停车收费标准
+
+
+
挂车信息
+ + +
车架号
+ +
+ +
车牌号
+ +
+ +
入库价(元)
+ +
+
+ + +
挂车类型
+ + + + + +
+ +
备注
+ +
+
+
已还与欠款情况
@@ -151,37 +164,249 @@
附件
- +
+ +
diff --git a/anrui-riskcenter-ui/src/views/returntostorage/returntostorageInfo.vue b/anrui-riskcenter-ui/src/views/returntostorage/returntostorageInfo.vue index cd0273a474..7e785c0062 100644 --- a/anrui-riskcenter-ui/src/views/returntostorage/returntostorageInfo.vue +++ b/anrui-riskcenter-ui/src/views/returntostorage/returntostorageInfo.vue @@ -40,7 +40,7 @@
车型
- {{ formobj.modelName }} + {{ formobj.modelName }}
是否带挂车
@@ -76,7 +76,7 @@
- +
停放地点
{{ formobj.locationName }}
@@ -85,31 +85,33 @@ {{ formobj.parkFees }}
-
挂车信息
- - -
车架号
- {{ formobj.dept }} -
- -
车牌号
- {{ formobj.applyName }} -
- -
入库价(元)
- {{ formobj.applyDate }} -
-
- - -
挂车类型
- {{ formobj.dept }} -
- -
备注
- {{ formobj.applyName }} -
-
+
+
挂车信息
+ + +
车架号
+ {{ formobj.loanReturnInboundTrailer.vinNo }} +
+ +
车牌号
+ {{ formobj.loanReturnInboundTrailer.vehMark }} +
+ +
入库价(元)
+ {{ formobj.loanReturnInboundTrailer.inboundMoney }} +
+
+ + +
挂车类型
+ {{ formobj.loanReturnInboundTrailer.trailerType }} +
+ +
备注
+ {{ formobj.loanReturnInboundTrailer.remarks }} +
+
+
已还与欠款情况
@@ -149,38 +151,197 @@
附件
- +
+ + diff --git a/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouse.vue b/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouse.vue new file mode 100644 index 0000000000..17bf0bccda --- /dev/null +++ b/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouse.vue @@ -0,0 +1,354 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouseAdd.vue b/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouseAdd.vue new file mode 100644 index 0000000000..0e0302c858 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouseAdd.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouseInfo.vue b/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouseInfo.vue new file mode 100644 index 0000000000..d6a8ad323d --- /dev/null +++ b/anrui-riskcenter-ui/src/views/returntothewarehouse/returntothewarehouseInfo.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/secondarysales/relation/generatecontract.vue b/anrui-riskcenter-ui/src/views/secondarysales/relation/generatecontract.vue new file mode 100644 index 0000000000..15365b8865 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/secondarysales/relation/generatecontract.vue @@ -0,0 +1,351 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/secondarysales/secondarysales.vue b/anrui-riskcenter-ui/src/views/secondarysales/secondarysales.vue new file mode 100644 index 0000000000..c06aa6b501 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/secondarysales/secondarysales.vue @@ -0,0 +1,553 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/secondarysales/secondarysalesAdd.vue b/anrui-riskcenter-ui/src/views/secondarysales/secondarysalesAdd.vue new file mode 100644 index 0000000000..96155cbb03 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/secondarysales/secondarysalesAdd.vue @@ -0,0 +1,692 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/secondarysales/secondarysalesInfo.vue b/anrui-riskcenter-ui/src/views/secondarysales/secondarysalesInfo.vue new file mode 100644 index 0000000000..e729d5c03b --- /dev/null +++ b/anrui-riskcenter-ui/src/views/secondarysales/secondarysalesInfo.vue @@ -0,0 +1,470 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/secondarysublet/secondarysublet.vue b/anrui-riskcenter-ui/src/views/secondarysublet/secondarysublet.vue new file mode 100644 index 0000000000..b257f35543 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/secondarysublet/secondarysublet.vue @@ -0,0 +1,520 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletAdd.vue b/anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletAdd.vue new file mode 100644 index 0000000000..5857a21f03 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletAdd.vue @@ -0,0 +1,402 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletInfo.vue b/anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletInfo.vue new file mode 100644 index 0000000000..afa6d3b2df --- /dev/null +++ b/anrui-riskcenter-ui/src/views/secondarysublet/secondarysubletInfo.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/surrenderforredemption/surrenderforredemption.vue b/anrui-riskcenter-ui/src/views/surrenderforredemption/surrenderforredemption.vue index 1e3db48234..9264de8bca 100644 --- a/anrui-riskcenter-ui/src/views/surrenderforredemption/surrenderforredemption.vue +++ b/anrui-riskcenter-ui/src/views/surrenderforredemption/surrenderforredemption.vue @@ -12,12 +12,12 @@ - - - + + + @@ -160,7 +160,7 @@ - +
diff --git a/anrui-riskcenter-ui/src/views/workFlow/cuishoucuoshiFlow/relation/materialInfo.vue b/anrui-riskcenter-ui/src/views/workFlow/cuishoucuoshiFlow/relation/materialInfo.vue index de02a612b4..847617507d 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/cuishoucuoshiFlow/relation/materialInfo.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/cuishoucuoshiFlow/relation/materialInfo.vue @@ -20,25 +20,25 @@ -
房屋照片
+
小区/村口照片
-
门口照片
+
住所照片
+ + + + + + -
客厅卧室照片
- -
-
- - -
合影照等
+
签字合影照
diff --git a/anrui-riskcenter-ui/src/views/workFlow/diankuanFlow/advancerequestEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/diankuanFlow/advancerequestEdit.vue index f457d1962a..49a58f78f0 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/diankuanFlow/advancerequestEdit.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/diankuanFlow/advancerequestEdit.vue @@ -29,7 +29,7 @@
财务付款形式
- + diff --git a/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesByPGJ.vue b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesByPGJ.vue new file mode 100644 index 0000000000..13623fc2b4 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesByPGJ.vue @@ -0,0 +1,709 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesDaiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesDaiBan.vue new file mode 100644 index 0000000000..2ec351b9a9 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesDaiBan.vue @@ -0,0 +1,694 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesEdit.vue new file mode 100644 index 0000000000..3c96faa1a1 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesEdit.vue @@ -0,0 +1,651 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesYiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesYiBan.vue new file mode 100644 index 0000000000..6e97476274 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/ercixiaoshouFlow/secondarysalesYiBan.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletDaiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletDaiBan.vue new file mode 100644 index 0000000000..d842234d16 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletDaiBan.vue @@ -0,0 +1,484 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletEdit.vue new file mode 100644 index 0000000000..cd4b2edb98 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletEdit.vue @@ -0,0 +1,372 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletYiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletYiBan.vue new file mode 100644 index 0000000000..c40a5524b9 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/ercizhuanzuFlow/secondarysubletYiBan.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/secondarysalesInfo.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/secondarysalesInfo.vue new file mode 100644 index 0000000000..e69de29bb2 diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/secondarysubletInfo.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/secondarysubletInfo.vue new file mode 100644 index 0000000000..754ded2a67 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/secondarysubletInfo.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/surrenderforredemptionInfo.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/surrenderforredemptionInfo.vue new file mode 100644 index 0000000000..8383384d85 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/relation/surrenderforredemptionInfo.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseDaiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseDaiBan.vue new file mode 100644 index 0000000000..f0e1c434af --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseDaiBan.vue @@ -0,0 +1,516 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseEdit.vue new file mode 100644 index 0000000000..9e66389b0e --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseEdit.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseYiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseYiBan.vue new file mode 100644 index 0000000000..ee2f91cfe4 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuichukuFlow/returntothewarehouseYiBan.vue @@ -0,0 +1,302 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageDaiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageDaiBan.vue new file mode 100644 index 0000000000..10d470f518 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageDaiBan.vue @@ -0,0 +1,577 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageEdit.vue new file mode 100644 index 0000000000..120ac2e506 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageEdit.vue @@ -0,0 +1,370 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageYiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageYiBan.vue new file mode 100644 index 0000000000..d3fa5189fc --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuirukuFlow/returntostorageYiBan.vue @@ -0,0 +1,363 @@ + + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/jiaohuishuhuiFlow/relation/returntostorageInfo.vue b/anrui-riskcenter-ui/src/views/workFlow/jiaohuishuhuiFlow/relation/returntostorageInfo.vue index 12674a84f5..0dc0ddfd50 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/jiaohuishuhuiFlow/relation/returntostorageInfo.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/jiaohuishuhuiFlow/relation/returntostorageInfo.vue @@ -40,7 +40,7 @@
车型
- {{ formobj.modelName }} + {{ formobj.modelName }}
是否带挂车
@@ -76,7 +76,7 @@
- +
停放地点
{{ formobj.locationName }}
@@ -89,25 +89,25 @@
车架号
- {{ formobj.dept }} + {{ formobj.loanReturnInboundTrailer.vinNo }}
车牌号
- {{ formobj.applyName }} + {{ formobj.loanReturnInboundTrailer.vehMark }}
入库价(元)
- {{ formobj.applyDate }} + {{ formobj.loanReturnInboundTrailer.inboundMoney }}
挂车类型
- {{ formobj.dept }} + {{ formobj.loanReturnInboundTrailer.trailerType }}
备注
- {{ formobj.applyName }} + {{ formobj.loanReturnInboundTrailer.remarks }}
已还与欠款情况
@@ -149,38 +149,197 @@
附件
- +
+ + diff --git a/anrui-riskcenter-ui/src/views/workFlow/publicPage/criterion.vue b/anrui-riskcenter-ui/src/views/workFlow/publicPage/criterion.vue new file mode 100644 index 0000000000..0d254e4a48 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/publicPage/criterion.vue @@ -0,0 +1,65 @@ + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/publicPage/vehicleconfiguration.vue b/anrui-riskcenter-ui/src/views/workFlow/publicPage/vehicleconfiguration.vue new file mode 100644 index 0000000000..70bba8edc9 --- /dev/null +++ b/anrui-riskcenter-ui/src/views/workFlow/publicPage/vehicleconfiguration.vue @@ -0,0 +1,307 @@ + + + + diff --git a/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolDaiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolDaiBan.vue index a57488bf24..81a57910ce 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolDaiBan.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolDaiBan.vue @@ -45,13 +45,13 @@ - + - + - + diff --git a/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolEdit.vue index 32b12fa6a5..ff6992c5a9 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolEdit.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolEdit.vue @@ -49,11 +49,11 @@ 删除 - + - + diff --git a/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolYiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolYiBan.vue index cb2c24877e..2b7c11d0c8 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolYiBan.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/yuanchengjiekongFlow/remotedecontrolYiBan.vue @@ -42,11 +42,11 @@ - + - + diff --git a/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangDaiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangDaiBan.vue index 7fc4eacbee..ede65ce258 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangDaiBan.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangDaiBan.vue @@ -56,7 +56,7 @@ - + diff --git a/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangEdit.vue b/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangEdit.vue index 4dec2bc3a2..64cc11a889 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangEdit.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangEdit.vue @@ -55,7 +55,7 @@ - + diff --git a/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangYiBan.vue b/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangYiBan.vue index 9b7f6ec713..94f7bfff07 100644 --- a/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangYiBan.vue +++ b/anrui-riskcenter-ui/src/views/workFlow/zifangduizhangFlow/zifangduizhangYiBan.vue @@ -53,7 +53,7 @@ - +
diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java index c0ade89f7c..1f4b41caa5 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java @@ -138,4 +138,10 @@ public interface LoanBePadsincereApplyFeign { @ApiOperation(value = "加签") @PostMapping(value = "/delegate") public ResultBean delegate(@RequestBody LoanBePadsincereDelegateQuery loanBePadsincereDelegateQuery); + + @ApiOperation("推送财务垫款付款凭证") + @PostMapping("/pushAdvancesVoucher") + @ResponseBody + public ResultBean pushAdvancesVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java index 9274380890..00c67078f1 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java @@ -136,4 +136,9 @@ public class LoanBePadsincereApplyFeignFallback implements LoanBePadsincereApply return null; } + @Override + public ResultBean pushAdvancesVoucher(String sid, String paySid) { + return null; + } + } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereExportVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereExportVo.java index 6195dc2b08..f2e79f8864 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereExportVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereExportVo.java @@ -19,9 +19,9 @@ public class LoanBePadsincereExportVo implements Vo { @ExportEntityMap(CnName = "期数", EnName = "period") private String period; @ExportEntityMap(CnName = "逾期本金", EnName = "bePrincipal") - private String bePrincipal; + private Double bePrincipal; @ExportEntityMap(CnName = "逾期罚息", EnName = "beDefInter") - private String beDefInter; + private Double beDefInter; @ExportEntityMap(CnName = "付款账户", EnName = "paymentAccount") private String paymentAccount; @ExportEntityMap(CnName = "付款账号", EnName = "paymentNum") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVeh.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVeh.java index cacaad44f1..fb45ec639b 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVeh.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVeh.java @@ -84,5 +84,6 @@ public class LoanBePadsincereVeh extends BaseEntity { private String saleVehSid; @ApiModelProperty("垫款申请sid") private String mainSid; // 垫款申请sid - + @ApiModelProperty("出纳付款列表sid") + private String paySid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeign.java index 9a4e81c3ce..671d4464e5 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeign.java @@ -75,4 +75,9 @@ public interface LoanBePadsincereVehFeign { @GetMapping("/fetchDetailsBySid/{sid}") @ResponseBody public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + + @ApiOperation("根据主表sid查询") + @GetMapping("/selByMainSid") + @ResponseBody + ResultBean> selByMainSid(@RequestParam("applySid") String applySid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeignFallback.java index e2bde3aa9a..a2f37d7c51 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereveh/LoanBePadsincereVehFeignFallback.java @@ -69,4 +69,9 @@ public class LoanBePadsincereVehFeignFallback implements LoanBePadsincereVehFeig ResultBean rb = ResultBean.fireFail(); return rb.setMsg("接口anrui-riskcenter/loanbepadsincereveh/fetchDetailsBySid无法访问"); } + + @Override + public ResultBean> selByMainSid(String applySid) { + return null; + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java index d737bd401c..6c9d46c9f8 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java @@ -1,5 +1,10 @@ package com.yxt.anrui.riskcenter.api.loanfile; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyFile; + +import java.util.ArrayList; +import java.util.List; + /** * @Author fan * @Date 2022/11/14 22:46 @@ -30,6 +35,11 @@ public enum LoanFileEnum { VEHCLEARANCE("021", "车辆远程解控附件"), RESTOREREPORT("022", "车辆交回事前报备附件"), REDEMPTION("023", "车辆交回赎回申请附件"), + SUBLETAPPLY("024", "车辆交回二次转租申请附件"), + BUYFILES("025", "交回车辆出库车辆买卖协议"), + DELIVERYFILES("026", "交回车辆出库车辆交付确认书"), + ASSESSFILES("027", "交回车辆出库车辆完整评估照片"), + OTHERFILES("028", "交回车辆出库其他附件"), ; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomer.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomer.java index fd822920cd..31cebe886b 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomer.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomer.java @@ -121,6 +121,8 @@ public class LoanHomevisitInvestigateCustomer extends BaseEntity { private String accCompAddress; @ApiModelProperty("实际经营地址") private String accCompxAddress; + @ApiModelProperty("股东人数") + private String shareNum; @ApiModelProperty("挂车或上装是否公司采购(0是,1否)") private String isCompBuy; @ApiModelProperty("001一车一合同 002一贷款人一合同") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDetailsVo.java index ea5c212a94..a21ef0d8b0 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDetailsVo.java @@ -122,6 +122,8 @@ public class LoanHomevisitInvestigateCustomerDetailsVo implements Vo { private String accCompAddress; @ApiModelProperty("实际经营地址") private String accCompxAddress; + @ApiModelProperty("股东人数") + private String shareNum; @ApiModelProperty("挂车或上装是否公司采购(0是,1否)") private String isCompBuy; @ApiModelProperty("001一车一合同 002一贷款人一合同") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDto.java index 3241db13db..86cad95e53 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitinvestigatecustomer/LoanHomevisitInvestigateCustomerDto.java @@ -122,6 +122,8 @@ public class LoanHomevisitInvestigateCustomerDto implements Dto { private String accCompAddress; @ApiModelProperty("实际经营地址") private String accCompxAddress; + @ApiModelProperty("股东人数") + private String shareNum; @ApiModelProperty("挂车或上装是否公司采购(0是,1否)") private String isCompBuy; @ApiModelProperty("001一车一合同 002一贷款人一合同") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownCarRegisContract.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownCarRegisContract.java new file mode 100644 index 0000000000..74f30742b6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownCarRegisContract.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.api.loanhomevisitprep; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DownCarRegisContract { + + @ApiModelProperty("序号") + private String id; + @ApiModelProperty("品牌") + private String brandName; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("发动机号") + private String fdjNo; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownInvoAppForm.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownInvoAppForm.java new file mode 100644 index 0000000000..e982fe551d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/DownInvoAppForm.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loanhomevisitprep; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DownInvoAppForm { + + @ApiModelProperty("序号") + private String id; + @ApiModelProperty("车辆名称") + private String modelName; + @ApiModelProperty("数量") + private String num; + @ApiModelProperty("合同单价") + private String dj; + @ApiModelProperty("开票金额") + private String kpje; + @ApiModelProperty("发票类型") + private String fplx; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java new file mode 100644 index 0000000000..3573a9ee8d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java @@ -0,0 +1,81 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "交回车辆出库申请", description = "交回车辆出库申请") +@TableName("loan_out_bound_apply") +@Data +public class LoanOutboundApply extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请人Sid") + private String applyUserSid; // 申请人 + @ApiModelProperty("申请人") + private String applyName; // 申请人 + @ApiModelProperty("申请日期") + private Date applyDate; // 申请日期 + @ApiModelProperty("申请部门") + private String dept; + @ApiModelProperty("申请部门sid") + private String deptSid; + @ApiModelProperty("流程定义的id") + private String procDefId; // 流程定义的id + @ApiModelProperty("环节定义的sid") + private String nodeSid; // 环节定义的sid + @ApiModelProperty("流程实例的sid") + private String procInstId; // 流程实例的sid + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("taskId") + private String taskId; // taskId + @ApiModelProperty("使用组织sid") + private String useOrgSid; // 使用组织sid + @ApiModelProperty("使用组织名称") + private String useOrgName; // 使用组织名称 + @ApiModelProperty("申请人组织路径") + private String orgSidPath; // 申请人组织路径 + @ApiModelProperty("办结日期") + private Date closingDate; + @ApiModelProperty("消贷合同号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + private String customerSid; + private String borrowerSid; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("出库价格") + private BigDecimal amount; + @ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)") + private String disposal; + @ApiModelProperty("处置方式key") + private String disposalKey; + @ApiModelProperty("新车主名称") + private String newCustomer; + @ApiModelProperty("新客户sid") + private String newCustomerSid; + @ApiModelProperty("处置申请sid") + private String applySid; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("出库日期") + private Date outboundDate; + @ApiModelProperty("处置合同号") + private String disposalContractNo; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyDto.java new file mode 100644 index 0000000000..d3df7652c2 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyDto.java @@ -0,0 +1,55 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList; +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 + * @date 2023/11/13 14:11 + */ +@Data +public class LoanOutboundApplyDto implements Dto { + private String createBySid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; // 使用组织sid + @ApiModelProperty("使用组织名称") + private String useOrgName; // 使用组织名称 + @ApiModelProperty("组织全路径") + private String orgSidPath; // 申请人组织路径 + @ApiModelProperty("消贷合同号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("原客户sid") + private String customerSid; + @ApiModelProperty("原贷款人sid") + private String borrowerSid; + @ApiModelProperty("原客户名称") + private String customer; + @ApiModelProperty("原贷款人") + private String borrowerName; + @ApiModelProperty("处置方式key") + private String disposalKey; + @ApiModelProperty("处置方式") + private String disposal; + @ApiModelProperty("处置申请sid") + private String applySid; + @ApiModelProperty("新车主名称") + private String newCustomer; + @ApiModelProperty("新客户sid") + private String newCustomerSid; + @ApiModelProperty("新客户联系电话") + private String phoneNum; + @ApiModelProperty("处置合同号") + private String disposalContractNo; + @ApiModelProperty("处置车辆列表") + private List vinList = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java new file mode 100644 index 0000000000..567f6a09a9 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java @@ -0,0 +1,101 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*; +import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListQuery; +import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListVo; +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 io.swagger.annotations.ApiParam; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "交回车辆出库申请") +@FeignClient( + contextId = "anrui-riskcenter-LoanOutboundApply", + name = "anrui-riskcenter", + path = "v1/loanoutboundapply", + fallback = LoanOutboundFeignFallback.class) +public interface LoanOutboundApplyFeign { + + + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("保存") + @PostMapping("/saveOutbound") + @ResponseBody + public ResultBean saveOutbound(@RequestBody LoanOutboundApplyDto dto); + + @ApiOperation("修改") + @PostMapping("/updateOutbound") + @ResponseBody + public ResultBean updateOutbound(@RequestBody LoanUpdateApplyDto dto); + + + @ApiOperation("详情查看") + @GetMapping("outboundDetails") + @ResponseBody + public ResultBean outboundDetails(@RequestParam("sid") String sid); + + + //------------------------------流程接口---------------------------------------------- + + @ApiOperation("提交") + @PostMapping("/submit") + public ResultBean submitRecordApplication(@RequestBody @Valid SubmitOutboundDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody OutboundCompleteDto dto); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody OutboundTaskQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody OutboundTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@RequestBody OutboundTaskQuery query); + + @ApiOperation(value = "流程历史流转记录") + @GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}") + public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap OutboundGetNodeQuery query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap OutboundGetNodeQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody OutboundDelegateQuery query); + + //-------------------------app------------------------ + @ApiOperation("详情查看") + @GetMapping("/appDetails") + @ResponseBody + public ResultBean appDetail(@RequestParam("sid") String sid); + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFile.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFile.java new file mode 100644 index 0000000000..868a965679 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFile.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/17 9:18 + */ +@Data +public class LoanOutboundApplyFile { + private String filePath; + private String name; + private String size; + private String status; + private String uid; + private String url; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyInit.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyInit.java new file mode 100644 index 0000000000..ac2c747c14 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyInit.java @@ -0,0 +1,51 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/11/13 13:43 + */ +@Data +public class LoanOutboundApplyInit implements Vo { + + private String sid; + private String userSid; + private String dept; + private String deptSid; + private String applyName; + private String applyDate; + private String applySid; //处置申请sid + private String orgPath; + @ApiModelProperty("处置合同号") + private String disposalContractNo; + @ApiModelProperty("任务id") + private String taskId; + @ApiModelProperty("实例id") + private String instanceId; + @ApiModelProperty("出库价格") + private String amount; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("客户名称") + private String newCustomer; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)") + private String disposal; + @ApiModelProperty("处置方式key") + private String disposalKey; + private List buyFiles = new ArrayList<>(); //车辆买卖协议 + private List deliveryFiles = new ArrayList<>(); //车辆交付确认书 + private List assessFiles = new ArrayList<>(); //车辆完整评估照片 + private List otherFiles = new ArrayList<>(); //其他附件 + private List vinList = new ArrayList<>(); + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyQuery.java new file mode 100644 index 0000000000..76cb906843 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyQuery.java @@ -0,0 +1,51 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 13:32 + */ +@Data +public class LoanOutboundApplyQuery implements Query { + + @ApiModelProperty("组织全路径") + private String orgPath; + @ApiModelProperty("菜单sid") + private String menuSid; + @ApiModelProperty("菜单url") + private String menuUrl; + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("分公司") + private String company; // 使用组织名称 + @ApiModelProperty("申请人") + private String applyName; // 申请人 + private String applyStartDate; + private String applyEndDate; + private String closingStartDate; + private String closingEndDate; + @ApiModelProperty("消贷合同号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("申请部门") + private String dept; + @ApiModelProperty("处置方式key") + private String disposalKey; + private String outStartDate; //出库日期 + private String outEndDate; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyVo.java new file mode 100644 index 0000000000..918def9114 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyVo.java @@ -0,0 +1,60 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author Administrator + * @description + * @date 2023/11/13 13:32 + */ +@Data +public class LoanOutboundApplyVo implements Vo { + + private String sid; + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("分公司") + private String company; // 使用组织名称 + @ApiModelProperty("申请人") + private String applyName; // 申请人 + @ApiModelProperty("申请部门") + private String dept; + @ApiModelProperty("申请日期") + private String applyDate; // 申请日期 + @ApiModelProperty("办结日期") + private String closingDate; + @ApiModelProperty("消贷合同号") + private String loanContractNo; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("出库价格") + private String amount; + @ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)") + private String disposal; + @ApiModelProperty("新车主名称") + private String newCustomer; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("出库日期") + private String outboundDate; + @ApiModelProperty("流程定义的id") + private String procDefId; // 流程定义的id + @ApiModelProperty("流程实例的sid") + private String procInstId; // 流程实例的sid + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java new file mode 100644 index 0000000000..3350dda8c9 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java @@ -0,0 +1,87 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + + +import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.stereotype.Component; + +import java.util.List; + + +@Component +public class LoanOutboundFeignFallback implements LoanOutboundApplyFeign { + + + @Override + public ResultBean> listPage(PagerQuery pq) { + return null; + } + + @Override + public ResultBean saveOutbound(LoanOutboundApplyDto dto) { + return null; + } + + @Override + public ResultBean updateOutbound(LoanUpdateApplyDto dto) { + return null; + } + + @Override + public ResultBean outboundDetails(String sid) { + return null; + } + + @Override + public ResultBean submitRecordApplication(SubmitOutboundDto dto) { + return null; + } + + @Override + public ResultBean complete(OutboundCompleteDto dto) { + return null; + } + + @Override + public ResultBean revokeProcess(OutboundTaskQuery query) { + return null; + } + + @Override + public ResultBean taskReject(OutboundTaskQuery query) { + return null; + } + + @Override + public ResultBean breakProcess(OutboundTaskQuery query) { + return null; + } + + @Override + public ResultBean flowRecord(String procInsId) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(OutboundGetNodeQuery query) { + return null; + } + + @Override + public ResultBean> getPreviousNodesForReject(OutboundGetNodeQuery query) { + return null; + } + + @Override + public ResultBean delegate(OutboundDelegateQuery query) { + return null; + } + + @Override + public ResultBean appDetail(String sid) { + return null; + } +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanUpdateApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanUpdateApplyDto.java new file mode 100644 index 0000000000..2013d4121b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanUpdateApplyDto.java @@ -0,0 +1,48 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/1/19 9:55 + */ +@Data +public class LoanUpdateApplyDto implements Dto { + private String sid; + private String userSid; + private String dept; + private String deptSid; + private String applyName; + private String applyDate; + private String applySid; //处置申请sid + private String orgPath; + @ApiModelProperty("任务id") + private String taskId; + @ApiModelProperty("实例id") + private String instanceId; + @ApiModelProperty("出库价格") + private String amount; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("客户名称") + private String newCustomer; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)") + private String disposal; + @ApiModelProperty("处置方式key") + private String disposalKey; + @ApiModelProperty("处置合同号") + private String disposalContractNo; + private List buyFiles = new ArrayList<>(); //车辆买卖协议 + private List deliveryFiles = new ArrayList<>(); //车辆交付确认书 + private List assessFiles = new ArrayList<>(); //车辆完整评估照片 + private List otherFiles = new ArrayList<>(); //其他附件 + private List vinList = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinList.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinList.java new file mode 100644 index 0000000000..1a75c14266 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinList.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/1/19 9:42 + */ +@Data +public class OutboundVinList { + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("主车/挂车") + private String vehType; + @ApiModelProperty("车型") + private String vehModel; + @ApiModelProperty("存放地点") + private String location; + @ApiModelProperty("交回车辆台账sid") + private String ledgerSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinListDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinListDto.java new file mode 100644 index 0000000000..0a389011a6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinListDto.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/1/19 10:02 + */ +@Data +public class OutboundVinListDto { + private String ledgerSid; //交回车辆台账sid + private String vinSid; //车辆sid + private String vinNo; //车架号 + private String vehMark; //车牌号 + private String vehType; // 车辆类型(主车/挂车) + private String vehModel; //车型 + private String busVinSid; //销售订单车辆sid + private String location; //存放地点 +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundDetailsVo.java new file mode 100644 index 0000000000..425d411309 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundDetailsVo.java @@ -0,0 +1,50 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.app; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/1/11 17:22 + */ +@Data +public class AppOutboundDetailsVo { + private String sid; + private String publishInfo; + private String time; //申请日期 + private List buyFiles = new ArrayList<>(); //车辆买卖协议 + private List deliveryFiles = new ArrayList<>(); //车辆交付确认书 + private List assessFiles = new ArrayList<>(); //车辆完整评估照片 + private List otherFiles = new ArrayList<>(); //其他附件 + private String taskId; + private String procInsId; + private String applySid; //处置申请sid + /** + * 出库金额 + */ + private String amount; + /** + * 客户名称 + */ + private String custName; + @ApiModelProperty("处置合同号") + private String disposalContractNo; + /** + * 备注 + */ + private String remarks; + @ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)") + private String disposal; + @ApiModelProperty("处置方式key") + private String disposalKey; + /** + * 车辆列表 + */ + private List vinList = new ArrayList<>(); + @ApiModelProperty("联系电话") + private String phoneNum; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundVinListVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundVinListVo.java new file mode 100644 index 0000000000..08839777d0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundVinListVo.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.app; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/1/11 17:35 + */ +@Data +public class AppOutboundVinListVo { + /** + * 车型 + */ + private String model; + /** + * 车牌号 + */ + private String vehMark; + /** + * 车辆类型 + */ + private String vehType; + /** + * 车架号 + */ + private String vinNo; + /** + * 存放地点 + */ + private String location; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundCompleteDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundCompleteDto.java new file mode 100644 index 0000000000..2014262668 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundCompleteDto.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.flow; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/6/28 9:01 + * @Description + */ +@Data +public class OutboundCompleteDto implements Dto { + private static final long serialVersionUID = 3240453987322803352L; + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "用户全路径sid") + private String orgSidPath; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:instanceId") + private String instanceId; + @ApiModelProperty(value = "意见") + @NotBlank(message = "参数错误:comment") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + @ApiModelProperty(value = "分支字段及业务字段") + private Map formVariables; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundDelegateQuery.java new file mode 100644 index 0000000000..edde94c6a4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.flow; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class OutboundDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeQuery.java new file mode 100644 index 0000000000..bdc3fab7f1 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/6/28 10:42 + * @Description + */ +@Data +public class OutboundGetNodeQuery implements Query { + private static final long serialVersionUID = -5674867230708197611L; + + @ApiModelProperty(value = "环节定义id") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + + @ApiModelProperty(value = "分支字段及业务字段") + private Map formVariables; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeVo.java new file mode 100644 index 0000000000..119cb33fb7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeVo.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.flow; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/6/28 11:09 + * @Description + */ +@Data +public class OutboundGetNodeVo implements Vo { + private static final long serialVersionUID = 8802774014747063504L; + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundTaskQuery.java new file mode 100644 index 0000000000..89ad5637bd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundTaskQuery.java @@ -0,0 +1,56 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/6/28 17:29 + * @Description 终止、撤回、驳回查询参数 + */ +@Data +public class OutboundTaskQuery implements Query { + private static final long serialVersionUID = -4006020771892400451L; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id") + private String instanceId; + /*@ApiModelProperty("用户Id") + private String userId; + @ApiModelProperty("节点") + private String targetKey; + @ApiModelProperty("流程变量信息") + private Map values = new HashMap<>(); + @ApiModelProperty("审批人") + private String assignee; + @ApiModelProperty("候选人") + private List candidateUsers = new ArrayList<>(); + @ApiModelProperty("审批组") + private List candidateGroups = new ArrayList<>();*/ +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/SubmitOutboundDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/SubmitOutboundDto.java new file mode 100644 index 0000000000..3c889cb825 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/SubmitOutboundDto.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundapply.flow; + +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyDto; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanUpdateApplyDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/27 13:38 + * @Description + */ +@Data +public class SubmitOutboundDto extends LoanUpdateApplyDto { + private static final long serialVersionUID = 378585162071125756L; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVeh.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVeh.java new file mode 100644 index 0000000000..61f6e7c0e8 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVeh.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundveh; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "交回车辆出库车辆列表", description = "交回车辆出库车辆列表") +@TableName("loan_out_bound_veh") +@Data +public class LoanOutboundVeh extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请表sid") + private String mainSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆订单业务sid") + private String busVinSid; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("主车/挂车") + private String vehType; + @ApiModelProperty("车型") + private String vehModel; + @ApiModelProperty("交回车辆台账sid") + private String ledgerSid; + @ApiModelProperty("存放地点") + private String location; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeign.java new file mode 100644 index 0000000000..21e27a7004 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeign.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundveh; + +import io.swagger.annotations.Api; +import org.springframework.cloud.openfeign.FeignClient; + + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "交车车辆出库车辆列表") +@FeignClient( + contextId = "anrui-riskcenter-LoanOutboundVeh", + name = "anrui-riskcenter", + path = "v1/loanoutboundveh", + fallback = LoanOutboundVehFeignFallback.class) +public interface LoanOutboundVehFeign { + + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeignFallback.java new file mode 100644 index 0000000000..18605951e3 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeignFallback.java @@ -0,0 +1,11 @@ +package com.yxt.anrui.riskcenter.api.loanoutboundveh; + + +import org.springframework.stereotype.Component; + + +@Component +public class LoanOutboundVehFeignFallback implements LoanOutboundVehFeign { + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankAppDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankAppDetailsVo.java index f8e1bd21bf..667d9af310 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankAppDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankAppDetailsVo.java @@ -1,5 +1,6 @@ package com.yxt.anrui.riskcenter.api.loanoverduebank; +import com.fasterxml.jackson.annotation.JsonProperty; import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetailsDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -36,4 +37,10 @@ public class LoanOverdueBankAppDetailsVo { //逾期客户列表 private List detailsVoList = new ArrayList<>(); + @ApiModelProperty(value = "实例id") + private String procInstId; + + @ApiModelProperty(value = "taskId") + private String taskId; + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/DownloadExcelVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/DownloadExcelVo.java index 95c9b63f41..7e550aec32 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/DownloadExcelVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/DownloadExcelVo.java @@ -14,7 +14,7 @@ public class DownloadExcelVo { @ExportEntityMap(CnName = "财务中客户编码", EnName = "customerNo") private String customerNo; - @ExportEntityMap(CnName = "客户名称", EnName = "customerName") + @ExportEntityMap(CnName = "财务中客户名称", EnName = "customerName") private String customerName; @ExportEntityMap(CnName = "车架号", EnName = "vinNo") private String vinNo; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinAppVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinAppVo.java index 72b57eb7cb..e43d7919c7 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinAppVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinAppVo.java @@ -1,5 +1,6 @@ package com.yxt.anrui.riskcenter.api.loanoverduefin; +import com.fasterxml.jackson.annotation.JsonProperty; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinAppDetailsVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -34,4 +35,9 @@ public class LoanOverdueFinAppVo { @ApiModelProperty("逾期客户列表") private List detailsVoList = new ArrayList<>(); + @ApiModelProperty(value = "实例id") + private String procInstId; + + @ApiModelProperty(value = "taskId") + private String taskId; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java new file mode 100644 index 0000000000..bd9acab7ce --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.riskcenter.api.loanpushfundhistory; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "推送资金占用费记录表", description = "推送资金占用费记录表") +@TableName("loan_push_fund_history") +@Data +public class LoanPushFundHistory extends BaseEntity { + private static final long serialVersionUID = 1L; + @ApiModelProperty("资金占用费") + private BigDecimal fund; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("使用组织名称") + private String useOrgName; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java new file mode 100644 index 0000000000..f29e33f6bc --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.riskcenter.api.loanpushfundhistory; + +import io.swagger.annotations.Api; +import org.springframework.cloud.openfeign.FeignClient; + + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "推送资金占用费记录表") +@FeignClient( + contextId = "anrui-riskcenter-LoanPushFundHistory", + name = "anrui-riskcenter", + path = "v1/loanpushfundhistory", + fallback = LoanPushFundHistoryFeignFallback.class) +public interface LoanPushFundHistoryFeign { + + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java new file mode 100644 index 0000000000..f9a54fd94d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java @@ -0,0 +1,11 @@ +package com.yxt.anrui.riskcenter.api.loanpushfundhistory; + + +import org.springframework.stereotype.Component; + + +@Component +public class LoanPushFundHistoryFeignFallback implements LoanPushFundHistoryFeign { + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java index 7585451038..b05d3c7fbe 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java @@ -52,6 +52,8 @@ public class LoanRedemptionApply extends BaseEntity { private String bankName; @ApiModelProperty("资方合同号") private String bankContractNo; + private String customerSid; + private String borrowerSid; @ApiModelProperty("客户名称") private String customer; @ApiModelProperty("贷款人") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java index 8ee2d979ef..e9355a7556 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java @@ -24,6 +24,8 @@ public class LoanRedemptionApplyDto implements Dto { private String applyName; private String applyDate; private String orgPath; + private String customerSid; + private String borrowerSid; @ApiModelProperty("消贷合同号") private String loanContractNo; @ApiModelProperty("资方") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java index 5d62dbd693..a6304abf99 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java @@ -68,6 +68,8 @@ public class LoanRedemptionApplyInit implements Vo { private String beOverdueMoneyAndPeriod; // 逾期金额换算期数 private String busVinSid; //催收记录 private String rksqSid; //入库申请sid + private String customerSid; + private String borrowerSid; private List files = new ArrayList<>(); private List vinList = new ArrayList<>(); diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java index 72c5408b56..d47dbc3304 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java @@ -29,4 +29,6 @@ public class RedemptionInitVo { private String vehMark; private String vehType; private String vehModel; + private String customerSid; + private String borrowerSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryQuery.java index 1b237c7180..feba71a1f6 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryQuery.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryQuery.java @@ -56,4 +56,5 @@ public class LoanRepaymentHistoryQuery implements Query { private String menuUrl; @ApiModelProperty("用户sid") private String userSid; + private String change; //需调整按钮查询 0/1 “1”时生效 } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java new file mode 100644 index 0000000000..c86af3b3f6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author Fan + * @description + * @date 2024/1/5 15:59 + */ +@Data +public class LoanPlanDetailsVoForFundVoucher { + private String busVinSid; + private String useOrgName; + private BigDecimal duePushMoney; + private String useOrgSid; + private BigDecimal fund; + private BigDecimal reveivableMoney; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java index 69a4af6eeb..791cc555a4 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java @@ -74,6 +74,7 @@ public class LoanRepaymentPlanDetails extends BaseEntity { private String returnWay; private String actualPerson; //实际还款人 private BigDecimal paymentMoney; //公司垫款金额 + private BigDecimal paymentInterest; //垫资方逾期利息 private BigDecimal fund; //资金占用费 private Integer overdue; //是否曾逾期(0是,1否) private Integer oweState; //是否转累欠状态(0是,1否) diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java index 303d827e78..e0ceae58a2 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java @@ -53,4 +53,13 @@ public interface LoanRepaymentPlanDetailsFeign { @ResponseBody public ResultBean checkOverDue(@RequestParam("sid") String sid); + @ApiOperation("根据销售订单车辆sid及期数查询") + @GetMapping("/selVehSidAndPeriod") + @ResponseBody + ResultBean selVehSidAndPeriod(@RequestParam("busVinSid") String busVinSid,@RequestParam("period") String period); + + @ApiOperation("根据销售订单车辆sid及期数修改") + @PostMapping("/updateVehSidAndPeriod") + @ResponseBody + ResultBean updateVehSidAndPeriod(@RequestParam("busVinSid") String busVinSid,@RequestParam("period") String period,@RequestParam("paymentMoney") String paymentMoney,@RequestParam("paymentInterest") String paymentInterest); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java index 275ea11087..0cb8155d26 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java @@ -46,4 +46,14 @@ public class LoanRepaymentPlanDetailsFeignFallback implements LoanRepaymentPlanD public ResultBean checkOverDue(String sid) { return null; } + + @Override + public ResultBean selVehSidAndPeriod(String busVinSid, String period) { + return null; + } + + @Override + public ResultBean updateVehSidAndPeriod(String busVinSid, String period, String paymentMoney, String paymentInterest) { + return null; + } } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanMoneyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanMoneyVo.java new file mode 100644 index 0000000000..0cdc9bfad8 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanMoneyVo.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class LoanRepaymentPlanMoneyVo { + + private String sid; + private BigDecimal paymentMoney; //公司垫款金额 + private BigDecimal paymentInterest; //垫资方逾期利息 + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/OtherPolicyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/OtherPolicyVo.java new file mode 100644 index 0000000000..edcc29aeec --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/OtherPolicyVo.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentschedule; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/1/19 15:18 + */ +@Data +public class OtherPolicyVo { + private String otherBankName; + private String otherPolicyName; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java index fda8e4a321..37f3d68aa0 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java @@ -84,6 +84,7 @@ public class LoanRestoreReportApplyDetailsVo implements Vo { private String bankName; // 资方 @ApiModelProperty("资方合同编号") private String bankContractNo; // 资方合同编号 + @ApiModelProperty("已还金额") private String alRepaidMoney; // 已还金额 @ApiModelProperty("当前逾期金额") @@ -100,6 +101,7 @@ public class LoanRestoreReportApplyDetailsVo implements Vo { private String alRepaidMoneyConPeriod; // 已还金额换算期数 @ApiModelProperty("逾期金额换算期数") private String beOverdueMoneyAndPeriod; // 逾期金额换算期数 + @ApiModelProperty("交回方式key") private String restoreTypeKey; // 交回方式key @ApiModelProperty("交回方式value") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportCarInfo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportCarInfo.java new file mode 100644 index 0000000000..d4f3d57d09 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportCarInfo.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.riskcenter.api.loanrestorereportapply; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehFile; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/* +* 交回报备逾期车辆信息 +* */ +@Data +public class LoanRestoreReportCarInfo { + + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String carNum; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("客户名称") + private String custName; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + @ApiModelProperty("销售订单车辆sid") + private String saleVehSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportFileVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportFileVo.java index 87636a4855..e510f831b4 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportFileVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportFileVo.java @@ -25,26 +25,10 @@ *********************************************************/ package com.yxt.anrui.riskcenter.api.loanrestorereportapply; - import com.yxt.common.core.vo.Vo; -import io.swagger.annotations.ApiModel; import lombok.Data; -/** - * Project: anrui-riskcenter(催收措施申请)
- * File: LoanBeCollectionApplyVo.java
- * Class: com.yxt.anrui.riskcenter.api.loanbecollectionapply.LoanBeCollectionApplyVo
- * Description: 逾期催收申请 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-12-12 16:06:20
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data -@ApiModel(value = "逾期催收申请 视图数据对象", description = "逾期催收申请 视图数据对象") public class LoanRestoreReportFileVo implements Vo { private String url; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/InboundVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/InboundVo.java new file mode 100644 index 0000000000..8fe7daeff6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/InboundVo.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class InboundVo { +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java new file mode 100644 index 0000000000..455888d0b5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApply.java @@ -0,0 +1,103 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundApply extends BaseEntity { + private static final long serialVersionUID = 3057964075133950895L; + + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("车型名称") + private String modelName; + @ApiModelProperty("车型sid") + private String modelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("配置名称") + private String configName; + @ApiModelProperty("是否带挂车") + private String tralier; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("停放地点") + private String locationName; + @ApiModelProperty("停放地点sid") + private String locationSid; + @ApiModelProperty("停车收费标准") + private String parkFees; + @ApiModelProperty("已还金额") + private BigDecimal alRepaidMoney; + @ApiModelProperty("当前逾期金额") + private BigDecimal currentBeMoney; + @ApiModelProperty("其中资金占用费") + private BigDecimal wheFundOccMoney; + @ApiModelProperty("未到期金额") + private BigDecimal unexpiredMoney; + @ApiModelProperty("总期数") + private String nper; + @ApiModelProperty("当前期数") + private String currentPeriod; + @ApiModelProperty("已还金额换算期数") + private String alRepaidMoneyConPeriod; + @ApiModelProperty("逾期金额换算期数") + private String beOverdueMoneyAndPeriod; + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司名称") + private String useOrgName; + @ApiModelProperty("办结日期") + private String closeDate; + @ApiModelProperty("实例id") + private String procInstId; + @ApiModelProperty("流程定义id") + private String procDefId; + @ApiModelProperty("任务id") + private String taskId; + @ApiModelProperty("环节id") + private String taskDefKey; + @ApiModelProperty("机构全路径sid") + private String orgSidPath; + + private String files; + + private String busVinSid; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsQuery.java new file mode 100644 index 0000000000..9a12ce7703 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsQuery.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundApplyDetailsQuery { + + @ApiModelProperty("sid") + private String sid; + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("机构全路径sid") + private String orgPath; + @ApiModelProperty("选择的要交回的车辆事前报备申请sid") + private String chooseSid; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java new file mode 100644 index 0000000000..0b19b1b613 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDetailsVo.java @@ -0,0 +1,109 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundApplyDetailsVo { + + private String sid; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("发起日期") + private String createDate; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("车型名称") + private String modelName; + @ApiModelProperty("车型sid") + private String modelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("配置名称") + private String configName; + @ApiModelProperty("是否带挂车") + private String tralier; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("停放地点") + private String locationName; + @ApiModelProperty("停放地点sid") + private String locationSid; + @ApiModelProperty("停车收费标准") + private String parkFees; + @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; + + private String busVinSid; + + private String remarks; + + private List filesList = new ArrayList<>(); + + private LoanReturnInboundTrailerDto loanReturnInboundTrailer = new LoanReturnInboundTrailerDto(); + + private String files; + + private String orgPath; + private String userSid; + private String useOrgSid; + @ApiModelProperty("车型和配置sid") + private String modelConfigSid; + @ApiModelProperty("销售指导价") + private String guildPrice; + + @ApiModelProperty(value = "任务id") + private String taskId; + @ApiModelProperty(value = "流程实例id") + private String procInstId; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDto.java new file mode 100644 index 0000000000..a558474acd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyDto.java @@ -0,0 +1,102 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundApplyDto implements Dto { + private static final long serialVersionUID = 4255302388803244120L; + + private String sid; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请人") + private String createByName; + + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("车型名称") + private String modelName; + @ApiModelProperty("车型sid") + private String modelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("配置名称") + private String configName; + @ApiModelProperty("是否带挂车") + private String tralier; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("停放地点") + private String locationName; + @ApiModelProperty("停放地点sid") + private String locationSid; + @ApiModelProperty("停车收费标准") + private String parkFees; + @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; + + private String remarks; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司名称") + private String useOrgName; + + private List filesList = new ArrayList<>(); + + private LoanReturnInboundTrailerDto loanReturnInboundTrailer; + + private String orgPath; + private String userSid; + + private String busVinSid; +} + diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java new file mode 100644 index 0000000000..622aab9656 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeign.java @@ -0,0 +1,83 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*; +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.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@FeignClient( + contextId = "anrui-riskcenter-LoanReturnInboundApply", + name = "anrui-riskcenter", + path = "v1/LoanReturnInboundApply", + fallback = LoanReturnInboundApplyFeignFallback.class) +public interface LoanReturnInboundApplyFeign { + + @ApiOperation("分页列表") + @PostMapping("/listPage") + ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("新增或修改") + @PostMapping("/saveOrUpdate") + ResultBean saveOrUpdate(@RequestBody LoanReturnInboundApplyDto dto); + + @ApiOperation("详情初始化") + @PostMapping("/details") + ResultBean details(LoanReturnInboundApplyDetailsQuery query); + + @ApiOperation("可入库交回车辆列表") + @PostMapping("/getInboundList") + ResultBean> getInboundList(@RequestBody PagerQuery pagerQuery); + + @ApiOperation("删除/批量删除") + @DeleteMapping("/delBySids") + ResultBean delBySids(@RequestBody String[] sids); + + @ApiOperation("提交") + @PostMapping("/submitApply") + public ResultBean submitApply(@Valid @RequestBody SubmitReturnInbondApplyDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteReturnInboundDto query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap ReturnInboundApplyNodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap ReturnInboundApplyNodeQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@Valid @RequestBody ReturnInboundApplyTaskQuery query); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody ReturnInboundApplyTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody ReturnInboundApplyTaskQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody ReturnInboundApplyDelegateQuery query); + + @ApiOperation(value = "移动端详情") + @GetMapping(value = "/getDetailsApp") + ResultBean getDetailsApp(@RequestParam("sid") String sid); + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeignFallback.java new file mode 100644 index 0000000000..1d973a3d53 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Component +public class LoanReturnInboundApplyFeignFallback { +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyQuery.java new file mode 100644 index 0000000000..e597a26093 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyQuery.java @@ -0,0 +1,60 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundApplyQuery implements Query { + private static final long serialVersionUID = -3762567916510710852L; + + //分公司 + private String useOrgName; + //申请部门 + @ApiModelProperty("申请部门") + private String createDept; + //申请人 + @ApiModelProperty("申请人") + private String createByName; + //办结日期 + @ApiModelProperty("办结日期") + private String closeDateStart; + private String closeDateEnd; + @ApiModelProperty("申请日期") + private String createDateStart; + private String createDateEnd; + //贷款合同编号 + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + //车架号 + @ApiModelProperty("车架号") + private String vinNo; + //车牌号 + @ApiModelProperty("车牌号") + private String vehMark; + //贷款人 + @ApiModelProperty("贷款人") + private String loanName; + //资方 + @ApiModelProperty("资方") + private String bankName; + //资方合同编号 + @ApiModelProperty("资方合同编号") + private String bankContractNo; + //客户名称 + @ApiModelProperty("客户名称") + private String customerName; + //是否带挂车 + @ApiModelProperty("是否带挂车") + private String tralier; + + private String menuUrl; + private String orgPath; + + private String userSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyVo.java new file mode 100644 index 0000000000..ee46b4cc43 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnInboundApplyVo.java @@ -0,0 +1,69 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundApplyVo { + + private String sid; + //流程状态 + @ApiModelProperty("流程状态") + private String nodeState; + //分公司 + @ApiModelProperty("分公司名称") + private String useOrgName; + //申请部门 + @ApiModelProperty("申请部门") + private String createDept; + //申请人 + @ApiModelProperty("申请人") + private String createByName; + //申请日期 + @ApiModelProperty("申请日期") + private String createDate; + //办结日期 + @ApiModelProperty("办结日期") + private String closeDate; + //贷款合同编号 + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + //车架号 + @ApiModelProperty("车架号") + private String vinNo; + //车牌号 + @ApiModelProperty("车牌号") + private String vehMark; + //资方 + @ApiModelProperty("资方") + private String bankName; + //资方合同编号 + @ApiModelProperty("资方合同编号") + private String bankContractNo; + //客户名称 + @ApiModelProperty("客户名称") + private String customerName; + //贷款人 + @ApiModelProperty("贷款人") + private String loanName; + //入库价 + @ApiModelProperty("入库价") + private int inboundMoney; + //是否带挂车 + @ApiModelProperty("是否带挂车") + private String tralier; + @ApiModelProperty("是否允许点击办理,true允许,false不允许") + private boolean allowModify; + private String createBySid; + + @ApiModelProperty("流程定义id") + private String procDefId; + @ApiModelProperty("流程实例id") + private String procInstId; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnQuery.java new file mode 100644 index 0000000000..6f50eda2ea --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/LoanReturnQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/17 + **/ +@Data +public class LoanReturnQuery implements Query { + private static final long serialVersionUID = 7803623528380694122L; + + private String orgPath; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnAppVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnAppVo.java new file mode 100644 index 0000000000..b69d937e3f --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnAppVo.java @@ -0,0 +1,104 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/22 + **/ +@Data +public class ReturnAppVo { + + @ApiModelProperty("申请部门") + private String createDept; + + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("发起日期") + private String createDate; + @ApiModelProperty("车架号") + private String vinNo; + + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("车型名称") + private String modelName; + @ApiModelProperty("车型sid") + private String modelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("配置名称") + private String configName; + @ApiModelProperty("是否带挂车") + private String tralier; + @ApiModelProperty("客户名称") + private String customerName; + + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("停放地点") + private String locationName; + + @ApiModelProperty("停车收费标准") + private String parkFees; + @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; + + + private String remarks; + + private List filesList = new ArrayList<>(); + + + private String files; + + @ApiModelProperty(value = "任务id") + private String taskId; + @ApiModelProperty(value = "流程实例id") + private String procInstId; + + + @ApiModelProperty("挂车车架号") + private String vinNoTrailer; + @ApiModelProperty("挂车车牌号") + private String vehMarkTrailer; + @ApiModelProperty("挂车类型") + private String trailerType; + @ApiModelProperty("挂车入库价") + private String inboundMoneyTrailer; + @ApiModelProperty("挂车备注") + private String remarksTrailer; + + private String orgPath; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnInboundVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnInboundVo.java new file mode 100644 index 0000000000..df09354f4e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/ReturnInboundVo.java @@ -0,0 +1,27 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class ReturnInboundVo { + + private String sid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车型") + private String modelName; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("贷款人") + private String loanName; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/CompleteReturnInboundDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/CompleteReturnInboundDto.java new file mode 100644 index 0000000000..78bdb33d42 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/CompleteReturnInboundDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class CompleteReturnInboundDto { + + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "用户全路径sid") + private String orgSidPath; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:instanceId") + private String instanceId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyDelegateQuery.java new file mode 100644 index 0000000000..801afa68d2 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class ReturnInboundApplyDelegateQuery { + + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeQuery.java new file mode 100644 index 0000000000..484cdbc71b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeQuery.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class ReturnInboundApplyNodeQuery { + + @ApiModelProperty(value = "环节定义id") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeVo.java new file mode 100644 index 0000000000..30eeb374bc --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyNodeVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class ReturnInboundApplyNodeVo { + + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyTaskQuery.java new file mode 100644 index 0000000000..9a5de8bb96 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/ReturnInboundApplyTaskQuery.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class ReturnInboundApplyTaskQuery { + + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id") + private String instanceId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/SubmitReturnInbondApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/SubmitReturnInbondApplyDto.java new file mode 100644 index 0000000000..dcce77e6a8 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundapply/flowable/SubmitReturnInbondApplyDto.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable; + +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class SubmitReturnInbondApplyDto extends LoanReturnInboundApplyDto { + + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailer.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailer.java new file mode 100644 index 0000000000..c4be04ccbe --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailer.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundtrailer; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundTrailer extends BaseEntity { + private static final long serialVersionUID = -368716582343073366L; + + private String mainSid; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车架号") + private String vinNo; + private String vehMark; + @ApiModelProperty("挂车类型") + private String trailerType; + @ApiModelProperty("挂车类型key") + private String trailerTypeKey; + @ApiModelProperty("入库价") + private int inboundMoney; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailerDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailerDto.java new file mode 100644 index 0000000000..73a865f933 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturninboundtrailer/LoanReturnInboundTrailerDto.java @@ -0,0 +1,27 @@ +package com.yxt.anrui.riskcenter.api.loanreturninboundtrailer; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Data +public class LoanReturnInboundTrailerDto { + + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车架号") + private String vinNo; + private String vehMark; + @ApiModelProperty("挂车类型") + private String trailerType; + @ApiModelProperty("挂车类型key") + private String trailerTypeKey; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("备注") + private String remarks; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnLedgerVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnLedgerVo.java new file mode 100644 index 0000000000..93c7de118a --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnLedgerVo.java @@ -0,0 +1,83 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanReturnLedgerVo { + + private String sid; + + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车辆类型key") + private String vehTypeKey; + @ApiModelProperty("车型") + private String vehModel; + @ApiModelProperty("车型sid") + private String vehModelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("配置") + private String configName; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("贷款人sid") + private String borrowerSid; + @ApiModelProperty("存放地点") + private String location; + @ApiModelProperty("存放地点sid") + private String locationSid; + @ApiModelProperty("处置方式key") + private String disposalKey; + @ApiModelProperty("处置方式") + private String disposal; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("入库日期") + private Date inboundDate; + @ApiModelProperty("出库日期") + private Date outboundDate; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司名称") + private String useOrgName; + @ApiModelProperty("组织全路径") + private String orgSidPath; + @ApiModelProperty("逾期金额") + private String overMoney; + @ApiModelProperty("未到期金额") + private String notBecomeDueMoney; + @JsonProperty("pSid") + private String pSid; + @ApiModelProperty("销售订单sid") + private String saleOrderSid; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; + @ApiModelProperty("库存状态") + private String vehicleState; + @ApiModelProperty("库存状态key") + private String vehicleStateKey; + @ApiModelProperty("业务sid") + private String busSid; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedger.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedger.java new file mode 100644 index 0000000000..8454f079b5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedger.java @@ -0,0 +1,82 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/17 + **/ +@Data +public class LoanReturnVehLedger extends BaseEntity { + private static final long serialVersionUID = -2097285949752704911L; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车辆类型key") + private String vehTypeKey; + @ApiModelProperty("车型") + private String vehModel; + @ApiModelProperty("车型sid") + private String vehModelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("配置") + private String configName; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("贷款人sid") + private String borrowerSid; + @ApiModelProperty("存放地点") + private String location; + @ApiModelProperty("存放地点sid") + private String locationSid; + @ApiModelProperty("处置方式key") + private String disposalKey; + @ApiModelProperty("处置方式") + private String disposal; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("入库日期") + private Date inboundDate; + @ApiModelProperty("出库日期") + private Date outboundDate; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司名称") + private String useOrgName; + @ApiModelProperty("组织全路径") + private String orgSidPath; + /* @ApiModelProperty("逾期金额") + private BigDecimal overMoney; + @ApiModelProperty("未到期金额") + private BigDecimal notBecomeDueMoney;*/ + + private String pSid; + @ApiModelProperty("销售订单sid") + private String saleOrderSid; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; + @ApiModelProperty("库存状态") + private String stockState; + @ApiModelProperty("库存状态key") + private String stockStateKey; + @ApiModelProperty("业务sid") + private String busSid; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerDto.java new file mode 100644 index 0000000000..271870e229 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerDto.java @@ -0,0 +1,66 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/22 + **/ +@Data +public class LoanReturnVehLedgerDto { + + private String sid; + + /* @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车辆类型key") + private String vehTypeKey; + @ApiModelProperty("车型") + private String vehModel; + @ApiModelProperty("车型sid") + private String vehModelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("配置") + private String configName; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("贷款人sid") + private String borrowerSid;*/ + @ApiModelProperty("存放地点") + private String location; + @ApiModelProperty("存放地点sid") + private String locationSid; + /* @ApiModelProperty("处置方式key") + private String disposalKey; + @ApiModelProperty("处置方式") + private String disposal; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("入库日期") + private String inboundDate; + @ApiModelProperty("出库日期") + private String outboundDate; + @ApiModelProperty("逾期金额") + private String overMoney; + @ApiModelProperty("未到期金额") + private String notBecomeDueMoney; + + @ApiModelProperty("库存状态") + private String vehicleState; + @ApiModelProperty("库存状态key") + private String vehicleStateKey;*/ + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerFeign.java new file mode 100644 index 0000000000..4718fae7b4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerFeign.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +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.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/22 + **/ +@FeignClient( + contextId = "anrui-riskcenter-LoanReturnVehLedger", + name = "anrui-riskcenter", + path = "v1/LoanReturnVehLedger", + fallback = LoanReturnVehLedgerFeignFallback.class) +public interface LoanReturnVehLedgerFeign { + + @ApiOperation("分页列表") + @PostMapping("/listPage") + ResultBean> pageList(@RequestBody PagerQuery pagerQuery); + + @ApiOperation("编辑") + @PostMapping("/update") + ResultBean update(@RequestBody LoanReturnVehLedgerDto dto); + + @ApiOperation("详情") + @GetMapping("/details") + ResultBean getDetails(@RequestParam("sid") String sid); + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerFeignFallback.java new file mode 100644 index 0000000000..3975e61e61 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/22 + **/ +@Component +public class LoanReturnVehLedgerFeignFallback { +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerQuery.java new file mode 100644 index 0000000000..fa6d0e6f6d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerQuery.java @@ -0,0 +1,48 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/22 + **/ +@Data +public class LoanReturnVehLedgerQuery implements Query { + private static final long serialVersionUID = 6282512872080068571L; + + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车型") + private String vehModel; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("存放地点") + private String location; + @ApiModelProperty("处置方式key") + private String disposalKey; + @ApiModelProperty("入库日期开始") + private String inboundDateStart; + @ApiModelProperty("入库日期结束") + private String inboundDateEnd; + @ApiModelProperty("出库日期开始") + private String outboundDateStart; + @ApiModelProperty("出库日期结束") + private String outboundDateEnd; + @ApiModelProperty("库存状态") + private String vehicleStateKey; + + private String menuUrl; + private String orgPath; + private String userSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerVo.java new file mode 100644 index 0000000000..f3f6b05ef7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/LoanReturnVehLedgerVo.java @@ -0,0 +1,53 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/22 + **/ +@Data +public class LoanReturnVehLedgerVo { + + private String sid; + @ApiModelProperty("入库申请的sid") + private String busSid; + + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车型") + private String vehModel; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("逾期金额") + private String overMoney; + @ApiModelProperty("未到期金额") + private String notBecomeDueMoney; + @ApiModelProperty("存放地点") + private String location; + @ApiModelProperty("处置方式") + private String disposal; + @ApiModelProperty("入库价") + private int inboundMoney; + @ApiModelProperty("入库日期") + private String inboundDate; + @ApiModelProperty("出库日期") + private String outboundDate; + @ApiModelProperty("库存状态") + private String vehicleState; + + private String busVinSid; + + private String pSid; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/ReturnVehType.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/ReturnVehType.java new file mode 100644 index 0000000000..991882a76e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanreturnvehledger/ReturnVehType.java @@ -0,0 +1,69 @@ +package com.yxt.anrui.riskcenter.api.loanreturnvehledger; + +import lombok.Getter; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +public class ReturnVehType { + + @Getter + public static enum ReturnVehicleState { + + KC("0001", "库存"), + CK("0002", "出库"), + ; + + /** + * code值 + */ + private final String code; + /** + * 备注 + */ + private final String remarks; + + /** + * 构造器 + * + * @param code code值 + * @param remarks 备注 + */ + private ReturnVehicleState(String code, String remarks) { + this.code = code; + this.remarks = remarks; + } + } + + @Getter + public static enum Disposal { + + WCZ("01", "未处置"), + KHSH("02", "客户赎回"), + ECXS("03", "二次销售"), + ECZZ("04", "二次转租"), + ; + + /** + * code值 + */ + private final String code; + /** + * 备注 + */ + private final String remarks; + + /** + * 构造器 + * + * @param code code值 + * @param remarks 备注 + */ + private Disposal(String code, String remarks) { + this.code = code; + this.remarks = remarks; + } + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApply.java new file mode 100644 index 0000000000..20959620fe --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApply.java @@ -0,0 +1,96 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApply extends BaseEntity { + private static final long serialVersionUID = -5059711246737148960L; + + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("停放地点") + private String locationName; + @ApiModelProperty("停放地点sid") + private String locationSid; + @ApiModelProperty("是否年检") + private String inspect; + @ApiModelProperty("年检情况") + private String inspectSituation; + @ApiModelProperty("是否已出保") + private String guaranteed; + @ApiModelProperty("保险情况") + private String insuranceSituation; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("当前行驶公里数") + private String kilometerDriven; + @ApiModelProperty("其他车况说明") + private String illustrate; + @ApiModelProperty("车辆照片") + private String files; + @ApiModelProperty("已还金额") + private BigDecimal alRepaidMoney; + @ApiModelProperty("当前逾期金额") + private BigDecimal currentBeMoney; + @ApiModelProperty("其中资金占用费") + private BigDecimal wheFundOccMoney; + @ApiModelProperty("未到期金额") + private BigDecimal unexpiredMoney; + @ApiModelProperty("总期数") + private String nper; + @ApiModelProperty("当前期数") + private String currentPeriod; + @ApiModelProperty("已还金额换算期数") + private String alRepaidMoneyConPeriod; + @ApiModelProperty("逾期金额换算期数") + private String beOverdueMoneyAndPeriod; + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("实例iD") + private String procInstId; + @ApiModelProperty("流程定义id") + private String procDefId; + @ApiModelProperty("任务iD") + private String taskId; + @ApiModelProperty("环节id") + private String taskDefKey; + @ApiModelProperty("办结日期") + private String closeDate; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司名称") + private String useOrgName; + @ApiModelProperty("机构全路径sid") + private String orgSidPath; + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsQuery.java new file mode 100644 index 0000000000..198e8caaf0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyDetailsQuery { + + @ApiModelProperty("sid") + private String sid; + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("机构全路径sid") + private String orgPath; + + private List chooseSidList = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java new file mode 100644 index 0000000000..ffc1c60efc --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java @@ -0,0 +1,98 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyDetailsVo { + + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请人") + private String createByName; + + @ApiModelProperty("申请日期") + private String createDate; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("停放地点") + private String locationName; + @ApiModelProperty("是否年检") + private String inspect; + @ApiModelProperty("年检情况") + private String inspectSituation; + @ApiModelProperty("是否已出保") + private String guaranteed; + @ApiModelProperty("保险情况") + private String insuranceSituation; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("当前行驶公里数") + private String kilometerDriven; + @ApiModelProperty("其他车况说明") + private String illustrate; + @ApiModelProperty("车辆照片") + private List filesList = new ArrayList<>(); + @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 List loanSecondarySalesVehVoList = new ArrayList<>(); + @ApiModelProperty("费用明细") + private LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo(); + + private String sid; + @ApiModelProperty("申请人sid") + private String userSid; + private String orgPath; + @ApiModelProperty(value = "任务id") + private String taskId; + @ApiModelProperty(value = "流程实例id") + private String procInstId; + private String useOrgSid; + + private String files; + + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java new file mode 100644 index 0000000000..f1ec634c34 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java @@ -0,0 +1,90 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyDto { + + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请部门sid") + private String createDeptSid; + @ApiModelProperty("申请人") + private String createByName; + + @ApiModelProperty("申请日期") + private String createDate; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("停放地点") + private String locationName; + @ApiModelProperty("是否年检") + private String inspect; + @ApiModelProperty("年检情况") + private String inspectSituation; + @ApiModelProperty("是否已出保") + private String guaranteed; + @ApiModelProperty("保险情况") + private String insuranceSituation; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("当前行驶公里数") + private String kilometerDriven; + @ApiModelProperty("其他车况说明") + private String illustrate; + @ApiModelProperty("车辆照片") + private List filesList = new ArrayList<>(); + @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 List loanSecondarySalesVehVoList = new ArrayList<>(); + @ApiModelProperty("费用明细") + private LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo(); + + private String sid; + + private String userSid; + + private String orgPath; + + @ApiModelProperty("销售订单sid") + private String salesOrderSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeign.java new file mode 100644 index 0000000000..6bc44536be --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeign.java @@ -0,0 +1,80 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*; +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.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@FeignClient( + contextId = "anrui-riskcenter-LoanSecondarySalesApply", + name = "anrui-riskcenter", + path = "v1/LoanSecondarySalesApply", + fallback = LoanSecondarySalesApplyFeignFallback.class) +public interface LoanSecondarySalesApplyFeign { + + @ApiOperation("分页列表") + @PostMapping("/listPage") + ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("新增或修改") + @PostMapping("/saveOrUpdate") + ResultBean saveOrUpdate(@RequestBody LoanSecondarySalesApplyDto dto); + + @ApiOperation("详情初始化") + @PostMapping("/details") + ResultBean details(@RequestBody LoanSecondarySalesApplyDetailsQuery query); + + @ApiOperation("删除/批量删除") + @DeleteMapping("/delBySids") + ResultBean delBySids(@RequestBody String[] sids); + + @ApiOperation("提交") + @PostMapping("/submitApply") + public ResultBean submitApply(@Valid @RequestBody SubmitLoanSecondarySalesApplyDto dto); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteLoanSecondarySalesApplyDto query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap LoanSecondarySalesApplyNodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap LoanSecondarySalesApplyNodeQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@Valid @RequestBody LoanSecondarySalesApplyTaskQuery query); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody LoanSecondarySalesApplyTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody LoanSecondarySalesApplyTaskQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody LoanSecondarySalesApplyDelegateQuery query); + + @ApiOperation(value = "移动端详情") + @PostMapping(value = "/getAppDetails") + ResultBean getAppDetails(@RequestParam("sid") String sid); + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeignFallback.java new file mode 100644 index 0000000000..282366e380 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Component +public class LoanSecondarySalesApplyFeignFallback { +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java new file mode 100644 index 0000000000..b9504309f6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java @@ -0,0 +1,51 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyQuery implements Query { + private static final long serialVersionUID = -8173091575102397453L; + + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("申请日期开始") + private String createTimeStart; + @ApiModelProperty("申请日期结束") + private String createTimeEnd; + @ApiModelProperty("办结日期开始") + private String closeDateStart; + @ApiModelProperty("办结日期结束") + private String closeDateEnd; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("欠款合计(大于)") + private String arrearsAll; + + private String menuUrl; + private String orgPath; + + private String userSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java new file mode 100644 index 0000000000..188efb5bfb --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java @@ -0,0 +1,57 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyVo { + + @ApiModelProperty("sid") + private String sid; + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("申请日期") + private String createDate; + @ApiModelProperty("办结日期") + private String closeDate; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("欠款合计") + private String arrearsAll; + @ApiModelProperty("车辆售价") + private String vehPrice; + @ApiModelProperty("预计亏损金额") + private String lossPrice; + + @ApiModelProperty("是否允许点击办理,true允许,false不允许") + private boolean allowModify; + private String createBySid; + + @ApiModelProperty("流程定义id") + private String procDefId; + @ApiModelProperty("流程实例id") + private String procInstId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesCostAppVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesCostAppVo.java new file mode 100644 index 0000000000..bbb2a9d531 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesCostAppVo.java @@ -0,0 +1,74 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/29 + **/ +@Data +public class LoanSecondarySalesCostAppVo { + + @ApiModelProperty("欠款合计") + private String arrearsAll; + @ApiModelProperty("贷款保证金") + private String loanDeposit; + @ApiModelProperty("车辆售价") + private String vehPrice; + @ApiModelProperty("催收费用") + private String collectionCost; + @ApiModelProperty("资方结清费用") + private String bankSettleCost; + @ApiModelProperty("资方结清费用承担方") + private String bankSettleCostAssume; + private String bankSettleCostAssumeKey; + @ApiModelProperty("车辆违章费用") + private String vehicleViolationCost; + @ApiModelProperty("车辆违章费用承担方") + private String vehicleViolationCostAssume; + private String vehicleViolationCostAssumeKey; + @ApiModelProperty("年检费") + private String inspectYearCost; + @ApiModelProperty("年检费承担方") + private String inspectYearCostAssume; + private String inspectYearCostAssumeKey; + @ApiModelProperty("保险费") + private String insureCost; + @ApiModelProperty("保险费承担方") + private String insureCostAssume; + private String insureCostAssumeKey; + @ApiModelProperty("过户费") + private String ownershipCost; + @ApiModelProperty("过户费承担方") + private String ownershipCostAssume; + private String ownershipCostAssumeKey; + @ApiModelProperty("停车费") + private String stopCost; + @ApiModelProperty("停车费承担方") + private String stopCostAssume; + private String stopCostAssumeKey; + @ApiModelProperty("其他费用") + private String otherCost; + @ApiModelProperty("其他费用承担方") + private String otherCostAssume; + private String otherCostAssumeKey; + @ApiModelProperty("费用说明") + private String costDescription; + @ApiModelProperty("预计亏损金额") + private String lossPrice; + @ApiModelProperty("后续欠款处置方向") + private String debtDisposal; + @ApiModelProperty("附件") + private List files = new ArrayList<>(); + + @ApiModelProperty("车辆评估") + private String vehicleEvaluation; + + private String filesss; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesVehAppVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesVehAppVo.java new file mode 100644 index 0000000000..874b58e3a3 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesVehAppVo.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/29 + **/ +@Data +public class LoanSecondarySalesVehAppVo { + + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车型") + private String modelName; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/SecondarySalesAppVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/SecondarySalesAppVo.java new file mode 100644 index 0000000000..0c4fd70296 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/SecondarySalesAppVo.java @@ -0,0 +1,88 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/29 + **/ +@Data +public class SecondarySalesAppVo { + + @ApiModelProperty("申请部门") + private String createDept; + @ApiModelProperty("申请人") + private String createByName; + + @ApiModelProperty("申请日期") + private String createDate; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款合同编号") + private String loanContractNo; + @ApiModelProperty("资方") + private String bankName; + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("停放地点") + private String locationName; + @ApiModelProperty("是否年检") + private String inspect; + @ApiModelProperty("年检情况") + private String inspectSituation; + @ApiModelProperty("是否已出保") + private String guaranteed; + @ApiModelProperty("保险情况") + private String insuranceSituation; + @ApiModelProperty("首次登记日期") + private String firstDate; + @ApiModelProperty("当前行驶公里数") + private String kilometerDriven; + @ApiModelProperty("其他车况说明") + private String illustrate; + @ApiModelProperty("车辆照片") + private List filesList = new ArrayList<>(); + @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 List loanSecondarySalesVehVoList = new ArrayList<>(); + @ApiModelProperty("费用明细") + private LoanSecondarySalesCostAppVo loanSecondarySalesCost; + + @ApiModelProperty("申请人sid") + private String userSid; + private String orgPath; + @ApiModelProperty(value = "任务id") + private String taskId; + @ApiModelProperty(value = "流程实例id") + private String procInstId; + + private String files; + + @ApiModelProperty("销售订单sid") + private String salesOrderSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java new file mode 100644 index 0000000000..1fc0592fa4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class CompleteLoanSecondarySalesApplyDto { + + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "用户全路径sid") + private String orgSidPath; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:instanceId") + private String instanceId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + @ApiModelProperty("车辆评估价格") + private String vehicleEvaluation; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyDelegateQuery.java new file mode 100644 index 0000000000..191c07ec38 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyDelegateQuery { + + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java new file mode 100644 index 0000000000..84fb99e136 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyNodeQuery { + + @ApiModelProperty(value = "环节定义id") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + + @ApiModelProperty("车辆评估价格") + private String vehicleEvaluation; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeVo.java new file mode 100644 index 0000000000..d115d98a97 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyNodeVo { + + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyTaskQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyTaskQuery.java new file mode 100644 index 0000000000..9c05838091 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyTaskQuery.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesApplyTaskQuery { + + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id") + private String instanceId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/SubmitLoanSecondarySalesApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/SubmitLoanSecondarySalesApplyDto.java new file mode 100644 index 0000000000..c79c265861 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/SubmitLoanSecondarySalesApplyDto.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable; + +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class SubmitLoanSecondarySalesApplyDto extends LoanSecondarySalesApplyDto { + + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java new file mode 100644 index 0000000000..6b1667867c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCost.java @@ -0,0 +1,75 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalescost; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ + +@Data +public class LoanSecondarySalesCost extends BaseEntity { + private static final long serialVersionUID = -6585421519539995802L; + + private String mainSid; + @ApiModelProperty("欠款合计") + private BigDecimal arrearsAll; + @ApiModelProperty("贷款保证金") + private BigDecimal loanDeposit; + @ApiModelProperty("车辆售价") + private BigDecimal vehPrice; + @ApiModelProperty("催收费用") + private BigDecimal collectionCost; + @ApiModelProperty("资方结清费用") + private BigDecimal bankSettleCost; + @ApiModelProperty("资方结清费用承担方") + private String bankSettleCostAssume; + private String bankSettleCostAssumeKey; + @ApiModelProperty("车辆违章费用") + private BigDecimal vehicleViolationCost; + @ApiModelProperty("车辆违章费用承担方") + private String vehicleViolationCostAssume; + private String vehicleViolationCostAssumeKey; + @ApiModelProperty("年检费") + private BigDecimal inspectYearCost; + @ApiModelProperty("年检费承担方") + private String inspectYearCostAssume; + private String inspectYearCostAssumeKey; + @ApiModelProperty("保险费") + private BigDecimal insureCost; + @ApiModelProperty("保险费承担方") + private String insureCostAssume; + private String insureCostAssumeKey; + @ApiModelProperty("过户费") + private BigDecimal ownershipCost; + @ApiModelProperty("过户费承担方") + private String ownershipCostAssume; + private String ownershipCostAssumeKey; + @ApiModelProperty("停车费") + private BigDecimal stopCost; + @ApiModelProperty("停车费承担方") + private String stopCostAssume; + private String stopCostAssumeKey; + @ApiModelProperty("其他费用") + private BigDecimal otherCost; + @ApiModelProperty("其他费用承担方") + private String otherCostAssume; + private String otherCostAssumeKey; + @ApiModelProperty("费用说明") + private String costDescription; + @ApiModelProperty("预计亏损金额") + private BigDecimal lossPrice; + @ApiModelProperty("后续欠款处置方向") + private String debtDisposal; + @ApiModelProperty("附件") + private String files; + @ApiModelProperty("车辆评估") + private BigDecimal vehicleEvaluation; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java new file mode 100644 index 0000000000..7e9350dcd6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java @@ -0,0 +1,76 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalescost; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/24 + **/ +@Data +public class LoanSecondarySalesCostVo { + + @ApiModelProperty("欠款合计") + private String arrearsAll; + @ApiModelProperty("贷款保证金") + private String loanDeposit; + @ApiModelProperty("车辆售价") + private String vehPrice; + @ApiModelProperty("催收费用") + private String collectionCost; + @ApiModelProperty("资方结清费用") + private String bankSettleCost; + @ApiModelProperty("资方结清费用承担方") + private String bankSettleCostAssume; + private String bankSettleCostAssumeKey; + @ApiModelProperty("车辆违章费用") + private String vehicleViolationCost; + @ApiModelProperty("车辆违章费用承担方") + private String vehicleViolationCostAssume; + private String vehicleViolationCostAssumeKey; + @ApiModelProperty("年检费") + private String inspectYearCost; + @ApiModelProperty("年检费承担方") + private String inspectYearCostAssume; + private String inspectYearCostAssumeKey; + @ApiModelProperty("保险费") + private String insureCost; + @ApiModelProperty("保险费承担方") + private String insureCostAssume; + private String insureCostAssumeKey; + @ApiModelProperty("过户费") + private String ownershipCost; + @ApiModelProperty("过户费承担方") + private String ownershipCostAssume; + private String ownershipCostAssumeKey; + @ApiModelProperty("停车费") + private String stopCost; + @ApiModelProperty("停车费承担方") + private String stopCostAssume; + private String stopCostAssumeKey; + @ApiModelProperty("其他费用") + private String otherCost; + @ApiModelProperty("其他费用承担方") + private String otherCostAssume; + private String otherCostAssumeKey; + @ApiModelProperty("费用说明") + private String costDescription; + @ApiModelProperty("预计亏损金额") + private String lossPrice; + @ApiModelProperty("后续欠款处置方向") + private String debtDisposal; + @ApiModelProperty("附件") + private List files = new ArrayList<>(); + + @ApiModelProperty("车辆评估") + private String vehicleEvaluation; + + private String filesss; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomer.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomer.java new file mode 100644 index 0000000000..e56790cedf --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomer.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalescustomer; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Data +public class LoanSecondarySalesCustomer extends BaseEntity { + private static final long serialVersionUID = -4647743383421777867L; + + private String mainSid; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户类型") + private String customerType; + private String customerTypeKey; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("证件类型") + private String certificateTypeKey; + private String certificateType; + @ApiModelProperty("证件号码") + private String IDNumber; + @ApiModelProperty("证件有效期") + private String endDate; + @ApiModelProperty("证件地址") + private String certificateAddress; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerDto.java new file mode 100644 index 0000000000..9f6e5fef88 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerDto.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalescustomer; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Data +public class LoanSecondarySalesCustomerDto implements Dto { + private static final long serialVersionUID = 4377892244342062357L; + + private String mainSid; + + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户类型") + private String customerType; + private String customerTypeKey; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("证件类型") + private String certificateTypeKey; + private String certificateType; + @ApiModelProperty("证件号码") + @JsonProperty("IDNumber") + private String IDNumber; + @ApiModelProperty("证件有效期") + private String endDate; + @ApiModelProperty("证件地址") + private String certificateAddress; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerFeign.java new file mode 100644 index 0000000000..8e3ca3b5cd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerFeign.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalescustomer; + +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyFeignFallback; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@FeignClient( + contextId = "anrui-riskcenter-LoanSecondarySalesCustomer", + name = "anrui-riskcenter", + path = "v1/LoanSecondarySalesCustomer", + fallback = LoanSecondarySalesCustomerFeignFallback.class) +public interface LoanSecondarySalesCustomerFeign { + + @ApiOperation("新增或修改") + @PostMapping("/saveOrUpdate") + ResultBean saveOrUpdate(@RequestBody LoanSecondarySalesCustomerDto dto); + + @ApiOperation("初始化") + @GetMapping("/getDetails") + ResultBean getDetails(@RequestParam("sid") String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerFeignFallback.java new file mode 100644 index 0000000000..278fef9578 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/LoanSecondarySalesCustomerFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalescustomer; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Component +public class LoanSecondarySalesCustomerFeignFallback { +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/SalesInitVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/SalesInitVo.java new file mode 100644 index 0000000000..22472739e4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescustomer/SalesInitVo.java @@ -0,0 +1,48 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalescustomer; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Data +public class SalesInitVo { + + private String mainSid; + @ApiModelProperty("销售部门") + private String createDept; + @ApiModelProperty("销售日期") + private String saleDate; + @ApiModelProperty("销售价格") + private String salePrice; + + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("客户类型") + private String customerType; + private String customerTypeKey; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("证件类型") + private String certificateTypeKey; + private String certificateType; + @ApiModelProperty("证件号码") + @JsonProperty("IDNumber") + private String IDNumber; + @ApiModelProperty("证件有效期") + private String endDate; + @ApiModelProperty("证件地址") + private String certificateAddress; + @ApiModelProperty("车辆列表") + private List loanSecondarySalesVehVoList = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVeh.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVeh.java new file mode 100644 index 0000000000..e9159bbc21 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVeh.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesveh; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Data +public class LoanSecondarySalesVeh extends BaseEntity { + private static final long serialVersionUID = -6185503408818867800L; + + + private String mainSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车型") + private String modelName; + + private String busVinSid; + @ApiModelProperty("车型sid") + private String modelSid; + @ApiModelProperty("配置sid") + private String configSid; + + private String busSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java new file mode 100644 index 0000000000..1c473ada69 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesveh; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/24 + **/ +@Data +public class LoanSecondarySalesVehVo { + + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车辆类型") + private String vehType; + @ApiModelProperty("车型") + private String modelName; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; + @ApiModelProperty("车型sid") + private String modelSid; + @ApiModelProperty("配置sid") + private String configSid; + + private String busSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/CustomerListVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/CustomerListVo.java new file mode 100644 index 0000000000..7450a78a38 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/CustomerListVo.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.riskcenter.api.loansubletapply; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/1/19 10:46 + */ +@Data +public class CustomerListVo { + + @ApiModelProperty("名称") + private String vinOwner; + @ApiModelProperty("客户类型key") + private String customerTypeKey; + @ApiModelProperty("客户类型") + private String customerType; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("证件地址") + private String cardAddress; + @ApiModelProperty("有效期") + private String endDate; + @ApiModelProperty("证件号码") + private String idNumber; + @ApiModelProperty("证件类型key") + private String certificateTypeKey; + @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)") + private String certificateType; + @ApiModelProperty("新车主客户sid") + private String newCustomerSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java index 4336a1944d..a958575001 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java @@ -14,8 +14,8 @@ import java.util.Date; * @version 1.0 * @since 1.0 */ -@ApiModel(value = "赎回申请", description = "赎回申请") -@TableName("loan_redemption_apply") +@ApiModel(value = "车辆二次转租申请", description = "车辆二次转租申请") +@TableName("loan_sublet_apply") @Data public class LoanSubletApply extends BaseEntity { private static final long serialVersionUID = 1L; @@ -56,17 +56,33 @@ public class LoanSubletApply extends BaseEntity { private String customer; @ApiModelProperty("贷款人") private String borrowerName; - @ApiModelProperty("本次还款金额") + @ApiModelProperty("二次转租价格") private BigDecimal amount; - @ApiModelProperty("赎回方案") + @ApiModelProperty("转租方案说明") private String plan; - @ApiModelProperty("停放地点") - private String location; - @ApiModelProperty("相关费用") - private BigDecimal fees; - @ApiModelProperty("相关费用说明") - private String feesShows; - @ApiModelProperty("交回车辆主车台账sid") - private String ledgerSid; + @ApiModelProperty("原车主是否同意") + private String agree; + @ApiModelProperty("新车主名称") + private String vinOwner; + @ApiModelProperty("客户类型key") + private String customerTypeKey; + @ApiModelProperty("客户类型") + private String customerType; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("证件地址") + private String cardAddress; + @ApiModelProperty("有效期") + private String endDate; + @ApiModelProperty("证件号码") + private String idNumber; + @ApiModelProperty("证件类型key") + private String certificateTypeKey; + @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)") + private String certificateType; + @ApiModelProperty("新车主客户sid") + private String newCustomerSid; + private String customerSid; + private String borrowerSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java index 57337c95a0..df5a33e3bc 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java @@ -15,7 +15,7 @@ import java.util.List; @Data public class LoanSubletApplyDto implements Dto { - private String ledgerSid; + private String sid; private String userSid; private String dept; @@ -23,6 +23,8 @@ public class LoanSubletApplyDto implements Dto { private String applyName; private String applyDate; private String orgPath; + private String customerSid; + private String borrowerSid; @ApiModelProperty("消贷合同号") private String loanContractNo; @ApiModelProperty("资方") @@ -33,17 +35,32 @@ public class LoanSubletApplyDto implements Dto { private String customer; @ApiModelProperty("贷款人") private String borrowerName; - @ApiModelProperty("本次还款金额") + @ApiModelProperty("二次转租价格") private String amount; - @ApiModelProperty("赎回方案") + @ApiModelProperty("转租方案说明") private String plan; - @ApiModelProperty("停放地点") - private String location; - @ApiModelProperty("相关费用") - private String fees; - @ApiModelProperty("相关费用说明") - private String feesShows; - private String busVinSid; //催收记录 + @ApiModelProperty("原车主是否同意") + private String agree; + @ApiModelProperty("新车主名称") + private String vinOwner; + @ApiModelProperty("客户类型key") + private String customerTypeKey; + @ApiModelProperty("客户类型") + private String customerType; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("证件地址") + private String cardAddress; + @ApiModelProperty("有效期") + private String endDate; + @ApiModelProperty("证件号码") + private String idNumber; + @ApiModelProperty("证件类型key") + private String certificateTypeKey; + @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)") + private String certificateType; + @ApiModelProperty("新车主客户sid") + private String newCustomerSid; private List files = new ArrayList<>(); private List vinList = new ArrayList<>(); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeign.java index f92615de37..77f5e15e83 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeign.java @@ -38,6 +38,12 @@ public interface LoanSubletApplyFeign { @PostMapping("/getVinList") public ResultBean> getVinList(@RequestBody PagerQuery pq); + @ApiOperation("获取客户列表") + @GetMapping("/pickCustomer") + @ResponseBody + public ResultBean> pickCustomer(@RequestParam("orgPath") String orgPath); + + @ApiOperation("新增初始化") @GetMapping("/subletInit") @ResponseBody diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeignFallback.java index 799d5b9bae..4d2d1eb0ed 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeignFallback.java @@ -25,6 +25,11 @@ public class LoanSubletApplyFeignFallback implements LoanSubletApplyFeign { return null; } + @Override + public ResultBean> pickCustomer(String orgPath) { + return null; + } + @Override public ResultBean subletInit(String ledgerSid) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java index ad20ad9ad8..95a101cf6e 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java @@ -4,6 +4,7 @@ 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.List; @@ -15,7 +16,6 @@ import java.util.List; @Data public class LoanSubletApplyInit implements Vo { - private String ledgerSid; private String sid; private String userSid; private String dept; @@ -23,6 +23,8 @@ public class LoanSubletApplyInit implements Vo { private String applyName; private String applyDate; private String orgPath; + private String customerSid; + private String borrowerSid; @ApiModelProperty("任务id") private String taskId; @ApiModelProperty("实例id") @@ -37,35 +39,32 @@ public class LoanSubletApplyInit implements Vo { private String customer; @ApiModelProperty("贷款人") private String borrowerName; - @ApiModelProperty("本次还款金额") + @ApiModelProperty("二次转租价格") private String amount; - @ApiModelProperty("赎回方案") + @ApiModelProperty("转租方案说明") private String plan; - @ApiModelProperty("停放地点") - private String location; - @ApiModelProperty("相关费用") - private String fees; - @ApiModelProperty("相关费用说明") - private String feesShows; - //费用 - @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; // 逾期金额换算期数 - private String busVinSid; //催收记录 - private String rksqSid; //入库申请sid + @ApiModelProperty("原车主是否同意") + private String agree; + @ApiModelProperty("新车主名称") + private String vinOwner; + @ApiModelProperty("客户类型key") + private String customerTypeKey; + @ApiModelProperty("客户类型") + private String customerType; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("证件地址") + private String cardAddress; + @ApiModelProperty("有效期") + private String endDate; + @ApiModelProperty("证件号码") + private String idNumber; + @ApiModelProperty("证件类型key") + private String certificateTypeKey; + @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)") + private String certificateType; + @ApiModelProperty("新车主客户sid") + private String newCustomerSid; private List files = new ArrayList<>(); private List vinList = new ArrayList<>(); diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyQuery.java index 71fef03166..274edcbb12 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyQuery.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyQuery.java @@ -44,4 +44,6 @@ public class LoanSubletApplyQuery implements Query { private String vehMark; @ApiModelProperty("申请部门") private String dept; + @ApiModelProperty("原车主是否同意0是1否") + private String agree; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyVo.java index 17d4a4d70c..8e1684f3e1 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyVo.java @@ -39,10 +39,12 @@ public class LoanSubletApplyVo implements Vo { private String customer; @ApiModelProperty("贷款人") private String borrowerName; - @ApiModelProperty("本次还款金额") + @ApiModelProperty("二次转租价格") private String amount; @ApiModelProperty("车架号") private String vinNo; @ApiModelProperty("车牌号") private String vehMark; + @ApiModelProperty("原车主是否同意0是1否") + private String agree; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletInitVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletInitVo.java index 05bb52a518..2ad0a134e8 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletInitVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletInitVo.java @@ -21,12 +21,13 @@ public class SubletInitVo { private String customer; @ApiModelProperty("贷款人") private String borrowerName; - @ApiModelProperty("停放地点") - private String location; private String busVinSid; private String vinSid; private String vinNo; private String vehMark; private String vehType; private String vehModel; + private String pSid; + private String customerSid; + private String borrowerSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletVinList.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletVinList.java index c26a6d0252..1b5cb55ff8 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletVinList.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletVinList.java @@ -9,6 +9,7 @@ import lombok.Data; */ @Data public class SubletVinList { + private String ledgerSid; private String vinSid; private String vinNo; private String vehMark; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/VehDisposal.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/VehDisposal.java new file mode 100644 index 0000000000..d3ab6e71cc --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/VehDisposal.java @@ -0,0 +1,15 @@ +package com.yxt.anrui.riskcenter.api.loansubletapply; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/1/18 11:32 + */ +@Data +public class VehDisposal { + private String sid; + private String disposalKey; + private String disposal; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/app/AppSubletDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/app/AppSubletDetailsVo.java index f7c29d2e3c..f5f70ae6ec 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/app/AppSubletDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/app/AppSubletDetailsVo.java @@ -1,5 +1,6 @@ package com.yxt.anrui.riskcenter.api.loansubletapply.app; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; @@ -14,20 +15,12 @@ import java.util.List; public class AppSubletDetailsVo { private String sid; private String publishInfo; - private String time; + private String time; //申请日期 private List files = new ArrayList<>(); private String taskId; private String procInsId; /** - * 已还金额 - */ - private String alRepaidMoney; - /** - * 已还金额换算期数 - */ - private String alRepaidMoneyConPeriod; - /** - * 本次还款金额 + * 本次转租金额 */ private String amount; /** @@ -38,60 +31,42 @@ public class AppSubletDetailsVo { * 资方 */ private String bankName; - /** - * 逾期金额换算期数 - */ - private String beOverdueMoneyAndPeriod; /** * 贷款人 */ private String borrName; /** - * 催收记录 + * 原车主是否同意 0是 1否 */ - private String csjlSid; + private String agree; /** * 客户名称 */ private String custName; - /** - * 相关费用 - */ - private String fees; - /** - * 费用说明 - */ - private String feesShows; /** * 贷款合同号 */ private String loanContractNo; /** - * 停放地点 - */ - private String location; - /** - * 赎回方案 + * 转租方案说明 */ private String plan; - /** - * 总期数/当前期数 - */ - private String qsCount; - /** - * 入库申请 - */ - private String rksqSid; - /** - * 未到期金额 - */ - private String unexpiredMoney; /** * 车辆列表 */ private List vinList = new ArrayList<>(); - /** - * 当前逾期金额/其中资金占用费 - */ - private String yqzjzyMoney; + @ApiModelProperty("新车主名称") + private String vinOwner; + @ApiModelProperty("客户类型") + private String customerType; + @ApiModelProperty("联系电话") + private String phoneNum; + @ApiModelProperty("证件地址") + private String cardAddress; + @ApiModelProperty("有效期") + private String endDate; + @ApiModelProperty("证件号码") + private String idNumber; + @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)") + private String certificateType; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletveh/LoanSubletVeh.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletveh/LoanSubletVeh.java index 1c9406876f..983aa4b1ee 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletveh/LoanSubletVeh.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletveh/LoanSubletVeh.java @@ -11,8 +11,8 @@ import lombok.Data; * @version 1.0 * @since 1.0 */ -@ApiModel(value = "赎回车辆列表", description = "赎回车辆列表") -@TableName("loan_redemption_veh") +@ApiModel(value = "车辆二次转租车辆列表", description = "车辆二次转租车辆列表") +@TableName("loan_sublet_veh") @Data public class LoanSubletVeh extends BaseEntity { private static final long serialVersionUID = 1L; @@ -27,8 +27,11 @@ public class LoanSubletVeh extends BaseEntity { private String busVinSid; @ApiModelProperty("车辆sid") private String vinSid; - @ApiModelProperty("0主车1挂车") + @ApiModelProperty("主车/挂车") private String vehType; @ApiModelProperty("车型") private String vehModel; + @ApiModelProperty("交回车辆台账sid") + private String ledgerSid; + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java index fd5c41209f..21141c1492 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java @@ -54,6 +54,16 @@ public interface LoanTransferPaymentApplyFeign { public ResultBean deleteBySids(@RequestBody String[] sids); + @ApiOperation("推送转付记录") + @PostMapping("/pushPaymentRecord") + @ResponseBody + public ResultBean pushPaymentRecord(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + + @ApiOperation("推送财务代付款凭证") + @PostMapping("/pushPaymentVoucher") + @ResponseBody + public ResultBean pushPaymentVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + //---------------------------流程--------------------------------------- @ApiOperation("提交") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java index ddeeca1a69..5cb14eb0c4 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java @@ -40,6 +40,16 @@ public class LoanTransferPaymentApplyFeignFallback implements LoanTransferPaymen return null; } + @Override + public ResultBean pushPaymentRecord(String sid, String paySid) { + return null; + } + + @Override + public ResultBean pushPaymentVoucher(String sid, String paySid) { + return null; + } + @Override public ResultBean submitRecordApplication(SubmitTransferDto dto) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java index aeaf75bb19..9627a003a0 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java @@ -39,4 +39,7 @@ public class LoanTransferPaymentRecord extends BaseEntity { private String accountNumber; @ApiModelProperty("资方合同号") private String bankContractNo; + @ApiModelProperty("出纳代付款列表sid") + private String paySid; + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvehclearanceveh/LoanVehClearanceVehFile.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvehclearanceveh/LoanVehClearanceVehFile.java index 714fab0701..a6b8aae983 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvehclearanceveh/LoanVehClearanceVehFile.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvehclearanceveh/LoanVehClearanceVehFile.java @@ -25,28 +25,12 @@ *********************************************************/ package com.yxt.anrui.riskcenter.api.loanvehclearanceveh; - import com.yxt.common.core.vo.Vo; -import io.swagger.annotations.ApiModel; import lombok.Data; import java.util.List; -/** - * Project: anrui-riskcenter(催收措施申请)
- * File: LoanBeCollectionVehVo.java
- * Class: com.yxt.anrui.riskcenter.api.loanbecollectionveh.LoanBeCollectionVehVo
- * Description: 逾期催收车辆 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-12-12 16:06:20
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Data -@ApiModel(value = "逾期催收车辆 视图数据详情", description = "逾期催收车辆 视图数据详情") public class LoanVehClearanceVehFile implements Vo { private String name; diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java index dae1201ae5..4ec374e5cf 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyMapper.java @@ -72,4 +72,6 @@ public interface LoanBeCollectionApplyMapper extends BaseMapper WHERE sid=#{sid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java index 4f105f8351..45d148e6b1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyRest.java @@ -89,9 +89,7 @@ public class LoanBeCollectionApplyRest implements LoanBeCollectionApplyFeign { @ApiOperation("根据sid批量删除") @DeleteMapping("/delBySids") public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - loanBeCollectionApplyService.delBySids(sids); - return rb.success(); + return loanBeCollectionApplyService.delAllBySids(sids); } @Override diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java index e82339754f..1c3fd77063 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionapply/LoanBeCollectionApplyService.java @@ -825,4 +825,18 @@ public class LoanBeCollectionApplyService extends MybatisBaseService 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + for (String sid : sids) { + loanBeCollectionVehService.delByMainSid(sid); + } + return rb.success(); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordMapper.xml index e002aee057..0bf4b705a0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordMapper.xml @@ -85,7 +85,7 @@ WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())), 0 ) - ), 1) AS beOverdueMoneyAndPeriod + ) / a1.dueMoney, 1) AS beOverdueMoneyAndPeriod FROM (SELECT lrpd.sid, diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java index 6a47391d59..89ea0dc890 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehMapper.java @@ -75,6 +75,8 @@ public interface LoanBeCollectionVehMapper extends BaseMapper + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehService.java index 5e221fa5e4..e212d6a6bf 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionveh/LoanBeCollectionVehService.java @@ -266,4 +266,8 @@ public class LoanBeCollectionVehService extends MybatisBaseService list = new ArrayList<>(); - //定义导出的excel名字 - String excelName = "逾期垫款导入模板"; - String fileNameURL = ""; try { - fileNameURL = URLEncoder.encode(excelName, "UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); + InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("static/当月资方逾期模板.xls"); + //获取要下载的模板名称 + String fileName = "当月资方逾期模板.xls"; + response.setHeader("content-type", "application/octet-stream"); + response.setContentType("application/octet-stream"); + // 下载文件能正常显示中文 + fileName = URLEncoder.encode(fileName, "UTF-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setHeader("fileName", fileName); + response.setHeader("Access-Control-Expose-Headers", "filename"); + OutputStream out = response.getOutputStream(); + byte[] b = new byte[2048]; + int len; + while ((len = resourceAsStream.read(b)) != -1) { + out.write(b, 0, len); + } + out.close(); + resourceAsStream.close(); + } catch (Exception ex) { + ex.printStackTrace(); } - ExportExcelUtils.export(fileNameURL, list, LoanBePadsincereExportVo.class, response); } @Override @@ -200,4 +211,9 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign { public ResultBean delegate(LoanBePadsincereDelegateQuery loanBePadsincereDelegateQuery) { return loanBePadsincereApplyService.delegate(loanBePadsincereDelegateQuery); } + + @Override + public ResultBean pushAdvancesVoucher(String sid, String paySid) { + return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java index 5ba11d90a3..5bbaab7960 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java @@ -31,14 +31,26 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank; +import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBankFeign; import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapply; import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapplyDto; import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapplyFeign; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; +import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; +import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; +import com.yxt.anrui.fin.api.kingdee.voucher.PaymentVoucher; +import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum; import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; @@ -57,11 +69,17 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVeh; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDto; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; @@ -95,6 +113,7 @@ import java.io.InputStream; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -142,6 +161,17 @@ public class LoanBePadsincereApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanBePadsincereApplyQuery query = pq.getParams(); @@ -436,9 +466,9 @@ public class LoanBePadsincereApplyService extends MybatisBaseService loanBePadsincereVehDetailsVos1 = mergeListByBankCon(loanBePadsincereVehDetailsVos); + for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos1) { FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto(); - finPaymentrecordDto.setApplySid(loanBePadsincereApply.getSid()); + finPaymentrecordDto.setApplySid(""); finPaymentrecordDto.setPayCompanySid(""); finPaymentrecordDto.setPayType(1); finPaymentrecordDto.setCreateOrgSid(loanBePadsincereApply.getUseOrgSid()); @@ -886,8 +952,8 @@ public class LoanBePadsincereApplyService extends MybatisBaseService mergeListByBankCon(List loanBePadsincereVehDetailsVoList) { + Map voHashMap = new HashMap<>(); + for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVoList) { + String bankCon = loanBePadsincereVehDetailsVo.getBankContractNo(); + if (voHashMap.containsKey(bankCon)) { + LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo1 = voHashMap.get(bankCon); + loanBePadsincereVehDetailsVo1.setPadMoney(String.valueOf(Double.parseDouble(loanBePadsincereVehDetailsVo1.getPadMoney()) + Double.parseDouble(loanBePadsincereVehDetailsVo.getPadMoney()))); + } else { + voHashMap.put(bankCon, loanBePadsincereVehDetailsVo); + } + } + return new ArrayList<>(voHashMap.values()); + } + public ResultBean breakProcess(LoanBePadsincereTaskQuery query) { ResultBean rb = ResultBean.fireFail(); if (StringUtils.isBlank(query.getInstanceId())) { @@ -1003,4 +1084,145 @@ public class LoanBePadsincereApplyService extends MybatisBaseService 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + for (String sid : sids) { + loanBePadsincereVehService.delByMainSid(sid); + } + return rb.success(); + } + + public ResultBean pushAdvancesVoucher(String sid, String paySid) { + ResultBean rb = ResultBean.fireFail(); + List records = loanBePadsincereVehService.selByMainSidAndPaySid(sid, paySid); + if (!records.isEmpty()) { + PaymentVoucher paymentVoucher = new PaymentVoucher(); + List voucherDetails = new ArrayList<>(); + LoanBePadsincereVeh l = records.get(0); + if (null != l) { + String accountNumber = l.getBankCollectionNum(); + paymentVoucher.setBankAccount(l.getBankCollectionNum()); + String mainSid = l.getMainSid(); + LoanBePadsincereApply loanBePadsincereApply = fetchBySid(mainSid); + FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, loanBePadsincereApply.getUseOrgSid()).getData(); + if (null != manufacturerBank) { + paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey()); + } + String useOrgSid = loanBePadsincereApply.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + paymentVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + } + PaymentVoucher.PaymentVoucherDetail voucherDetail1 = new PaymentVoucher.PaymentVoucherDetail(); + voucherDetail1.setType("贷方"); + List result = new ArrayList<>(); + records.stream().forEach(r -> { + result.add(new BigDecimal(r.getPadMoney())); + }); + BigDecimal b = result.stream() + // 使用reduce()聚合函数,实现累加器 + .reduce(BigDecimal.ZERO, BigDecimal::add); + voucherDetail1.setAmount(b); + voucherDetail1.setDataTime(new DateTime()); + voucherDetails.add(voucherDetail1); + + for (LoanBePadsincereVeh v : records) { + LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.selOneByBankNoAndBusVinSid(v.getBankContractNo(), v.getSaleVehSid()); + if (null != planDetails) { + String bankName = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails); + String deptSid = planDetails.getDeptSid(); + SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); + BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData(); + String customerNumber = ""; + if (null != salesOrder) { + if (null != busSalesOrderVehicle) { + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List bdCustomers = new ArrayList<>(); + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(salesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String vinNo = busSalesOrderVehicle.getLinkNo(); + if (vinNo.length() > 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); + } + } else { + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); + } + } + // bdCustomers.add(bdCustomer); + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + } + } + if (StringUtils.isNotBlank(v.getBankBeMoney())) { + BigDecimal beMoney = new BigDecimal(v.getBankBeMoney()); + if (beMoney.compareTo(BigDecimal.ZERO) > 0) { + PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail(); + voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode()); + voucherDetail.setType("借方"); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + if (StringUtils.isNotBlank(customerNumber)) { + voucherDetail.setCustomerCode(customerNumber); + } + voucherDetail.setAmount(beMoney); + voucherDetails.add(voucherDetail); + } + } + if (StringUtils.isNotBlank(v.getBankBeInter())) { + BigDecimal beInter = new BigDecimal(v.getBankBeInter()); + if (beInter.compareTo(BigDecimal.ZERO) > 0) { + PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail(); + voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode()); + voucherDetail.setType("借方"); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + if (StringUtils.isNotBlank(customerNumber)) { + voucherDetail.setCustomerCode(customerNumber); + } + voucherDetail.setAmount(beInter); + voucherDetails.add(voucherDetail); + } + } + } + } + paymentVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveAdvancesVoucher(paymentVoucher); + } + return rb.success(); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java index 8cb867564f..802caaa6be 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java @@ -30,10 +30,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; -import org.apache.ibatis.annotations.Delete; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVeh; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehVo; @@ -68,6 +65,11 @@ public interface LoanBePadsincereVehMapper extends BaseMapper selByMainSid(String sid); + + @Update("update loan_be_padsincere_veh set paySid = #{paySid} where mainSid = #{mainSid}") + void updatePaySid(@Param("paySid") String paySid,@Param("mainSid") String mainSid); + + List selByMainSidAndPaySid(@Param("sid") String sid,@Param("paySid") String paySid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml index 36e584cc6d..9fb268dc67 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml @@ -1,13 +1,22 @@ - - - - - + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehRest.java index aa48a86441..7813415848 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehRest.java @@ -97,4 +97,11 @@ public class LoanBePadsincereVehRest implements LoanBePadsincereVehFeign { LoanBePadsincereVehDetailsVo vo = loanBePadsincereVehService.fetchDetailsVoBySid(sid); return rb.success().setData(vo); } + + @Override + public ResultBean> selByMainSid(String applySid) { + ResultBean rb = ResultBean.fireFail(); + List loanBePadsincereVehDetailsVos = loanBePadsincereVehService.selByMainSid(applySid); + return rb.success().setData(loanBePadsincereVehDetailsVos); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java index 3839715935..4f7f5cf41c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java @@ -102,4 +102,12 @@ public class LoanBePadsincereVehService extends MybatisBaseService selByMainSid(String sid) { return baseMapper.selByMainSid(sid); } + + public void updatePaySid(String paySid, String mainSid) { + baseMapper.updatePaySid(paySid,mainSid); + } + + public List selByMainSidAndPaySid(String sid, String paySid) { + return baseMapper.selByMainSidAndPaySid(sid,paySid); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java index 4b84fc92a9..b1ed7fa9f0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java @@ -33,7 +33,7 @@ public class ScheduledLoanFundDayService { private FinUncollectedReceivablesDetailedJRFeign finUncollectedReceivablesDetailedJRFeign; - // @Scheduled(cron = "0 0 0 * * ?") + @Scheduled(cron = "0 0 0 * * ?") public void loanFundDayScheduled() { /** * 每天晚上12点遍历还款计划表中的公司垫款余额,按照以下规则计算: diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java index a3b529f2f1..33b24ba55b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java @@ -29,6 +29,15 @@ 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.base.api.basemodelconfig.BaseModelConfigFeign; +import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfigSelectVo; +import com.yxt.anrui.base.api.basetrailer.BaseTrailer; +import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; +import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModel; +import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelDetailsVo; +import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelFeign; +import com.yxt.anrui.base.api.basevehicle.BaseVehicle; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto; import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum; import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign; @@ -40,13 +49,19 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderTopInfoVo; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontract; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractDto; import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign; +import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel; +import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModelFeign; +import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; +import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPriceFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; -import com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrderFeign; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; +import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationDetailsVo; +import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationFeign; import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo; import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign; import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoice; @@ -63,8 +78,6 @@ import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatefile.LoanAttachTypeE import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatefile.LoanHomevisitInvestigateFileDetailsVo; import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigateotherpeo.LoanHomeVisitInvestigateInitOtherPeoVo; import com.yxt.anrui.riskcenter.api.loanhomevisitprep.*; -import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyVo; -import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.biz.loanfinbank.LoanFinBankService; import com.yxt.anrui.riskcenter.biz.loanfinpolicy.LoanFinPolicyService; @@ -74,6 +87,7 @@ import com.yxt.anrui.riskcenter.biz.loanhomevisitinvestigatefile.LoanHomevisitIn import com.yxt.anrui.riskcenter.biz.loanhomevisitinvestigateotherpeo.LoanHomevisitInvestigateOtherpeoService; import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; import com.yxt.common.base.config.component.DocPdfComponent; +import com.yxt.common.base.utils.TransformMoney; import com.yxt.common.base.utils.WordConvertUtils; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; @@ -88,9 +102,9 @@ import org.springframework.stereotype.Service; import java.io.File; import java.io.InputStream; import java.math.BigDecimal; -import java.text.MessageFormat; import java.util.*; -import java.util.concurrent.Future; + +import static cn.hutool.json.XMLTokener.entity; /** * Project: anrui-riskcenter(家访准备)
@@ -113,6 +127,14 @@ public class LoanHomevisitPrepService extends MybatisBaseService loanHomeVisitInvestigateInitOtherPeoVos = loanHomevisitInvestigateOtherpeoService.selByMainSid(loanHomevisitInvestigateCustomerDetailsVo.getMainSid()); - if (loanHomeVisitInvestigateInitOtherPeoVos != null && loanHomeVisitInvestigateInitOtherPeoVos.size() > 0){ + if (loanHomeVisitInvestigateInitOtherPeoVos != null && loanHomeVisitInvestigateInitOtherPeoVos.size() > 0) { for (LoanHomeVisitInvestigateInitOtherPeoVo loanHomeVisitInvestigateInitOtherPeoVo : loanHomeVisitInvestigateInitOtherPeoVos) { //修改其他人员关联sid - loanHomevisitInvestigateOtherpeoService.updateMainSid(loanHomeVisitInvestigateInitOtherPeoVo.getSid(),loanHomevisitInvestigate.getSid()); + loanHomevisitInvestigateOtherpeoService.updateMainSid(loanHomeVisitInvestigateInitOtherPeoVo.getSid(), loanHomevisitInvestigate.getSid()); } } //修改客户信息关联sid - loanHomevisitInvestigateCustomerService.updateMainSid(loanHomevisitInvestigateCustomerDetailsVo.getSid(),loanHomevisitInvestigate.getSid()); + loanHomevisitInvestigateCustomerService.updateMainSid(loanHomevisitInvestigateCustomerDetailsVo.getSid(), loanHomevisitInvestigate.getSid()); //查询是否存在银行卡附件 List loanHomevisitInvestigateFileDetailsVos = loanHomevisitInvestigateFileService.selByMainSidAndTypeKey(loanHomevisitInvestigateCustomerDetailsVo.getMainSid(), LoanAttachTypeEnum.YHK.getAttachType()); - if (loanHomevisitInvestigateFileDetailsVos != null && loanHomevisitInvestigateFileDetailsVos.size() > 0){ + if (loanHomevisitInvestigateFileDetailsVos != null && loanHomevisitInvestigateFileDetailsVos.size() > 0) { for (LoanHomevisitInvestigateFileDetailsVo loanHomevisitInvestigateFileDetailsVo : loanHomevisitInvestigateFileDetailsVos) { //修改附件银行卡关联sid - loanHomevisitInvestigateFileService.updateMainSid(loanHomevisitInvestigateFileDetailsVo.getSid(),loanHomevisitInvestigate.getSid()); + loanHomevisitInvestigateFileService.updateMainSid(loanHomevisitInvestigateFileDetailsVo.getSid(), loanHomevisitInvestigate.getSid()); } } } @@ -321,15 +349,15 @@ public class LoanHomevisitPrepService extends MybatisBaseService otherPersonnel = loanHomeVisitInvestigateInitCustomerVo.getOtherPersonnel(); - if (otherPersonnel != null && otherPersonnel.size() > 0){ + if (otherPersonnel != null && otherPersonnel.size() > 0) { ArrayList homeKcOtherPeos = new ArrayList<>(); for (LoanHomeVisitInvestigateInitOtherPeoVo loanHomeVisitInvestigateInitOtherPeoVo : otherPersonnel) { HomeKcOtherPeo homeKcOtherPeo = new HomeKcOtherPeo(); - BeanUtil.copyProperties(loanHomeVisitInvestigateInitOtherPeoVo,homeKcOtherPeo); + BeanUtil.copyProperties(loanHomeVisitInvestigateInitOtherPeoVo, homeKcOtherPeo); homeKcOtherPeos.add(homeKcOtherPeo); } homeKcCust.setOtherPersonnel(homeKcOtherPeos); @@ -360,19 +388,8 @@ public class LoanHomevisitPrepService extends MybatisBaseService filesList = new ArrayList<>(); - //贷款人生成车辆买卖合同 - /*List xcmmContractUrls = commonContractFeign.xcmmContract(printConfirmDto).getData(); - for (File xcmmContractUrl : xcmmContractUrls) { - filesList.add(xcmmContractUrl); - }*/ if (conSetUpKey.equals("001")) {//一车一合同 for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) { - List salesOrderVehicles = new ArrayList<>(); - SalesOrderVehicle salesOrderVehicle = new SalesOrderVehicle(); - BeanUtil.copyProperties(busSalesOrderVehicle,salesOrderVehicle); - salesOrderVehicles.add(salesOrderVehicle); - printConfirmDto.setSalesOrderVehicles(salesOrderVehicles); //获取相同合同号的最大流水号 String num = busSalesOrderLoancontractFeign.checkContractNo(busSalesOrder.getContractNo()).getData(); if (StringUtils.isBlank(num)) { @@ -392,45 +409,8 @@ public class LoanHomevisitPrepService extends MybatisBaseService salesOrderVehicles = new ArrayList<>(); - for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) { - SalesOrderVehicle salesOrderVehicle = new SalesOrderVehicle(); - BeanUtil.copyProperties(busSalesOrderVehicle,salesOrderVehicle); - salesOrderVehicles.add(salesOrderVehicle); - } - printConfirmDto.setSalesOrderVehicles(salesOrderVehicles); //获取相同合同号的最大流水号 String num = busSalesOrderLoancontractFeign.checkContractNo(busSalesOrder.getContractNo()).getData(); if (StringUtils.isBlank(num)) { @@ -452,36 +432,109 @@ public class LoanHomevisitPrepService extends MybatisBaseService salesOrderVehicles = new ArrayList<>(); + for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) { + SalesOrderVehicle salesOrderVehicle = new SalesOrderVehicle(); + BusSalesOrderVehicle orderVehicle = busSalesOrderVehicleFeign.fetchBySalesOrderVehiclerSid(busSalesOrderVehicle.getSid()).getData(); + BeanUtil.copyProperties(orderVehicle, salesOrderVehicle); + salesOrderVehicles.add(salesOrderVehicle); + } + printConfirmDto.setSalesOrderVehicles(salesOrderVehicles); + List filesList = new ArrayList<>(); + //贷款车辆买卖合同 + List dkclmmhts = dkclmmht(printConfirmDto, conSetUpKey); + //生成车辆融资协议 + List clrzxyUrls = generateCLRZXY(printConfirmDto, conSetUpKey); + //生成还款协议 + List hkxyUrls = hkxy(printConfirmDto, conSetUpKey); + //代管车辆委托书 + List dgclwtsUrls = dgclwts(printConfirmDto, conSetUpKey); + //判断是否为高低开 + BusSalesOrderPrice data = busSalesOrderFeign.selectByContractNoOne(printConfirmDto.getContractNo()).getData(); + FinBillApplicationDetailsVo finBillApplicationDetailsVo = finBillApplicationFeign.selectByCon(printConfirmDto.getContractNo()).getData(); + //判断是否为高低开,若是则生成开票申请书 + List kpsqsUrls = new ArrayList<>(); + if (!data.getSingleFinalPrice().equals(finBillApplicationDetailsVo.getOneBillMoney())){ + //开票申请书 + kpsqsUrls = kpsqs(printConfirmDto, conSetUpKey); + } + HomeKcCust homeKcCust = printConfirmDto.getHomeKcCust(); + List cldjhtUrls = new ArrayList<>(); + if ("2".equals(homeKcCust.getVehRegis())){ //生成车辆登记合同 - String cldjhtUrl = commonContractFeign.cldjContract(printConfirmDto).getData(); - //生成车辆及上装采购合同 - String cljszcght = cljszcght(printConfirmDto); + cldjhtUrls = cldjContract(printConfirmDto, conSetUpKey); + } + //接收车辆确认书 + List jsclqrsUrls = jsclqrs(printConfirmDto, conSetUpKey); + //接收车辆委托书 + List jsclwtsUrls = jsclwts(printConfirmDto, conSetUpKey); + //生成车辆及上装采购合同 + List cljszcghtUrls = cljszcght(printConfirmDto, conSetUpKey); + List gsgddwdbjyUrls = new ArrayList<>(); + if ("0".equals(homeKcCust.getIsSecurity())){ //生成公司股东会对外担保决议 - String gsgddwdbjy = gsgddwdbjy(); - if (StringUtils.isNotBlank(clrzxyUrl)) { + gsgddwdbjyUrls = gsgddwdbjy(printConfirmDto, conSetUpKey); + } + if (dkclmmhts != null && dkclmmhts.size() > 0) { + for (String dkclmmht : dkclmmhts) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + dkclmmht); + filesList.add(file); + } + } + if (clrzxyUrls != null && clrzxyUrls.size() > 0) { + for (String clrzxyUrl : clrzxyUrls) { File file = new File(docPdfComponent.getUploadTemplateUrl() + clrzxyUrl); filesList.add(file); } - if (StringUtils.isNotBlank(hkxy)) { - File file = new File(docPdfComponent.getUploadTemplateUrl() + hkxy); + } + if (hkxyUrls != null && hkxyUrls.size() > 0) { + for (String hkxyUrl : hkxyUrls) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + hkxyUrl); + filesList.add(file); + } + } + if (dgclwtsUrls != null && dgclwtsUrls.size() > 0) { + for (String dgclwtsUrl : dgclwtsUrls) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + dgclwtsUrl); + filesList.add(file); + } + } + if (kpsqsUrls != null && kpsqsUrls.size() > 0) { + for (String kpsqsUrl : kpsqsUrls) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + kpsqsUrl); filesList.add(file); } - if (StringUtils.isNotBlank(cldjhtUrl)) { + } + if (cldjhtUrls != null && cldjhtUrls.size() > 0) { + for (String cldjhtUrl : cldjhtUrls) { File file = new File(docPdfComponent.getUploadTemplateUrl() + cldjhtUrl); filesList.add(file); } - if (StringUtils.isNotBlank(cljszcght)) { - File file = new File(docPdfComponent.getUploadTemplateUrl() + cljszcght); + } + if (jsclqrsUrls != null && jsclqrsUrls.size() > 0) { + for (String jsclqrsUrl : jsclqrsUrls) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + jsclqrsUrl); + filesList.add(file); + } + } + if (jsclwtsUrls != null && jsclwtsUrls.size() > 0) { + for (String jsclwtsUrl : jsclwtsUrls) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + jsclwtsUrl); + filesList.add(file); + } + } + if (cljszcghtUrls != null && cljszcghtUrls.size() > 0) { + for (String cljszcghtUrl : cljszcghtUrls) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + cljszcghtUrl); filesList.add(file); } - if (StringUtils.isNotBlank(gsgddwdbjy)) { - File file = new File(docPdfComponent.getUploadTemplateUrl() + gsgddwdbjy); + } + if (gsgddwdbjyUrls != null && gsgddwdbjyUrls.size() > 0) { + for (String gsgddwdbjyUrl : gsgddwdbjyUrls) { + File file = new File(docPdfComponent.getUploadTemplateUrl() + gsgddwdbjyUrl); filesList.add(file); - }*/ + } } //合并pdf文件 if (filesList.size() > 0) { @@ -496,34 +549,632 @@ public class LoanHomevisitPrepService extends MybatisBaseService jsclwts(PrintConfirmDto printConfirmDto, String conSetUpKey) { + Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //委托人 + map.put("wtr", salesOrderVehicles.get(0).getBorrowName()); + //获取贷款人信息 + BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getBorrowerSid()).getData(); + //获取贷款人客户信息 + CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData(); + //证件号码 + map.put("idNo1", crmCustomerTemp.getIDNumber()); + //受托人 + map.put("swtr", ""); + //身份证号 + map.put("idNo2", ""); + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //分公司(甲方) + map.put("jf", finCompanyInvoicingDetailsVo.getName()); + List urls = new ArrayList<>(); + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "jsclwts" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "jsclwts" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("con").toString() + "接收车辆委托书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "jsclwts" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "jsclwts" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("con").toString() + "接收车辆委托书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; + } + + private List jsclqrs(PrintConfirmDto printConfirmDto, String conSetUpKey) { Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //分公司(甲方) + map.put("jf", finCompanyInvoicingDetailsVo.getName()); + //经办人 + map.put("jbr", ""); + //购买人 + map.put("gmr", salesOrderVehicles.get(0).getBorrowName()); + //获取贷款人信息 + BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getBorrowerSid()).getData(); + //获取贷款人客户信息 + CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData(); + //证件号码 + map.put("idNo1", crmCustomerTemp.getIDNumber()); + //接收人 + map.put("jsr", ""); + //身份证号 + map.put("idNo2", ""); + //接收时间 + map.put("jssj", DateUtil.formatDate(new Date())); + //车辆信息 + BaseVehicle baseVehicle1 = baseVehicleFeign.fetchBySid(salesOrderVehicles.get(0).getLinkSid()).getData(); + //接收地点 + map.put("jsdd", baseVehicle1.getLocationName()); + //品牌 + map.put("brandName", baseVehicle1.getCarBrandName()); + //名称 + map.put("modelName", baseVehicle1.getModelName()); + //车辆型号 + map.put("xh", baseVehicle1.getVehMark()); + //获取配置信息 + BaseModelConfigSelectVo modelConfigSelectVo = baseModelConfigFeign.details(baseVehicle1.getModelConfigSid()).getData(); + //颜色 + map.put("ys", modelConfigSelectVo.getCarColor()); + //联系电话 + map.put("phone", ""); + //年 + map.put("y", DateUtil.year(new Date())); + //月 + map.put("m", DateUtil.month(new Date()) + 1); + //日 + map.put("d", new Date().getDate()); + List urls = new ArrayList<>(); + Integer i = 1; + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + List downCarRegisContracts = new ArrayList<>(); + DownCarRegisContract downCarRegisContract = new DownCarRegisContract(); + downCarRegisContract.setId(i.toString()); + i = i + 1; + BaseVehicle baseVehicle = baseVehicleFeign.fetchBySid(salesOrderVehicle.getLinkSid()).getData(); + downCarRegisContract.setVinNo(baseVehicle.getVinNo()); + downCarRegisContract.setFdjNo(baseVehicle.getEngineNo()); + downCarRegisContracts.add(downCarRegisContract); + //车辆信息 + map.put("list", downCarRegisContracts); + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //合同编号 + map.put("htbh", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "jsclqrs" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "jsclqrs" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("htbh").toString() + "接收车辆确认书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + List downCarRegisContracts = new ArrayList<>(); + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + DownCarRegisContract downCarRegisContract = new DownCarRegisContract(); + downCarRegisContract.setId(i.toString()); + i= i + 1; + BaseVehicle baseVehicle = baseVehicleFeign.fetchBySid(salesOrderVehicle.getLinkSid()).getData(); + downCarRegisContract.setVinNo(baseVehicle.getVinNo()); + downCarRegisContract.setFdjNo(baseVehicle.getEngineNo()); + downCarRegisContracts.add(downCarRegisContract); + } + //车辆信息 + map.put("list", downCarRegisContracts); + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //合同编号 + map.put("htbh", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "jsclqrs" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "jsclqrs" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("htbh").toString() + "接收车辆确认书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; + } + + private List cldjContract(PrintConfirmDto printConfirmDto, String conSetUpKey) { + Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //获取合同补充信息 + HomeKcCust homeKcCust = printConfirmDto.getHomeKcCust(); + //分公司(甲方) + map.put("jf", homeKcCust.getAccCompName()); + //乙方 + map.put("partyB", salesOrderVehicles.get(0).getBorrowName()); + //签订日期 + map.put("qdDate", DateUtil.formatDate(new Date())); + //车辆出售方 + map.put("clcsf", finCompanyInvoicingDetailsVo.getName()); + List urls = new ArrayList<>(); + Integer i = 1; + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + List downCarRegisContracts = new ArrayList<>(); + DownCarRegisContract downCarRegisContract = new DownCarRegisContract(); + downCarRegisContract.setId(i.toString()); + i = i + 1; + BaseVehicle baseVehicle = baseVehicleFeign.fetchBySid(salesOrderVehicle.getLinkSid()).getData(); + downCarRegisContract.setBrandName(baseVehicle.getCarBrandName()); + downCarRegisContract.setVinNo(baseVehicle.getVinNo()); + downCarRegisContract.setFdjNo(baseVehicle.getEngineNo()); + downCarRegisContracts.add(downCarRegisContract); + //车辆信息 + map.put("list", downCarRegisContracts); + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "cldjht" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "cldjht" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "D" + map.get("con").toString() + "车辆登记合同_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + List downCarRegisContracts = new ArrayList<>(); + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + DownCarRegisContract downCarRegisContract = new DownCarRegisContract(); + downCarRegisContract.setId(i.toString()); + i = i + 1; + BaseVehicle baseVehicle = baseVehicleFeign.fetchBySid(salesOrderVehicle.getLinkSid()).getData(); + downCarRegisContract.setBrandName(baseVehicle.getCarBrandName()); + downCarRegisContract.setVinNo(baseVehicle.getVinNo()); + downCarRegisContract.setFdjNo(baseVehicle.getEngineNo()); + downCarRegisContracts.add(downCarRegisContract); + } + //车辆信息 + map.put("list", downCarRegisContracts); + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "cldjht" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "cldjht" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "D" + map.get("con").toString() + "车辆登记合同_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; + } + + private List kpsqs(PrintConfirmDto printConfirmDto, String conSetUpKey) { + Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //分公司(甲方) + map.put("jf", finCompanyInvoicingDetailsVo.getName()); + //车辆落户单位 + map.put("lhdw", DateUtil.formatDate(new Date())); + //申请人 + map.put("sqr", ""); + //年 + map.put("y", DateUtil.year(new Date())); + //月 + map.put("m", DateUtil.month(new Date()) + 1); + //日 + map.put("d", new Date().getDate()); + List urls = new ArrayList<>(); + Integer i = 1; + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + List downInvoAppForms = new ArrayList<>(); + DownInvoAppForm downInvoAppForm = new DownInvoAppForm(); + downInvoAppForm.setId(i.toString()); + i = i + 1; + BusSalesOrderModel busSalesOrderModel = busSalesOrderModelFeign.fetchByOrderSid(salesOrderVehicle.getSalesOrderSid()).getData(); + downInvoAppForm.setModelName(busSalesOrderModel.getModelName()); + downInvoAppForm.setNum("1"); + String dj = busSalesOrderPriceFeign.getPriceByOrderSid(salesOrderVehicle.getSalesOrderSid()).getData(); + downInvoAppForm.setDj(dj); + FinVehicleInvoice finVehicleInvoice = finVehicleInvoiceFeign.selectByVinAndContractNo(salesOrderVehicle.getLinkSid(), printConfirmDto.getContractNo()).getData(); + downInvoAppForm.setKpje(finVehicleInvoice.getInvoiceAmount().toString()); + downInvoAppForm.setFplx("机动车统一销售发票"); + downInvoAppForms.add(downInvoAppForm); + List baseTrailers = baseTrailerFeign.getByVehSid(salesOrderVehicle.getLinkSid()).getData(); + if (baseTrailers != null && baseTrailers.size() > 0){ + for (BaseTrailer baseTrailer : baseTrailers) { + DownInvoAppForm downInvoAppForm1 = new DownInvoAppForm(); + downInvoAppForm1.setId(i.toString()); + i = i + 1; + BaseTrailerModelDetailsVo baseTrailerModelDetailsVo = baseTrailerModelFeign.fetchDetailsBySid(baseTrailer.getTrailerModelSid()).getData(); + downInvoAppForm1.setModelName("外廓-长" + baseTrailerModelDetailsVo.getAppearanceSizeLong() + "(米)" + baseTrailerModelDetailsVo.getTrailerTypeValue()); + downInvoAppForm1.setNum("1"); + downInvoAppForm1.setDj(baseTrailer.getDealPrice().toString()); + downInvoAppForm1.setKpje(baseTrailer.getOneBillMoney().toString()); + downInvoAppForm1.setFplx("机动车统一销售发票"); + downInvoAppForms.add(downInvoAppForm1); + } + } + map.put("list",downInvoAppForms); + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "kpsqs" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "kpsqs" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("con").toString() + "开票申请书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + List downInvoAppForms = new ArrayList<>(); + DownInvoAppForm downInvoAppForm = new DownInvoAppForm(); + downInvoAppForm.setId(i.toString()); + i = i + 1; + BusSalesOrderModel busSalesOrderModel = busSalesOrderModelFeign.fetchByOrderSid(salesOrderVehicles.get(0).getSalesOrderSid()).getData(); + downInvoAppForm.setModelName(busSalesOrderModel.getModelName()); + downInvoAppForm.setNum(String.valueOf(salesOrderVehicles.size())); + String dj = busSalesOrderPriceFeign.getPriceByOrderSid(salesOrderVehicles.get(0).getSalesOrderSid()).getData(); + downInvoAppForm.setDj(dj); + FinVehicleInvoice finVehicleInvoice = finVehicleInvoiceFeign.selectByVinAndContractNo(salesOrderVehicles.get(0).getLinkSid(), printConfirmDto.getContractNo()).getData(); + downInvoAppForm.setKpje(finVehicleInvoice.getInvoiceAmount().toString()); + downInvoAppForm.setFplx("机动车统一销售发票"); + downInvoAppForms.add(downInvoAppForm); + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + List baseTrailers = baseTrailerFeign.getByVehSid(salesOrderVehicle.getLinkSid()).getData(); + if (baseTrailers != null && baseTrailers.size() > 0){ + for (BaseTrailer baseTrailer : baseTrailers) { + DownInvoAppForm downInvoAppForm1 = new DownInvoAppForm(); + downInvoAppForm1.setId(i.toString()); + i = i + 1; + BaseTrailerModelDetailsVo baseTrailerModelDetailsVo = baseTrailerModelFeign.fetchDetailsBySid(baseTrailer.getTrailerModelSid()).getData(); + downInvoAppForm1.setModelName("外廓-长" + baseTrailerModelDetailsVo.getAppearanceSizeLong() + "(米)" + baseTrailerModelDetailsVo.getTrailerTypeValue()); + downInvoAppForm1.setNum("1"); + downInvoAppForm1.setDj(baseTrailer.getDealPrice().toString()); + downInvoAppForm1.setKpje(baseTrailer.getOneBillMoney().toString()); + downInvoAppForm1.setFplx("机动车统一销售发票"); + downInvoAppForms.add(downInvoAppForm1); + } + } + } + map.put("list",downInvoAppForms); + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "kpsqs" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "kpsqs" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("con").toString() + "开票申请书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; + } + + private List dgclwts(PrintConfirmDto printConfirmDto, String conSetUpKey) { + Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //签署日期 + map.put("qdDate", DateUtil.formatDate(new Date())); + //委托人 + map.put("wtr", salesOrderVehicles.get(0).getBorrowName()); + //获取贷款人信息 + BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getBorrowerSid()).getData(); + //获取贷款人客户信息 + CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData(); + //证件号码 + map.put("idNo", crmCustomerTemp.getIDNumber()); + //受委托人 + map.put("swtr", finCompanyInvoicingDetailsVo.getName()); + //年 + map.put("year", DateUtil.year(new Date())); + //月 + map.put("month", DateUtil.month(new Date()) + 1); + //日 + map.put("day", new Date().getDate()); + List urls = new ArrayList<>(); + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //还款协议编号 + map.put("num", "H" + busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "dgclwts" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "dgclwts" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("num").toString() + "代管车辆委托书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //还款协议编号 + map.put("num", "H" + busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "dgclwts" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "dgclwts" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("num").toString() + "代管车辆委托书_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; + } + + private List dkclmmht(PrintConfirmDto printConfirmDto, String conSetUpKey) { + Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); //甲方 - map.put("partyA", printConfirmDto.getCreateOrgName()); + map.put("jf", finCompanyInvoicingDetailsVo.getName()); //乙方 - map.put("partyB", printConfirmDto.getCustomerName()); + map.put("yf", salesOrderVehicles.get(0).getBorrowName()); + //获取贷款人信息 + BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getBorrowerSid()).getData(); + //获取贷款人客户信息 + CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData(); //乙方身份证号 - CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(printConfirmDto.getCustomerSid()).getData(); - map.put("idNo", crmCustomerTemp.getIDNumber()); - //签订时间 - map.put("date", ""); + map.put("yfID", crmCustomerTemp.getIDNumber()); + //签订日期 + map.put("qdDate", DateUtil.formatDate(new Date())); //签订地点 - List finVehicleInvoices = finVehicleInvoiceFeign.selectByContractNo(printConfirmDto.getContractNo()).getData(); - if (finVehicleInvoices.size() > 0) { - map.put("address", finVehicleInvoices.get(0).getAddress()); - } else { - map.put("address", ""); + map.put("qdAddress", finCompanyInvoicingDetailsVo.getAddress()); + //获取销售订单车型信息 + BusSalesOrderModel busSalesOrderModel = busSalesOrderModelFeign.fetchByOrderSid(busSalesOrder.getSid()).getData(); + //品牌名称 + map.put("modelName1", busSalesOrderModel.getModelName()); + //单价 + String singleFinalPrice = busSalesOrderPriceFeign.getPriceByOrderSid(busSalesOrder.getSid()).getData(); + map.put("money1", singleFinalPrice); + List urls = new ArrayList<>(); + if (conSetUpKey.equals("001")) {//一车一合同 + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //消贷合同编号 + map.put("loanContractNo", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //数量 + map.put("num1", 1); + //总价款 + double money = Double.parseDouble(singleFinalPrice); + map.put("moneyTotal", money); + //总价款大写 + String dx = TransformMoney.transform(String.valueOf(money)); + map.put("moneyTotalDx", dx); + //3日内向甲方支付 + SolutionsDetailsVo solutionsDetailsVo = loanSolutionsService.selectDetails(busSalesOrder.getSid()).getData(); + String replace = solutionsDetailsVo.getDownPayRatio().replace("%", ""); + double downPayRatio = Double.parseDouble(replace) / 100; + double zf = money * downPayRatio; + map.put("zf", zf); + //剩余xxx元 + double sy = money - zf; + map.put("sy", sy); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "clmmht" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "clmmht" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("loanContractNo").toString() + "车辆买卖合同_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if (conSetUpKey.equals("002")) {//一人一合同 + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //消贷合同编号 + map.put("loanContractNo", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //数量 + map.put("num1", salesOrderVehicles.size()); + //总价款 + double num = salesOrderVehicles.size(); + double money = Double.parseDouble(singleFinalPrice); + double moneyTotal = num * money; + map.put("moneyTotal", moneyTotal); + //总价款大写 + String dx = TransformMoney.transform(String.valueOf(moneyTotal)); + map.put("moneyTotalDx", dx); + //3日内向甲方支付 + SolutionsDetailsVo solutionsDetailsVo = loanSolutionsService.selectDetails(busSalesOrder.getSid()).getData(); + String replace = solutionsDetailsVo.getDownPayRatio().replace("%", ""); + double downPayRatio = Double.parseDouble(replace) / 100; + double zf = moneyTotal * downPayRatio; + map.put("zf", zf); + //剩余xxx元 + double sy = moneyTotal - zf; + map.put("sy", sy); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "clmmht" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "clmmht" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = map.get("loanContractNo").toString() + "车辆买卖合同_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); } + return urls; + } + + public List generateCLRZXY(PrintConfirmDto printConfirmDto, String conSetUpKey) { + Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //甲方 + map.put("jf", finCompanyInvoicingDetailsVo.getName()); + //乙方 + map.put("yf", salesOrderVehicles.get(0).getBorrowName()); + //获取贷款人信息 + BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getBorrowerSid()).getData(); + //获取贷款人客户信息 + CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData(); + //乙方身份证号 + map.put("yfID", crmCustomerTemp.getIDNumber()); + //签订日期 + map.put("qdDate", DateUtil.formatDate(new Date())); + //签订地点 + map.put("qdAddress", finCompanyInvoicingDetailsVo.getAddress()); //资金提供方 SolutionsDetailsVo solutionsDetailsVo = loanSolutionsService.selectDetails(printConfirmDto.getBusSid()).getData(); if (StringUtils.isBlank(solutionsDetailsVo.getPolicySid())) { @@ -533,8 +1184,6 @@ public class LoanHomevisitPrepService extends MybatisBaseService urls = new ArrayList<>(); + if (conSetUpKey.equals("001")) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //消贷合同编号 + map.put("loanContractNo", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "clrzxy" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "clrzxy" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "R" + map.get("loanContractNo").toString() + "车辆融资协议_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if (conSetUpKey.equals("002")) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //消贷合同编号 + map.put("loanContractNo", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "clrzxy" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "clrzxy" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "R" + map.get("loanContractNo").toString() + "车辆融资协议_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; } - public String hkxy(PrintConfirmDto printConfirmDto) { + public List hkxy(PrintConfirmDto printConfirmDto, String conSetUpKey) { Map map = new HashMap<>(); - //签订时间 - map.put("date", ""); - List finVehicleInvoices = finVehicleInvoiceFeign.selectByContractNo(printConfirmDto.getContractNo()).getData(); - if (finVehicleInvoices.size() > 0) { - //签订地 - map.put("address", finVehicleInvoices.get(0).getAddress()); - //甲方统一社会信用代码 - map.put("registNum", finVehicleInvoices.get(0).getTaxpayerNo()); - //甲方地址 - map.put("parAddress", finVehicleInvoices.get(0).getAddress()); - } else { - //签订地 - map.put("address", ""); - //甲方统一社会信用代码 - map.put("registNum", ""); - //甲方地址 - map.put("parAddress", ""); - } + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //签订日期 + map.put("date", DateUtil.formatDate(new Date())); + //签订地点 + map.put("address", finCompanyInvoicingDetailsVo.getAddress()); //甲方 - map.put("partyA", printConfirmDto.getCreateOrgName()); + map.put("partyA", finCompanyInvoicingDetailsVo.getName()); + //甲方统一社会信用代码 + map.put("registNum", finCompanyInvoicingDetailsVo.getTaxpayerNo()); + //甲方地址 + map.put("parAddress", finCompanyInvoicingDetailsVo.getAddress()); //乙方 - map.put("partyB", printConfirmDto.getCustomerName()); + map.put("partyB", salesOrderVehicles.get(0).getBorrowName()); + //获取贷款人信息 + BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getBorrowerSid()).getData(); + //获取贷款人客户信息 + CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData(); //乙方身份证号 - CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(printConfirmDto.getCustomerSid()).getData(); map.put("idNo", crmCustomerTemp.getIDNumber()); //乙方电话 - map.put("parBphone", crmCustomerTemp.getMobile()); - //乙方户籍地址 - map.put("parBaddress", crmCustomerTemp.getAddress()); - //乙方实际居住地址 - map.put("parBxaddress", crmCustomerTemp.getAddress()); + map.put("yfPh", busSalesOrderBorrowerDetailsVo.getMobile()); HomeKcCust homeKcCust = printConfirmDto.getHomeKcCust(); - if (homeKcCust != null){ + if (homeKcCust != null) { + //乙方户籍地址 + map.put("parBaddress", homeKcCust.getKoseki()); + //乙方实际居住地址 + map.put("parBxaddress", homeKcCust.getAddress()); //丙方 map.put("partyC", homeKcCust.getSpouseName()); //丙方身份证号 @@ -659,17 +1335,17 @@ public class LoanHomevisitPrepService extends MybatisBaseService otherPersonnel = homeKcCust.getOtherPersonnel(); - if (otherPersonnel != null && otherPersonnel.size() > 0){ + if (otherPersonnel != null && otherPersonnel.size() > 0) { for (HomeKcOtherPeo homeKcOtherPeo : otherPersonnel) { - if ("1".equals(homeKcOtherPeo.getPersonnelKey())){ + if ("1".equals(homeKcOtherPeo.getPersonnelKey())) { //戊方 map.put("partyE", homeKcOtherPeo.getName()); //戊方身份证号 @@ -685,7 +1361,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService urls = new ArrayList<>(); + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //车辆买卖合同编号 + map.put("contractNo", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //融资协议合同编号 + map.put("rzConNo", "R" + busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "hkxy" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "hkxy" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "H" + map.get("con").toString() + "还款协议_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //车辆买卖合同编号 + map.put("contractNo", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //融资协议合同编号 + map.put("rzConNo", "R" + busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "hkxy" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "hkxy" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "H" + map.get("con").toString() + "还款协议_" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; } - public String cljszcght(PrintConfirmDto printConfirmDto){ + public List cljszcght(PrintConfirmDto printConfirmDto, String conSetUpKey) { Map map = new HashMap<>(); + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); //甲方 - map.put("partyA", printConfirmDto.getCreateOrgName()); + map.put("jf", finCompanyInvoicingDetailsVo.getName()); //乙方 - map.put("partyB", printConfirmDto.getCustomerName()); + map.put("yf", salesOrderVehicles.get(0).getBorrowName()); + //获取贷款人信息 + BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getBorrowerSid()).getData(); + //获取贷款人客户信息 + CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData(); //乙方身份证号 - CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(printConfirmDto.getCustomerSid()).getData(); map.put("idNo", crmCustomerTemp.getIDNumber()); //签订时间 - map.put("date", ""); + map.put("qdDate", DateUtil.formatDate(new Date())); //签订地点 - List finVehicleInvoices = finVehicleInvoiceFeign.selectByContractNo(printConfirmDto.getContractNo()).getData(); - if (finVehicleInvoices.size() > 0) { - map.put("address", finVehicleInvoices.get(0).getAddress()); - } else { - map.put("address", ""); - } - //第一种 - map.put("dyz","☑"); - //合同编号 - map.put("contractNo",printConfirmDto.getContractNo()); - //第二种 - map.put("dez","□"); + map.put("qddd", finCompanyInvoicingDetailsVo.getAddress()); + //合同补充信息 + HomeKcCust homeKcCust = printConfirmDto.getHomeKcCust(); + if ("0".equals(homeKcCust.getIsCompBuy())){ + //第一种 + map.put("dyz", "☑"); + //第二种 + map.put("dez", "□"); + }else if ("1".equals(homeKcCust.getIsCompBuy())){ + //第一种 + map.put("dyz", "□"); + //第二种 + map.put("dez", "☑"); + } //查询销售订单的信息 ResultBean resultBean = busSalesOrderFeign.getSaleOrderDetails(printConfirmDto.getBusSid()); AppOrderDetailsVo appOrderDetailsVo = resultBean.getData(); AppOrderTopInfoVo topInfo = appOrderDetailsVo.getTopInfo(); //上装成交价 - if (topInfo != null){ - map.put("price",topInfo.getTopPrice()); - }else { - map.put("price",""); - } - InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "cljszcght" + ".ftl"); - //生成word文件名 - String targetPath = docPdfComponent.getUploadTemplateUrl(); - String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); - long seconds = System.currentTimeMillis(); - String typeName = dateStr + seconds + ".doc"; - File file = new File(targetPath + "cljszcght" + seconds + ".ftl"); - File dir = new File(targetPath); - WordConvertUtils.inputStreamToFile(inputStream, file); - WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); - //新生成的word路径 - String wordPath = targetPath + typeName; - //生成文件名 - String pdfName = "车辆及上装采购合同" + dateStr + seconds + ".pdf"; - WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); - return pdfName; + if (topInfo != null) { + map.put("price", topInfo.getTopPrice()); + } else { + map.put("price", ""); + } + List urls = new ArrayList<>(); + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //消贷合同编号 + map.put("con1", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "cljszcght" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "cljszcght" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "C" + map.get("con").toString() + "车辆及上装采购合同" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + //消贷合同编号 + map.put("con1", busSalesOrderLoancontractDetailsVo.getLoanContractNo()); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "cljszcght" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "cljszcght" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "C" + map.get("con").toString() + "车辆及上装采购合同" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; } - public String gsgddwdbjy(){ + public List gsgddwdbjy(PrintConfirmDto printConfirmDto, String conSetUpKey) { Map map = new HashMap<>(); - InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "gsgddwdbjy" + ".ftl"); - //生成word文件名 - String targetPath = docPdfComponent.getUploadTemplateUrl(); - String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); - long seconds = System.currentTimeMillis(); - String typeName = dateStr + seconds + ".doc"; - File file = new File(targetPath + "gsgddwdbjy" + seconds + ".ftl"); - File dir = new File(targetPath); - WordConvertUtils.inputStreamToFile(inputStream, file); - WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); - //新生成的word路径 - String wordPath = targetPath + typeName; - //生成文件名 - String pdfName = "公司股东会对外担保决议" + dateStr + seconds + ".pdf"; - WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); - return pdfName; + List salesOrderVehicles = printConfirmDto.getSalesOrderVehicles(); + //时间 + map.put("qdDate",DateUtil.formatDate(new Date())); + //合同补充信息 + HomeKcCust homeKcCust = printConfirmDto.getHomeKcCust(); + //地点 + map.put("qddd",homeKcCust.getAccCompName()); + //获取销售订单信息 + BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(printConfirmDto.getContractNo()).getData(); + //获取采购系统、分公司对应的开票信息 + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()).getData(); + //甲方 + map.put("jf", finCompanyInvoicingDetailsVo.getName()); + //乙方 + map.put("yf", salesOrderVehicles.get(0).getBorrowName()); + //股东人数1 + map.put("gdrs1",homeKcCust.getShareNum()); + //股东人数2 + map.put("gdrs2",homeKcCust.getShareNum()); + //年 + map.put("y", DateUtil.year(new Date())); + //月 + map.put("m", DateUtil.month(new Date()) + 1); + //日 + map.put("d", new Date().getDate()); + List urls = new ArrayList<>(); + if ("001".equals(conSetUpKey)) { + for (SalesOrderVehicle salesOrderVehicle : salesOrderVehicles) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicle.getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con1", "H" + busSalesOrderLoancontractDetailsVo.getLoanContractNo() + "《还款协议》"); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "gsgdhdwdbjy" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "gsgdhdwdbjy" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "公司股东会对外担保决议" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + } else if ("002".equals(conSetUpKey)) { + //获取消贷合同信息 + BusSalesOrderLoancontractDetailsVo busSalesOrderLoancontractDetailsVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(salesOrderVehicles.get(0).getLoanContractSid()).getData(); + //消贷合同编号 + map.put("con1", "H" + busSalesOrderLoancontractDetailsVo.getLoanContractNo() + "《还款协议》"); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "gsgdhdwdbjy" + ".ftl"); + //生成word文件名 + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "gsgdhdwdbjy" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + //生成文件名 + String pdfName = "公司股东会对外担保决议" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + urls.add(pdfName); + } + return urls; } public ResultBean saveHomeVisit(HomeVisitDto dto) { diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.java new file mode 100644 index 0000000000..c786b2a85b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.riskcenter.biz.loanoutboundapply; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApply; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyVo; +import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo; +import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList; +import com.yxt.anrui.riskcenter.api.loansubletapply.*; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + + +@Mapper +public interface LoanOutboundApplyMapper extends BaseMapper { + + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage getVinList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + RedemptionInitVo redemptionInit(@Param("ledgerSid") String ledgerSid); + + RedemptionVinList selTrailerByLedgerSid(@Param("ledgerSid") String ledgerSid); + + int updateFlowFiled(Map map); + + SubletInitVo selReturnLegerBySid(@Param("ledgerSid") String ledgerSid); + + SubletInitVo selLoanInfoByMainVeh(@Param("busVinSid") String busVinSid); + + SubletVinList selReturnVinLegerBySid(@Param("ledgerSid") String ledgerSid); + + SubletVinList selReturnTrVinLegerByPSid(@Param("ledgerSid") String ledgerSid); + + SubletInitVo selLoanInfoByTrVeh(@Param("ledgerSid") String ledgerSid); + + SubletVinList selReturnTrVinLegerBySid(@Param("ledgerSid") String ledgerSid); + + VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid); + + int updateLedgerStockStateBySid(@Param("key") String key, @Param("value") String value, @Param("date") String date, @Param("ledgerSid") String ledgerSid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.xml new file mode 100644 index 0000000000..895151f0c0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.xml @@ -0,0 +1,198 @@ + + + + + UPDATE loan_out_bound_apply + SET nodeState=#{nodeState} + , nodeSid=#{taskDefKey} + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + + UPDATE loan_return_veh_ledger + SET stockStateKey=#{key}, + stockState=#{value}, + outboundDate =#{date} + WHERE sid = #{ledgerSid} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyRest.java new file mode 100644 index 0000000000..f2edcc56b3 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyRest.java @@ -0,0 +1,107 @@ +package com.yxt.anrui.riskcenter.biz.loanoutboundapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.*; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*; +import com.yxt.anrui.riskcenter.api.loansubletapply.*; +import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletDetailsVo; +import com.yxt.anrui.riskcenter.api.loansubletapply.flow.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +@Api(tags = "交回车辆出库申请") +@RestController +@RequestMapping("v1/loanoutboundapply") +public class LoanOutboundApplyRest implements LoanOutboundApplyFeign { + + @Autowired + private LoanOutboundApplyService loanOutboundApplyService; + + @Override + public ResultBean> listPage(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanOutboundApplyService.listPage(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean saveOutbound(LoanOutboundApplyDto dto) { + return loanOutboundApplyService.saveOutbound(dto); + } + + @Override + public ResultBean updateOutbound(LoanUpdateApplyDto dto) { + return loanOutboundApplyService.updateOutbound(dto); + } + + @Override + public ResultBean outboundDetails(String sid) { + return loanOutboundApplyService.outboundDetails(sid); + } + + @Override + public ResultBean submitRecordApplication(SubmitOutboundDto dto) { + return loanOutboundApplyService.submitRecordApplication(dto); + } + + @Override + public ResultBean complete(OutboundCompleteDto dto) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(dto, bv); + bv.setModelId(ProcDefEnum.LOANOUTBOUNDVEHAPPLY.getProDefId()); + return loanOutboundApplyService.complete(bv); + } + + @Override + public ResultBean revokeProcess(OutboundTaskQuery query) { + return loanOutboundApplyService.revokeProcess(query); + } + + @Override + public ResultBean taskReject(OutboundTaskQuery query) { + return loanOutboundApplyService.taskReject(query); + } + + @Override + public ResultBean breakProcess(OutboundTaskQuery query) { + return loanOutboundApplyService.breakProcess(query); + } + + @Override + public ResultBean flowRecord(String procInsId) { + return loanOutboundApplyService.flowRecord(procInsId); + } + + @Override + public ResultBean> getNextNodesForSubmit(OutboundGetNodeQuery query) { + return loanOutboundApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean> getPreviousNodesForReject(OutboundGetNodeQuery query) { + return loanOutboundApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean delegate(OutboundDelegateQuery query) { + return loanOutboundApplyService.delegate(query); + } + + @Override + public ResultBean appDetail(String sid) { + return loanOutboundApplyService.appDetail(sid); + } + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java new file mode 100644 index 0000000000..e5255431ea --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java @@ -0,0 +1,957 @@ +package com.yxt.anrui.riskcenter.biz.loanoutboundapply; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; +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.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.*; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundVinListVo; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*; +import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh; +import com.yxt.anrui.riskcenter.api.loansubletapply.*; +import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletDetailsVo; +import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletVinListVo; +import com.yxt.anrui.riskcenter.api.loansubletapply.flow.*; +import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh; +import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService; +import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.anrui.riskcenter.biz.loanoutboundveh.LoanOutboundVehService; +import com.yxt.anrui.riskcenter.biz.loanredemptionapply.LoanRedemptionApplyService; +import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; +import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; +import com.yxt.anrui.riskcenter.biz.loansubletveh.LoanSubletVehService; +import com.yxt.common.base.config.component.FileUploadComponent; +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 com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessageFlowVo; +import com.yxt.messagecenter.api.message.MessageFlowableQuery; +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.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + +/** + * @description: + * @author: fzz + * @date: 2023/7/6 + **/ +@Service +public class LoanOutboundApplyService extends MybatisBaseService { + + @Autowired + private MessageFeign messageFeign; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private LoanRepaymentHistoryService loanRepaymentHistoryService; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private LoanBuckleApplyRecordService loanBuckleApplyRecordService; + @Autowired + private LoanFileService loanFileService; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService; + @Autowired + private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; + @Autowired + private FinKingDeeFeign finKingDeeFeign; + @Autowired + private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign; + @Autowired + private BusSalesOrderFeign busSalesOrderFeign; + @Autowired + private BasePurchaseSystemFeign basePurchaseSystemFeign; + @Autowired + private LoanRedemptionApplyService loanRedemptionApplyService; + @Autowired + private LoanSubletVehService loanSubletVehService; + @Autowired + private LoanOutboundVehService loanOutboundVehService; + + public PagerVo listPage(PagerQuery pq) { + IPage page = PagerUtil.queryToPage(pq); + LoanOutboundApplyQuery pagerQuery = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); + privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); + privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); + privilegeQuery.setUserSid(pagerQuery.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = pagerQuery.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("a.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("a.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("a.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("a.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("a.applyUserSid", pagerQuery.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + //======================= + //分公司 + if (StringUtils.isNotBlank(pagerQuery.getCompany())) { + qw.like("a.company", pagerQuery.getCompany()); + } + //申请人 + if (StringUtils.isNotBlank(pagerQuery.getApplyName())) { + qw.like("a.applyName", pagerQuery.getApplyName()); + } + //申请部门 + if (StringUtils.isNotBlank(pagerQuery.getDept())) { + qw.like("a.dept", pagerQuery.getDept()); + } + //消贷合同号 + if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) { + qw.like("a.loanContractNo", pagerQuery.getLoanContractNo()); + } + //资方 + if (StringUtils.isNotBlank(pagerQuery.getBankName())) { + qw.like("a.bankName", pagerQuery.getBankName()); + } + //资方合同号 + if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) { + qw.like("a.bankContractNo", pagerQuery.getBankContractNo()); + } + //客户名称 + if (StringUtils.isNotBlank(pagerQuery.getCustomer())) { + qw.like("a.customer", pagerQuery.getCustomer()); + } + //贷款人 + if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { + qw.like("a.borrowerName", pagerQuery.getBorrowerName()); + } + //车架号 + if (StringUtils.isNotBlank(pagerQuery.getVinNo())) { + qw.like("a.vinNo", pagerQuery.getVinNo()); + } + //车牌号 + if (StringUtils.isNotBlank(pagerQuery.getVehMark())) { + qw.like("a.vehMark", pagerQuery.getVehMark()); + } + //处置方式 + if (StringUtils.isNotBlank(pagerQuery.getDisposalKey())) { + qw.like("a.disposalKey", pagerQuery.getDisposalKey()); + } + String applyStartTime = pagerQuery.getApplyStartDate(); + String applyEndTime = pagerQuery.getApplyEndDate(); + qw.apply(StringUtils.isNotEmpty(applyStartTime), "date_format (a.applyDate,'%Y-%m-%d') >= date_format('" + applyStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(applyEndTime), "date_format (a.applyDate,'%Y-%m-%d') <= date_format('" + applyEndTime + "','%Y-%m-%d')" + ); + String closingStartDate = pagerQuery.getClosingStartDate(); + String closingEndDate = pagerQuery.getClosingEndDate(); + qw.apply(StringUtils.isNotEmpty(closingStartDate), "date_format (a.closingDate,'%Y-%m-%d') >= date_format('" + closingStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(closingEndDate), "date_format (a.closingDate,'%Y-%m-%d') <= date_format('" + closingEndDate + "','%Y-%m-%d')" + ); + String outStartDate = pagerQuery.getOutStartDate(); + String outEndDate = pagerQuery.getOutEndDate(); + qw.apply(StringUtils.isNotEmpty(outStartDate), "date_format (a.outboundDate,'%Y-%m-%d') >= date_format('" + outStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(outEndDate), "date_format (a.outboundDate,'%Y-%m-%d') <= date_format('" + outEndDate + "','%Y-%m-%d')" + ); + qw.eq("a.isDelete", 0); + qw.orderByDesc("a.applyDate"); + qw.apply("(a.count > 1 AND a.vehType = '主车' ) OR (a.count = 1)"); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + + @Transactional(rollbackFor = Exception.class) + public ResultBean saveOutbound(LoanOutboundApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanOutboundApply entity = new LoanOutboundApply(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); + baseMapper.insert(entity); + List vinList = dto.getVinList(); + if (!vinList.isEmpty()) { + vinList.stream().forEach(v -> { + LoanOutboundVeh loanOutboundVeh = new LoanOutboundVeh(); + BeanUtil.copyProperties(v, loanOutboundVeh, "id", "sid"); + loanOutboundVeh.setMainSid(entity.getSid()); + loanOutboundVehService.insert(loanOutboundVeh); + }); + } + return rb.success().setData(entity.getSid()); + } + + @Transactional(rollbackFor = Exception.class) + public ResultBean updateOutbound(LoanUpdateApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + LoanOutboundApply updateEntity = fetchBySid(sid); + if (null != updateEntity) { + BeanUtil.copyProperties(dto, updateEntity, "id", "sid"); + updateEntity.setApplyUserSid(dto.getUserSid()); + updateEntity.setOrgSidPath(dto.getOrgPath()); + baseMapper.updateById(updateEntity); + //删除附件表中关于该linkSid的文件 + loanFileService.deleteByLinkSid(sid); + List filess1 = dto.getBuyFiles(); + if (!filess1.isEmpty()) { + List files = new ArrayList<>(); + for (LoanOutboundApplyFile file : filess1) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.BUYFILES.getAttachType()); + } + List filess2 = dto.getDeliveryFiles(); + if (!filess2.isEmpty()) { + List files = new ArrayList<>(); + for (LoanOutboundApplyFile file : filess2) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.DELIVERYFILES.getAttachType()); + } + List filess3 = dto.getAssessFiles(); + if (!filess3.isEmpty()) { + List files = new ArrayList<>(); + for (LoanOutboundApplyFile file : filess3) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.ASSESSFILES.getAttachType()); + } + List filess4 = dto.getOtherFiles(); + if (!filess4.isEmpty()) { + List files = new ArrayList<>(); + for (LoanOutboundApplyFile file : filess4) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.OTHERFILES.getAttachType()); + } + } + return rb.success().setData(sid); + } + + public ResultBean outboundDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanOutboundApplyInit vo = new LoanOutboundApplyInit(); + LoanOutboundApply entity = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (null != entity) { + BeanUtil.copyProperties(entity, vo); + if (null != entity.getApplyDate()) { + vo.setApplyDate(sdf.format(entity.getApplyDate())); + } else { + vo.setApplyDate(sdf.format(new Date())); + } + if (StringUtils.isNotBlank(entity.getProcInstId())) { + vo.setInstanceId(entity.getProcInstId()); + } + if (StringUtils.isNotBlank(entity.getApplyUserSid())) { + vo.setUserSid(entity.getApplyUserSid()); + vo.setOrgPath(entity.getOrgSidPath()); + } else { + vo.setOrgPath(""); + } + List vinLists = loanOutboundVehService.selByMainSid(sid); + if (!vinLists.isEmpty()) { + vo.setVinList(vinLists); + } + List fileList1 = loanFileService.selectByLinkSid(sid, LoanFileEnum.BUYFILES.getAttachType()); + fileList1.removeAll(Collections.singleton(null)); + if (!fileList1.isEmpty()) { + List files = fileList1.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List applyFiles = new ArrayList<>(); + for (String file : files) { + LoanOutboundApplyFile applyFile = new LoanOutboundApplyFile(); + applyFile.setUrl(file); + applyFiles.add(applyFile); + } + vo.setBuyFiles(applyFiles); + } + List fileList2 = loanFileService.selectByLinkSid(sid, LoanFileEnum.DELIVERYFILES.getAttachType()); + fileList2.removeAll(Collections.singleton(null)); + if (!fileList2.isEmpty()) { + List files = fileList2.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List applyFiles = new ArrayList<>(); + for (String file : files) { + LoanOutboundApplyFile applyFile = new LoanOutboundApplyFile(); + applyFile.setUrl(file); + applyFiles.add(applyFile); + } + vo.setDeliveryFiles(applyFiles); + } + List fileList3 = loanFileService.selectByLinkSid(sid, LoanFileEnum.ASSESSFILES.getAttachType()); + fileList3.removeAll(Collections.singleton(null)); + if (!fileList3.isEmpty()) { + List files = fileList3.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List applyFiles = new ArrayList<>(); + for (String file : files) { + LoanOutboundApplyFile applyFile = new LoanOutboundApplyFile(); + applyFile.setUrl(file); + applyFiles.add(applyFile); + } + vo.setAssessFiles(applyFiles); + } + List fileList4 = loanFileService.selectByLinkSid(sid, LoanFileEnum.OTHERFILES.getAttachType()); + fileList4.removeAll(Collections.singleton(null)); + if (!fileList4.isEmpty()) { + List files = fileList4.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List applyFiles = new ArrayList<>(); + for (String file : files) { + LoanOutboundApplyFile applyFile = new LoanOutboundApplyFile(); + applyFile.setUrl(file); + applyFiles.add(applyFile); + } + vo.setOtherFiles(applyFiles); + } + } + return rb.success().setData(vo); + } + + + //-------------------------------------流程------------------------------------------------/ + + /** + * 判断提交的流程是否被允许 + * + * @param dto + * @return + */ + private synchronized int submitBusinessData(SubmitOutboundDto dto, LoanOutboundApply loanOutboundApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanOutboundApply != null) { + String businessTaskId = loanOutboundApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + } + return r; + } + + /** + * 更新流程相关的状态 + * + * @param map + * @return + */ + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean submitRecordApplication(SubmitOutboundDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanOutboundApply loanOutboundApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanOutboundApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + String businessSid = ""; + //新增修改保存 + ResultBean resultBean = updateOutbound(dto); + if (resultBean.getSuccess()) { + businessSid = resultBean.getData(); + } else { + return rb.setMsg(resultBean.getMsg()); + } + LoanOutboundApply entity = fetchBySid(businessSid); + String orgSidPath = ""; + if (StringUtils.isNotBlank(entity.getOrgSidPath())) { + orgSidPath = entity.getOrgSidPath(); + } else { + SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData(); + if (null != data) { + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + } + } + List orgPathList = Arrays.asList(orgSidPath.split("/")); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); + if (sysOrganization == null) { + return rb.setMsg("当前所在的组织机构不存在"); + } + if (StringUtils.isBlank(sysOrganization.getManagerSid())) { +// return rb.setMsg("当前所在的组织机构未设置主管人员"); + sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值 + Map variables = BeanUtil.beanToMap(dto); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(entity.getSalesUserSid())) { +// if (!entity.getCreateBySid().equals(entity.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); +// String orderNames = "<" + entity.getCustomer() + ">" + "欠款客户备案"; +// variables.put("orderNames", orderNames); + LoanOutboundApply loanOutboundApply1 = fetchBySid(businessSid); + String msgBusinessSid = loanOutboundApply1.getSid(); + //用户的部门全路径sid + bv.setOrgSidPath(loanOutboundApply1.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); +// String nextNodeUserSids_ = sysOrganization.getManagerSid(); +// bv.setNextNodeUserSids(nextNodeUserSids_); +// if (isTure) { +// bv.setNextNodeUserSids(nextNodeUserSids_); +// } else { +// bv.setNextNodeUserSids(entity.getSalesUserSid()); +// } + //流程定义id + bv.setModelId(ProcDefEnum.LOANOUTBOUNDVEHAPPLY.getProDefId()); + if (r == 1) { + //流程定义id + bv.setModelId(ProcDefEnum.LOANOUTBOUNDVEHAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(msgBusinessSid); + messageFlowableQuery.setModuleName("交回车辆出库申请"); + SysUserVo userVo = sysUserFeign.fetchBySid(loanOutboundApply1.getApplyUserSid()).getData(); + if (userVo != null) { + if (StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + messageFlowableQuery.setMsgTitle("交回车辆出库申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + LoanOutboundApply loanOutboundApply2 = fetchBySid(dto.getSid()); + bv.setTaskId(dto.getTaskId()); + bv.setTaskDefKey(loanOutboundApply2.getNodeSid()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + LoanOutboundApply loanOutboundApply = this.fetchBySid(businessSid); + if (bv.getTaskId().equals(loanOutboundApply.getTaskId())) { + bv.setOrgSidPath(loanOutboundApply.getOrgSidPath()); + //流程中的参数赋值 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); +// if (bv.getTaskDefKey().equals("Activity_1078xxs")) { +// if (StringUtils.isNotBlank(loanCustomerRecord.getManageSid())) { +// bv.setNextNodeUserSids(loanCustomerRecord.getManageSid()); +// } else { +// bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); +// } +// } + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + LoanOutboundApply outboundApply = fetchBySid(businessSid); + outboundApply.setClosingDate(new DateTime()); + outboundApply.setOutboundDate(new Date()); + baseMapper.updateById(outboundApply); + //todo 修改交车车辆台账状态 + List vinLists = loanOutboundVehService.selByMainSid(businessSid); + if (!vinLists.isEmpty()) { + vinLists.stream().forEach(v -> { + int u = baseMapper.updateLedgerStockStateBySid("0002", "出库", sdf.format(new Date()), v.getLedgerSid()); + }); + } + } else { + //极光推送 + loanOutboundApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanOutboundApply.getProcDefId()); + messageFlowVo.setProcInsId(loanOutboundApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆出库申请"); + messageFlowableQuery.setMsgContent(loanOutboundApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆出库申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + /** + * 撤回 + * + * @param query + * @return + */ + public ResultBean revokeProcess(OutboundTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanOutboundApply apply = fetchBySid(query.getBusinessSid()); + String businessTaskId = apply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + apply = fetchBySid(query.getBusinessSid()); + String procId = apply.getProcInstId(); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + String nextName = listResultBean.getData().get(0).getName_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if ("发起申请".equals(nextName)) { + + } + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean taskReject(OutboundTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanOutboundApply apply = fetchBySid(businessSid); + if (apply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = apply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + apply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = apply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(apply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆出库申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); +// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) { + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + SysUserVo userVo = sysUserFeign.fetchBySid(apply.getApplyUserSid()).getData(); + if (userVo != null) { + if (StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + } + messageFlowableQuery.setMsgTitle("交回车辆出库申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean breakProcess(OutboundTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + LoanOutboundApply apply = fetchBySid(query.getBusinessSid()); + String businessTaskId = apply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(apply.getApplyUserSid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止任务后操作 +// LoanOutboundApply entity = fetchBySid(query.getBusinessSid()); +// if (entity.getNodeState().equals("终止")) { +// +// } + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止任务后操作 +// LoanOutboundApply entity = fetchBySid(query.getBusinessSid()); +// if (entity.getNodeState().equals("终止")) { +// +// } + return rb.success().setData(resultBean.getData()); + } + } + + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean flowRecord(String procInsId) { + return flowTaskFeign.businessFlowRecord(procInsId); + } + + public ResultBean> getNextNodesForSubmit(OutboundGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + + //根据业务sid查询排产信息 + LoanOutboundApply apply = fetchBySid(query.getBusinessSid()); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + bv.setFormVariables(variables); + bv.setModelId(apply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OutboundGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getPreviousNodesForReject(OutboundGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询排产信息 + LoanOutboundApply apply = fetchBySid(query.getBusinessSid()); +// //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + bv.setFormVariables(variables); + bv.setModelId(apply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OutboundGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean delegate(OutboundDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } + + + public ResultBean appDetail(String sid) { + ResultBean rb = ResultBean.fireFail(); + AppOutboundDetailsVo vo = new AppOutboundDetailsVo(); + LoanOutboundApply entity = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (null != entity) { + vo.setSid(sid); + String dept = ""; + String applyName = ""; + //---------------------------------------------------- + if (StringUtils.isNotBlank(entity.getNewCustomer())) { + vo.setCustName(entity.getNewCustomer()); + } + if (StringUtils.isNotBlank(entity.getApplySid())) { + vo.setApplySid(entity.getApplySid()); + } + if (StringUtils.isNotBlank(entity.getPhoneNum())) { + vo.setPhoneNum(entity.getPhoneNum()); + } + if (StringUtils.isNotBlank(entity.getDisposalKey())) { + vo.setDisposalKey(entity.getDisposalKey()); + } + if (StringUtils.isNotBlank(entity.getDisposal())) { + vo.setDisposal(entity.getDisposal()); + } + if (StringUtils.isNotBlank(entity.getDisposalContractNo())) { + vo.setDisposalContractNo(entity.getDisposalContractNo()); + } + if (StringUtils.isNotBlank(entity.getRemarks())) { + vo.setRemarks(entity.getRemarks()); + } + if (null != entity.getAmount()) { + vo.setAmount(entity.getAmount().toString()); + } + //---------------------------------------------------- + if (StringUtils.isNotBlank(entity.getProcInstId())) { + vo.setProcInsId(entity.getProcInstId()); + } + if (StringUtils.isNotBlank(entity.getTaskId())) { + vo.setTaskId(entity.getTaskId()); + } + if (null != entity.getApplyDate()) { + vo.setTime(sdf.format(entity.getApplyDate())); + } + if (StringUtils.isNotBlank(entity.getDept())) { + dept = entity.getDept(); + } + if (StringUtils.isNotBlank(entity.getApplyName())) { + applyName = entity.getApplyName(); + } + vo.setPublishInfo(dept + "-" + applyName); + List fileList1 = loanFileService.selectByLinkSid(sid, LoanFileEnum.BUYFILES.getAttachType()); + fileList1.removeAll(Collections.singleton(null)); + if (!fileList1.isEmpty()) { + List files = fileList1.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + vo.setBuyFiles(files); + } + List fileList2 = loanFileService.selectByLinkSid(sid, LoanFileEnum.DELIVERYFILES.getAttachType()); + fileList2.removeAll(Collections.singleton(null)); + if (!fileList2.isEmpty()) { + List files = fileList2.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + vo.setDeliveryFiles(files); + } + List fileList3 = loanFileService.selectByLinkSid(sid, LoanFileEnum.ASSESSFILES.getAttachType()); + fileList3.removeAll(Collections.singleton(null)); + if (!fileList3.isEmpty()) { + List files = fileList3.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + vo.setAssessFiles(files); + } + List fileList4 = loanFileService.selectByLinkSid(sid, LoanFileEnum.OTHERFILES.getAttachType()); + fileList4.removeAll(Collections.singleton(null)); + if (!fileList4.isEmpty()) { + List files = fileList4.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + vo.setOtherFiles(files); + } + List vinList = new ArrayList<>(); + List vinLists = loanOutboundVehService.selByMainSid(sid); + if (!vinLists.isEmpty()) { + vinLists.stream().forEach(v -> { + AppOutboundVinListVo appVinListVo = new AppOutboundVinListVo(); + if (StringUtils.isNotBlank(v.getVinNo())) { + appVinListVo.setVinNo(v.getVinNo()); + } + if (StringUtils.isNotBlank(v.getVehModel())) { + appVinListVo.setModel(v.getVehModel()); + } + if (StringUtils.isNotBlank(v.getVehType())) { + appVinListVo.setVehType(v.getVehType()); + } + if (StringUtils.isNotBlank(v.getVehMark())) { + appVinListVo.setVehMark(v.getVehMark()); + } + if (StringUtils.isNotBlank(v.getLocation())) { + appVinListVo.setLocation(v.getLocation()); + } + vinList.add(appVinListVo); + }); + vo.setVinList(vinList); + } + } + return rb.success().setData(vo); + } + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.java new file mode 100644 index 0000000000..32c8790971 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.riskcenter.biz.loanoutboundveh; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinList; +import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh; +import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList; +import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +@Mapper +public interface LoanOutboundVehMapper extends BaseMapper { + + int deleteByMainSid(@Param("mainSid") String mainSid); + + List selByMainSid(@Param("mainSid") String mainSid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.xml new file mode 100644 index 0000000000..a730d0ea93 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.xml @@ -0,0 +1,16 @@ + + + + + + DELETE + FROM loan_sublet_veh + WHERE mainSid = #{mainSid} + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehRest.java new file mode 100644 index 0000000000..ce14961040 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehRest.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.riskcenter.biz.loanoutboundveh; + +import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVehFeign; +import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVehFeign; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Api(tags = "交回车辆出库车辆列表") +@RestController +@RequestMapping("v1/loanoutboundveh") +public class LoanOutboundVehRest implements LoanOutboundVehFeign { + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehService.java new file mode 100644 index 0000000000..bfc43bd55b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehService.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.riskcenter.biz.loanoutboundveh; + +import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinList; +import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh; +import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList; +import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: fzz + * @date: 2023/7/6 + **/ +@Service +public class LoanOutboundVehService extends MybatisBaseService { + + public int deleteByMainSid(String mainSid) { + return baseMapper.deleteByMainSid(mainSid); + } + + + public List selByMainSid(String sid) { + return baseMapper.selByMainSid(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankMapper.xml index b508b7e744..9c779e27c6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankMapper.xml @@ -74,9 +74,24 @@ COUNT(a1.sid) AS period, - SUM(a1.yq_total) AS overdueMoney, + ( + SUM(a1.yq_total) + IFNULL( + (SELECT SUM(lbpv.`bankBeInter`) + FROM loan_be_padsincere_veh lbpv + WHERE lbpv.saleVehSid = a1.busVinSid), + 0 + ) + IFNULL( + (SELECT SUM(fund) + FROM loan_fund_day + WHERE busSid IN + (SELECT lrpd.sid + FROM loan_repayment_plan_details lrpd + WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())), + 0 + ) + ) AS overdueMoney, a1.customerSid, - a1.customer customerName + a1.customer customerName FROM (SELECT lrpd.sid, lrpd.`loanContractNo`, @@ -90,7 +105,8 @@ ) AS yq_total, lrpd.customer, lrpd.customerSid, - lrpd.borrowerSid + lrpd.borrowerSid, + lrpd.busVinSid FROM `loan_repayment_plan_details` lrpd LEFT JOIN `loan_repayment_history` lrh ON lrh.planDetailSid = lrpd.`sid` @@ -106,11 +122,13 @@ diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinMapper.xml index 98d6fbe992..a1e7ea2b0d 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinMapper.xml @@ -64,11 +64,26 @@ SELECT a1.busVinSid AS busViNSid, RIGHT(a1.vinNo, 8) AS vinNo, - SUM(a1.yq_total) AS overdueMoney, - a1.customer AS customerName, - a1.customerSid as customerSid, - a1.borrowerSid loanSid, - a1.borrowerName loanName + ( + SUM(a1.yq_total) + IFNULL( + (SELECT SUM(lbpv.`bankBeInter`) + FROM loan_be_padsincere_veh lbpv + WHERE lbpv.saleVehSid = a1.busVinSid), + 0 + ) + IFNULL( + (SELECT SUM(fund) + FROM loan_fund_day + WHERE busSid IN + (SELECT lrpd.sid + FROM loan_repayment_plan_details lrpd + WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())), + 0 + ) + ) AS overdueMoney, + a1.customer AS customerName, + a1.customerSid as customerSid, + a1.borrowerSid loanSid, + a1.borrowerName loanName FROM (SELECT lrpd.sid, lrpd.busVinSid, lrpd.borrowerName, @@ -96,11 +111,13 @@ diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java index 5547145517..18c5d66492 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java @@ -223,15 +223,22 @@ public class LoanOverdueFinService extends MybatisBaseService filesList = dto.getFilesList(); List filss = dto.getFilesList(); - List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); - if (!filesList.isEmpty()) { - String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); - loanOverdueFin.setFiles(files); + if (!filss.isEmpty()) { + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanOverdueFin.setFiles(files); + } + } else { + loanOverdueFin.setFiles(""); } + List detailsVoList = dto.getDetailsVoList(); detailsVoList.removeAll(Collections.singleton(null)); if (!detailsVoList.isEmpty()) { loanOverdueFinDetailsService.saveOrUpdateDetails(detailsVoList, loanOverdueFin.getSid()); + }else{ + loanOverdueFinDetailsService.deleteByMainSid(sid); } baseMapper.updateById(loanOverdueFin); } @@ -742,10 +749,10 @@ public class LoanOverdueFinService extends MybatisBaseService loanRepaymentScheduleDetailsVos = loanOverdueFinDetailsService.selectByCustomerNo(excelFinVo.getCustomerNo(), useOrgSid); loanRepaymentScheduleDetailsVos.removeAll(Collections.singleton(null)); if (loanRepaymentScheduleDetailsVos.isEmpty()) { diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java new file mode 100644 index 0000000000..3d03a2f02b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.biz.loanpushfundhistory; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +@Mapper +public interface LoanPushFundHistoryMapper extends BaseMapper { + + + int saveLists(@Param("list") List list); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml new file mode 100644 index 0000000000..fb5c3044bd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml @@ -0,0 +1,13 @@ + + + + + + + insert into loan_push_fund_history(sid,busVinSid,useOrgSid,useOrgName,fund) + values + + (#{item.sid},#{item.busVinSid},#{item.useOrgSid},#{item.useOrgName},#{item.fund}) + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java new file mode 100644 index 0000000000..a6e266b18b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.riskcenter.biz.loanpushfundhistory; + +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryFeign; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecordFeign; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Api(tags = "推送资金占用费记录表") +@RestController +@RequestMapping("v1/loanpushfundhistory") +public class LoanPushFundHistoryRest implements LoanPushFundHistoryFeign { + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java new file mode 100644 index 0000000000..c804eea8e7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.biz.loanpushfundhistory; + + +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: fzz + * @date: 2023/7/6 + **/ +@Service +public class LoanPushFundHistoryService extends MybatisBaseService { + + public int saveLists(List list) { + return baseMapper.saveLists(list); + } + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java index 25b5f17368..4142e98a5e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java @@ -7,9 +7,12 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply; import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyVo; import com.yxt.anrui.riskcenter.api.loanredemptionapply.*; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; +import com.yxt.anrui.riskcenter.api.loansubletapply.VehDisposal; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Map; @@ -18,13 +21,21 @@ public interface LoanRedemptionApplyMapper extends BaseMapper listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - IPage getVinList(IPage page,@Param(Constants.WRAPPER) QueryWrapper qw); + IPage getVinList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); RedemptionInitVo redemptionInit(@Param("ledgerSid") String ledgerSid); - RedemptionVinList selTrailerByLedgerSid(@Param("ledgerSid") String ledgerSid); + List selTrailerByLedgerSid(@Param("ledgerSid") String ledgerSid); int updateFlowFiled(Map map); String selTrailerByMainLedgerSid(@Param("ledgerSid") String ledgerSid); + + int updateVehLedgerDisposal(@Param("sid") String sid, @Param("disposalKey") String disposalKey, @Param("disposal") String disposal); + + VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid); + + LoanReturnVehLedger selVehLedgerBySid(@Param("ledgerSid") String ledgerSid); + + String selVehRkSid(@Param("busVinSid") String busVinSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml index 798dd6e7a9..adaa91b37a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml @@ -16,6 +16,12 @@ WHERE sid = #{sid} + + update loan_return_veh_ledger + set disposal = #{disposal}, + disposalKey = #{disposalKey} + WHERE sid = #{sid} + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java index f70b3b588b..f7e890712e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java @@ -13,6 +13,8 @@ import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; import com.yxt.anrui.flowable.api.flow.FlowableFeign; @@ -38,6 +40,8 @@ import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyDto; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinListDto; import com.yxt.anrui.riskcenter.api.loanredemptionapply.*; import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo; import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppVinListVo; @@ -47,8 +51,12 @@ import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; +import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList; +import com.yxt.anrui.riskcenter.api.loansubletapply.VehDisposal; import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.anrui.riskcenter.biz.loanoutboundapply.LoanOutboundApplyService; import com.yxt.anrui.riskcenter.biz.loanredemptionveh.LoanRedemptionVehService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; @@ -118,6 +126,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService listPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); @@ -241,7 +253,8 @@ public class LoanRedemptionApplyService extends MybatisBaseService pagging = baseMapper.getVinList(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); return p; @@ -254,6 +267,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService trailerVeh = baseMapper.selTrailerByLedgerSid(redemptionInitVo.getLedgerSid()); + if (!trailerVeh.isEmpty()) { + trailerVeh.stream().forEach(t -> { + vinList.add(t); + }); } } vo.setVinList(vinList); @@ -426,7 +446,6 @@ public class LoanRedemptionApplyService extends MybatisBaseService redemptionDetails(String sid) { ResultBean rb = ResultBean.fireFail(); LoanRedemptionApplyInit vo = new LoanRedemptionApplyInit(); @@ -473,6 +496,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService dtoVinList = dto.getVinList(); + if (!dtoVinList.isEmpty()) { + for (RedemptionVinList v : dtoVinList) { + VehDisposal vehDisposal = baseMapper.selVehDisposal(v.getLedgerSid()); + if (null != vehDisposal) { + if (!vehDisposal.getDisposal().equals("未处置")) { + return rb.setMsg("当前所选车辆不是未处置状态,无法提交!"); + } + } + } + } String businessSid = ""; //新增修改保存 ResultBean resultBean = saveRedemption(dto); @@ -604,6 +641,13 @@ public class LoanRedemptionApplyService extends MybatisBaseService vinLists1 = loanRedemptionVehService.selByMainSid(businessSid); + if (!vinLists1.isEmpty()) { + vinLists1.stream().forEach(v -> { + updateVehLedgerDisposal(v.getLedgerSid(), "02", "客户赎回"); + }); + } LoanRedemptionApply entity = fetchBySid(businessSid); String orgSidPath = ""; if (StringUtils.isNotBlank(entity.getOrgSidPath())) { @@ -755,11 +799,38 @@ public class LoanRedemptionApplyService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + pushVehOutBound(redemptionApply); + }); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + //极光推送 + loanRedemptionApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanRedemptionApply.getProcDefId()); + messageFlowVo.setProcInsId(loanRedemptionApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆赎回申请"); + messageFlowableQuery.setMsgContent(loanRedemptionApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆赎回申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); } return rb.success().setData(resultBean.getData()); } else { @@ -767,6 +838,42 @@ public class LoanRedemptionApplyService extends MybatisBaseService vinList = new ArrayList<>(); + BeanUtil.copyProperties(loanRedemptionApply, dto); + dto.setApplySid(loanRedemptionApply.getSid()); + dto.setDisposalKey("02"); + dto.setDisposal("客户赎回"); + if (StringUtils.isNotBlank(loanRedemptionApply.getCustomerSid())) { + dto.setNewCustomerSid(loanRedemptionApply.getCustomerSid()); + CrmCustomerTempVo customerTempVo = crmCustomerTempFeign.fetchSid(loanRedemptionApply.getCustomerSid()).getData(); + if (null != customerTempVo) { + if (StringUtils.isNotBlank(customerTempVo.getMobile())) { + dto.setPhoneNum(customerTempVo.getMobile()); + } + } + } + if (StringUtils.isNotBlank(loanRedemptionApply.getCustomer())) { + dto.setNewCustomer(loanRedemptionApply.getCustomer()); + } + List vinLists = loanRedemptionVehService.selByMainSid(loanRedemptionApply.getSid()); + if (!vinLists.isEmpty()) { + vinLists.forEach(v -> { + OutboundVinListDto outboundVinListDto = new OutboundVinListDto(); + BeanUtil.copyProperties(v, outboundVinListDto); + LoanReturnVehLedger loanReturnVehLedger = baseMapper.selVehLedgerBySid(v.getLedgerSid()); + if (null != loanReturnVehLedger) { + if (StringUtils.isNotBlank(loanReturnVehLedger.getLocation())) { + outboundVinListDto.setLocation(loanReturnVehLedger.getLocation()); + } + } + vinList.add(outboundVinListDto); + }); + } + dto.setVinList(vinList); + loanOutboundApplyService.saveOutbound(dto); + } public ResultBean revokeProcess(RedemptionTaskQuery query) { ResultBean rb = ResultBean.fireFail(); @@ -784,6 +891,21 @@ public class LoanRedemptionApplyService extends MybatisBaseService> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + String nextName = listResultBean.getData().get(0).getName_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if ("发起申请".equals(nextName)) { + //退回车辆处置状态 + List vinLists1 = loanRedemptionVehService.selByMainSid(query.getBusinessSid()); + if (!vinLists1.isEmpty()) { + vinLists1.stream().forEach(v -> { + updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } + } return rb.success().setData(resultBean.getData()); } } @@ -849,6 +971,13 @@ public class LoanRedemptionApplyService extends MybatisBaseService vinLists1 = loanRedemptionVehService.selByMainSid(query.getBusinessSid()); + if (!vinLists1.isEmpty()) { + vinLists1.stream().forEach(v -> { + updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } } else { SysUserVo userVo = sysUserFeign.fetchBySid(loanRedemptionApply.getCreateBySid()).getData(); if (userVo != null) { @@ -891,9 +1020,13 @@ public class LoanRedemptionApplyService extends MybatisBaseService vinLists = loanRedemptionVehService.selByMainSid(query.getBusinessSid()); + if (!vinLists.isEmpty()) { + vinLists.stream().forEach(v -> { + updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } } return rb.success().setData(resultBean.getData()); } else { @@ -909,9 +1042,13 @@ public class LoanRedemptionApplyService extends MybatisBaseService vinLists = loanRedemptionVehService.selByMainSid(query.getBusinessSid()); + if (!vinLists.isEmpty()) { + vinLists.stream().forEach(v -> { + updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } } return rb.success().setData(resultBean.getData()); } @@ -1074,6 +1211,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService SELECT DISTINCT - a.*, - (SELECT c.bankBeInter FROM loan_be_padsincere_veh as c WHERE c.saleVehSid = a.busVinSid AND c.period = a.period) - as bankBeInter + a.* FROM ( SELECT @@ -200,6 +256,7 @@ pd.borrowerName, pd.period, pd.paymentMoney, + pd.paymentInterest as bankBeInter, pd.fund, pd.dueMoney, t.repaidMoney, @@ -375,7 +432,7 @@ r.accountNumber FROM loan_transfer_payment_record AS r where r.repaymentHistorySid = #{sid} - and r.state = 1 - + and r.state = 1 + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java index 620cec5d9e..e3e4e47e57 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java @@ -468,18 +468,18 @@ public class LoanRepaymentHistoryService extends MybatisBaseService p = new PagerVo<>(); return p; @@ -490,132 +490,79 @@ public class LoanRepaymentHistoryService extends MybatisBaseService= date_format('" + dueStartDate + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(dueEndDate), "date_format (p.dueDate,'%Y-%m-%d') <= date_format('" + dueEndDate + "','%Y-%m-%d')" + qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (m.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(dueEndDate), "date_format (m.dueDate,'%Y-%m-%d') <= date_format('" + dueEndDate + "','%Y-%m-%d')" ); -// List monthHeadAndLast = getMonthHeadAndLast(new Date()); -// String head = monthHeadAndLast.get(0); -// String last = monthHeadAndLast.get(1); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String actualStartDate = pagerQuery.getActualStartDate(); String actualEndDate = pagerQuery.getActualEndDate(); - qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" + qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (m.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(actualEndDate), "date_format (m.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" ); -// try { -// Date headT = sdf.parse(head); -// Date lastT = sdf.parse(last); -// Date ast = null; -// Date aed = null; -// if (StringUtils.isNotBlank(actualStartDate)) { -// ast = sdf.parse(actualStartDate); -// } -// if (StringUtils.isNotBlank(actualEndDate)) { -// aed = sdf.parse(actualEndDate); -// } -// -// if (StringUtils.isBlank(actualStartDate) && StringUtils.isNotBlank(actualEndDate)) { -// if (aed.before(lastT)) { -// qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" -// ); -// } else { -// qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" -// ); -// } -// } else if (StringUtils.isBlank(actualEndDate) && StringUtils.isNotBlank(actualStartDate)) { -// if (headT.before(ast)) { -// qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" -// ); -// } else { -// qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" -// ); -// } -// } else if (StringUtils.isNotBlank(actualStartDate) && StringUtils.isNotBlank(actualEndDate)) { -// if (headT.before(ast) && aed.before(lastT)) { -// qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" -// ); -// } else if (headT.before(ast) && !aed.before(lastT)) { -// qw.apply(StringUtils.isNotEmpty(actualStartDate), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + actualStartDate + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + lastT + "','%Y-%m-%d')" -// ); -// } else if (!headT.before(ast) && aed.before(lastT)) { -// qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(actualEndDate), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + actualEndDate + "','%Y-%m-%d')" -// ); -// } else if (!headT.before(ast) && !aed.before(lastT)) { -// qw.apply(StringUtils.isNotEmpty(head), "date_format (h.actualDate,'%Y-%m-%d') >= date_format('" + head + "','%Y-%m-%d')"). -// apply(StringUtils.isNotEmpty(last), "date_format (h.actualDate,'%Y-%m-%d') <= date_format('" + last + "','%Y-%m-%d')" -// ); -// } -// } -// } catch (ParseException e) { -// e.printStackTrace(); -// } - String dataStartTime = pagerQuery.getDataStartTime(); String dataEndTime = pagerQuery.getDataEndTime(); - qw.apply(StringUtils.isNotEmpty(dataStartTime), "date_format (h.dataTime,'%Y-%m-%d') >= date_format('" + dataStartTime + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(dataEndTime), "date_format (h.dataTime,'%Y-%m-%d') <= date_format('" + dataEndTime + "','%Y-%m-%d')" + qw.apply(StringUtils.isNotEmpty(dataStartTime), "date_format (m.dataTime,'%Y-%m-%d') >= date_format('" + dataStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(dataEndTime), "date_format (m.dataTime,'%Y-%m-%d') <= date_format('" + dataEndTime + "','%Y-%m-%d')" ); - qw.orderByDesc("h.dataTime"); - IPage pagging = baseMapper.monthListPage(page, qw); - List records = pagging.getRecords(); - records.removeAll(Collections.singleton(null)); - if (!records.isEmpty()) { - for (LoanRepaymentHistoryVo record : records) { - String planDetailSid = record.getPlanDetailSid(); - List histories = baseMapper.selByPlanSid(planDetailSid); - BigDecimal returned = new BigDecimal(0); - if (!histories.isEmpty()) { - for (LoanRepaymentHistory history : histories) { - returned = history.getActualMoney().add(returned); - } - } - LoanRepaymentPlanDetails loanRepaymentPlanDetails = loanRepaymentPlanDetailsService.fetchBySid(record.getPlanDetailSid()); - if (null != loanRepaymentPlanDetails) { - BigDecimal dueMoney = loanRepaymentPlanDetails.getDueMoney(); - BigDecimal subtract = dueMoney.subtract(returned); - record.setOutstandingMoney(String.valueOf(subtract)); - } + if (StringUtils.isNotBlank(pagerQuery.getChange())) { + if (pagerQuery.getChange().equals("1")) { + qw.apply("((SELECT l.vehCount FROM anrui_buscenter.bus_sales_order_loancontract as l WHERE l.loanContractNo = m.loanContractNo and l.isDelete = 0) > 1 and m.outstandingMoney != m.actualMoney and returnWay = '直还')"); } } + qw.orderByDesc("m.dataTime"); + IPage pagging = baseMapper.monthListPage(page, qw); +// List records = pagging.getRecords(); +// records.removeAll(Collections.singleton(null)); +// if (!records.isEmpty()) { +// for (LoanRepaymentHistoryVo record : records) { +// String planDetailSid = record.getPlanDetailSid(); +// List histories = baseMapper.selByPlanSid(planDetailSid); +// BigDecimal returned = new BigDecimal(0); +// if (!histories.isEmpty()) { +// for (LoanRepaymentHistory history : histories) { +// returned = history.getActualMoney().add(returned); +// } +// } +// LoanRepaymentPlanDetails loanRepaymentPlanDetails = loanRepaymentPlanDetailsService.fetchBySid(record.getPlanDetailSid()); +// if (null != loanRepaymentPlanDetails) { +// BigDecimal dueMoney = loanRepaymentPlanDetails.getDueMoney(); +// BigDecimal subtract = dueMoney.subtract(returned); +// record.setOutstandingMoney(String.valueOf(subtract)); +// } +// } +// } PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } @@ -704,10 +651,14 @@ public class LoanRepaymentHistoryService extends MybatisBaseService= 0) { Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历 cal_1.setTime(date); cal_1.add(Calendar.DAY_OF_MONTH, -1); @@ -834,21 +785,21 @@ public class LoanRepaymentHistoryService extends MybatisBaseService(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); - //推送财务当月逾期转累欠凭证 - Future future = pool.submit(() -> { - pushLateVoucher(pushUseOrgSid); - }); - } catch (Exception e) { - e.printStackTrace(); - log.error("推送数据失败=========================" + e.getMessage()); - return rb.setMsg("推送数据失败"); - } +// try { +// ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() +// .setNameFormat("demo-pool-%d").build(); +// ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 10, +// 1000, TimeUnit.MILLISECONDS, +// new LinkedBlockingQueue(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); +// //推送财务当月逾期转累欠凭证 +// Future future = pool.submit(() -> { +// pushLateVoucher(pushUseOrgSid); +// }); +// } catch (Exception e) { +// e.printStackTrace(); +// log.error("推送数据失败=========================" + e.getMessage()); +// return rb.setMsg("推送数据失败"); +// } } else { return rb.setMsg("暂无可更新的还款记录"); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java index c994591eee..c5c0bf78d2 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java @@ -1,16 +1,9 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.DifferenceVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.HistoryOverDueVo; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.*; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanVo; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.ScanRepaymentVo; -import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -66,4 +59,16 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper selUseOrgSidListForFundVoucher(); + + List getFundForVoucher(@Param("u") String u); + + List selUseOrgSidListForLateVoucher(); + + LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(@Param("bankContractNo") String bankContractNo,@Param("saleVehSid") String saleVehSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml index 401656f3b5..8d7a52db53 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml @@ -148,12 +148,13 @@ pd.overdue, t.repaidMoney, t.outstandingMoney, - IFNULL(v.bankBeInter, 0) AS bankBeInter, +-- 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 - LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid +-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid LEFT JOIN ( SELECT p.sid, IFNULL(( @@ -289,13 +290,14 @@ pd.salesOrderSid, t.repaidMoney, t.outstandingMoney, - IFNULL( v.bankBeInter, 0 ) AS bankBeInter, +-- 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 - LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid +-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid LEFT JOIN ( SELECT p.sid, @@ -384,13 +386,14 @@ pd.salesOrderSid, t.repaidMoney, t.outstandingMoney, - IFNULL( v.bankBeInter, 0 ) AS bankBeInter, +-- 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 - LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid +-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid LEFT JOIN ( SELECT p.sid, @@ -490,13 +493,14 @@ pd.salesOrderSid, t.repaidMoney, t.outstandingMoney, - IFNULL( v.bankBeInter, 0 ) AS bankBeInter, +-- 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 - LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid +-- LEFT JOIN loan_be_padsincere_veh AS v ON v.saleVehSid = pd.busVinSid LEFT JOIN ( SELECT p.sid, @@ -536,4 +540,80 @@ WHERE c.planSid = #{sid} + + + UPDATE + loan_repayment_plan_details + SET + paymentMoney = #{paymentMoney}, + paymentInterest = #{paymentInterest} + WHERE busVinSid = #{busVinSid} + AND period = #{period} + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java index 560a7649a3..2a8cb3f282 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java @@ -56,4 +56,18 @@ public class LoanRepaymentPlanDetailsRest implements LoanRepaymentPlanDetailsFei public ResultBean checkOverDue(String sid) { return loanRepaymentPlanDetailsService.checkOverDue(sid); } + + @Override + public ResultBean selVehSidAndPeriod(String busVinSid, String period) { + ResultBean rb = ResultBean.fireFail(); + LoanRepaymentPlanMoneyVo loanRepaymentPlanMoneyVo = loanRepaymentPlanDetailsService.selVehSidAndPeriod(busVinSid, period); + return rb.success().setData(loanRepaymentPlanMoneyVo); + } + + @Override + public ResultBean updateVehSidAndPeriod(String busVinSid, String period, String paymentMoney, String paymentInterest) { + ResultBean rb = ResultBean.fireFail(); + loanRepaymentPlanDetailsService.updateVehSidAndPeriod(busVinSid, period, paymentMoney, paymentInterest); + return rb.success(); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java index 186e7e5649..89d29502d7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java @@ -72,6 +72,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService savePlanDetails(LoanRepaymentPlanDetailsDto dto) { ResultBean rb = ResultBean.fireFail(); @@ -184,4 +185,27 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService selUseOrgSidListForFundVoucher() { + return baseMapper.selUseOrgSidListForFundVoucher(); + } + + public List getFundForVoucher(String u) { + return baseMapper.getFundForVoucher(u); + } + + public List selUseOrgSidListForLateVoucher() { + return baseMapper.selUseOrgSidListForLateVoucher(); + } + + public LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(String bankContractNo, String saleVehSid) { + return baseMapper.selOneByBankNoAndBusVinSid(bankContractNo,saleVehSid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java new file mode 100644 index 0000000000..daf4ba3489 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java @@ -0,0 +1,270 @@ +package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.math.Money; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign; +import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; +import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; +import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; +import com.yxt.anrui.riskcenter.api.loanfundday.LoanFundDay; +import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord; +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils.CollectorsUtil; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; +import com.yxt.anrui.riskcenter.biz.loanfundday.LoanFundDayService; +import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService; +import com.yxt.common.core.result.ResultBean; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @description: + * @author: fzz + * @date: 2024/1/30 + **/ +@Component +public class ScheduledRepaymentPlanDetailsService { + + @Autowired + private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService; + @Autowired + private BusSalesOrderFeign busSalesOrderFeign; + @Autowired + private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign; + @Autowired + private FinKingDeeFeign finKingDeeFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; + @Autowired + private BasePurchaseSystemFeign basePurchaseSystemFeign; + @Autowired + private LoanPushFundHistoryService loanPushFundHistoryService; + + + /** + * 次月1日23点推送上月尚未转累欠的记录 + */ + @Scheduled(cron = "0 0 23 1 * ?") + public void pushLateVoucher() { + List useOrgSidList = loanRepaymentPlanDetailsService.selUseOrgSidListForLateVoucher(); + useOrgSidList.removeAll(Collections.singleton(null)); + if (!useOrgSidList.isEmpty()) { + for (String u : useOrgSidList) { + List records = loanRepaymentPlanDetailsService.selListForLateVoucher(u); + List planSids = new ArrayList<>(); + if (!records.isEmpty()) { + GeneralVoucher generalVoucher = new GeneralVoucher(); + List voucherDetails = new ArrayList<>(); + for (LoanPlanDetailsVoForLateVoucher planDetails : records) { + if (null != planDetails) { + planSids.add(planDetails.getPlanSid()); + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + if (StringUtils.isNotBlank(planDetails.getUseOrgSid())) { + String useOrgSid = planDetails.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + } + if (StringUtils.isNotBlank(planDetails.getDeptSid())) { + String deptSid = planDetails.getDeptSid(); + SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + } + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); + BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData(); + if (null != salesOrder) { + if (null != busSalesOrderVehicle) { + String customerNumber = ""; + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List bdCustomers = new ArrayList<>(); + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(salesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String vinNo = busSalesOrderVehicle.getLinkNo(); + if (vinNo.length() > 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); + } + } else { + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); + } + } + // bdCustomers.add(bdCustomer); + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + voucherDetail.setCustomerCode(customerNumber); + } + } + if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) { + voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney())); + } + voucherDetails.add(voucherDetail); + } + } + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveLateVoucher(generalVoucher); + } + if (!planSids.isEmpty()) { + int i = loanRepaymentPlanDetailsService.updateOweState(planSids); + } + } + } + } + + + /** + * 月初1号计提上个月资金占用费 + * 1号1点 + */ + @Scheduled(cron = "0 0 1 1 * ?") + public void pushFundVoucher() { + List useOrgSidList = loanRepaymentPlanDetailsService.selUseOrgSidListForFundVoucher(); + useOrgSidList.removeAll(Collections.singleton(null)); + if (!useOrgSidList.isEmpty()) { + for (String u : useOrgSidList) { + List fundVouchers = loanRepaymentPlanDetailsService.getFundForVoucher(u); + List fundHistoryList = new ArrayList<>(); + if (!fundVouchers.isEmpty()) { + BigDecimal result = fundVouchers.stream() + // 将LoanPlanDetailsVoForFundVoucher对象的duePushMoney取出来map为Bigdecimal + .map(LoanPlanDetailsVoForFundVoucher::getDuePushMoney) + // 使用reduce()聚合函数,实现累加器 + .reduce(BigDecimal.ZERO, BigDecimal::add); + GeneralVoucher generalVoucher = new GeneralVoucher(); + List voucherDetails = new ArrayList<>(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(u).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail(); + voucherDetail1.setSceneCode("贷方"); + voucherDetail1.setDataTime(new DateTime()); + voucherDetail1.setAmount(result); + List deptVo = sysOrganizationFeign.selectChildrenListBySid(u).getData(); + if (!deptVo.isEmpty()) { + deptVo.stream().forEach(d -> { + if (d.getName().equals("金融服务部")) { + voucherDetail1.setDeptCode(d.getOrgCode()); + } + }); + } + voucherDetails.add(voucherDetail1); + for (LoanPlanDetailsVoForFundVoucher v : fundVouchers) { + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(v.getBusVinSid()).getData(); + if (null != busSalesOrderVehicle) { + BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData(); + String deptSid = salesOrder.getOrgSid(); + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + voucherDetail.setSceneCode("借方"); + voucherDetail.setDataTime(new DateTime()); + SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + if (null != salesOrder) { + if (null != busSalesOrderVehicle) { + String customerNumber = ""; + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List bdCustomers = new ArrayList<>(); + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(salesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String vinNo = busSalesOrderVehicle.getLinkNo(); + if (vinNo.length() > 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); + } + } else { + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); + } + } + // bdCustomers.add(bdCustomer); + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + voucherDetail.setCustomerCode(customerNumber); + } + } + voucherDetail.setAmount(v.getDuePushMoney()); + voucherDetails.add(voucherDetail); + } + LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory(); + BeanUtil.copyProperties(v, loanPushFundHistory, "id", "sid", "fund"); + if (null != v.getDuePushMoney()) { + loanPushFundHistory.setFund(v.getDuePushMoney()); + } + fundHistoryList.add(loanPushFundHistory); + } + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveFundVoucher(generalVoucher); + // 生成推送资金占用费历史记录 + if (!fundHistoryList.isEmpty()) { + loanPushFundHistoryService.saveLists(fundHistoryList); + } + } + } + } + } + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java index 0f13f8b877..251003f9c6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java @@ -34,4 +34,6 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper selHistoryBySid(@Param("sid") String sid); + + OtherPolicyVo selOtherPolicyByOrderSid(@Param("salesOrderSid") String salesOrderSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml index fd304239bb..b879aaf74a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml @@ -64,4 +64,15 @@ FROM loan_repayment_history WHERE scheduleSid = #{sid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java index 2a5aa379e6..588a538de1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java @@ -71,6 +71,7 @@ import com.yxt.messagecenter.api.message.MessagePushTransferDto; import com.yxt.messagecenter.api.message.PushMessageQuery; import com.yxt.messagecenter.api.message.PushSmsDto; import com.yxt.messagecenter.api.messagelist.MessageListDto; +import org.apache.poi.hpsf.Decimal; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -148,6 +149,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService solutionsDetailsVoResultBean = loanSolutionsService.selectDetailss(orderSid); + if (solutionsDetailsVoResultBean.getData() != null) { + BeanUtil.copyProperties(solutionsDetailsVoResultBean.getData(), solutionsDetailsssVo); + } if (StringUtils.isBlank(dto.getMainRepayDate())) { return rb.setMsg("请选择主金融产品首期还款日!"); } @@ -317,6 +328,18 @@ public class LoanRepaymentScheduleService extends MybatisBaseService 0) { + return rb.setMsg("填写的主产品月还与金融方案月还正负差值不能大于50"); + } + if (mainRepay.compareTo(f) < 0) { + return rb.setMsg("填写的主产品月还与金融方案月还正负差值不能大于50"); + } + } if (dto.getIsOtherPolicy().equals("1")) { if (StringUtils.isBlank(dto.getOtherRepayDate())) { return rb.setMsg("请选择其他融首期还款日!"); @@ -330,6 +353,18 @@ public class LoanRepaymentScheduleService extends MybatisBaseService 0) { + return rb.setMsg("填写的其他融月还与金融方案其他融月还正负差值不能大于50"); + } + if (otherRepay.compareTo(f) < 0) { + return rb.setMsg("填写的其他融月还与金融方案其他融月还正负差值不能大于50"); + } + } } if (null != loanRepaymentSchedule) { scheduleSid = loanRepaymentSchedule.getSid(); @@ -488,12 +523,20 @@ public class LoanRepaymentScheduleService extends MybatisBaseService SELECT - SUM(lrh.`actualMoney`) - FROM - loan_repayment_history lrh - LEFT JOIN loan_repayment_plan_details lrpd - ON lrh.`planDetailSid` = lrpd.`sid` + IFNULL(SUM(lrh.`actualMoney`),0) + FROM + (SELECT DISTINCT + scheduleSid + FROM + loan_repayment_plan_details + WHERE busVinSid = #{saleVehSid}) lrpd + LEFT JOIN loan_repayment_history lrh + ON lrpd.`scheduleSid` = lrh.`scheduleSid` WHERE lrh.updateState = '1' - AND lrpd.`busVinSid` = #{saleVehSid} @@ -69,7 +69,7 @@ lrpd.`period` FROM loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') <= CURDATE() + WHERE MONTH(lrpd.dueDate) = MONTH(CURDATE()) AND YEAR(lrpd.dueDate) = YEAR(CURDATE()) AND lrpd.`busVinSid` = #{saleVehSid} ORDER BY lrpd.`period` DESC LIMIT 1 @@ -77,31 +77,38 @@ SELECT - SUM(fund) + IFNULL(SUM(fund),0) FROM loan_fund_day WHERE busSid IN @@ -138,20 +146,21 @@ lrpd.sid FROM loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() - AND lrpd.`busVinSid` = #{saleVehSid}) + WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE()) + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyRest.java index 634f31ea3e..97248e9ff6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyRest.java @@ -83,9 +83,7 @@ public class LoanRestoreReportApplyRest implements LoanRestoreReportApplyFeign { @ApiOperation("根据sid批量删除") @DeleteMapping("/delBySids") public ResultBean delBySids(@RequestBody String[] sids) { - ResultBean rb = ResultBean.fireFail(); - loanRestoreReportApplyService.delBySids(sids); - return rb.success(); + return loanRestoreReportApplyService.delAllBySids(sids); } @Override diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java index 059afb0b28..6c42d508c5 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java @@ -338,21 +338,28 @@ public class LoanRestoreReportApplyService extends MybatisBaseService 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + return rb.success(); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.java new file mode 100644 index 0000000000..2794d87a95 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.riskcenter.biz.loanreturninboundapply; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.*; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Mapper +public interface LoanReturnInboundApplyMapper extends BaseMapper { + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int selectBySid(String join); + + int updateFlowFiled(Map beanToMap); + + List selectVehInbound(String useOrgSid); + + LoanReturnInboundApplyDetailsVo selectSidOne(String chooseSid); + + LoanReturnInboundApplyDetailsVo selectDetails(String sid); + + IPage getInboundList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("list") List busVinSid); + + BusSalesOrder selectOrder(String busVinSid); + + int selectByBusVinSid(String busVinSid); + + ReturnAppVo selectDetailsApp(String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.xml new file mode 100644 index 0000000000..789aa9c160 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyMapper.xml @@ -0,0 +1,212 @@ + + + + + + + + + UPDATE loan_return_inbound_apply + SET nodeState=#{nodeState} + + , taskDefKey=#{taskDefKey} + + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyRest.java new file mode 100644 index 0000000000..3b23e5a635 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyRest.java @@ -0,0 +1,106 @@ +package com.yxt.anrui.riskcenter.biz.loanreturninboundapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.*; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@RestController +@RequestMapping("v1/LoanReturnInboundApply") +@Api(tags = "交回车辆入库申请") +public class LoanReturnInboundApplyRest implements LoanReturnInboundApplyFeign { + + @Autowired + private LoanReturnInboundApplyService loanReturnInboundApplyService; + + @Override + public ResultBean> listPage(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanReturnInboundApplyService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean saveOrUpdate(LoanReturnInboundApplyDto dto) { + return loanReturnInboundApplyService.saveOrUpdateReturnInbound(dto); + } + + @Override + public ResultBean details(LoanReturnInboundApplyDetailsQuery query) { + return loanReturnInboundApplyService.details(query); + } + + @Override + public ResultBean> getInboundList(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanReturnInboundApplyService.getInboundList(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean delBySids(String[] sids) { + return loanReturnInboundApplyService.delAllBySids(sids); + } + + @Override + public ResultBean submitApply(SubmitReturnInbondApplyDto dto) { + return loanReturnInboundApplyService.submitApply(dto); + } + + @Override + public ResultBean complete(CompleteReturnInboundDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return loanReturnInboundApplyService.complete(bv); + } + + @Override + public ResultBean> getPreviousNodesForReject(ReturnInboundApplyNodeQuery query) { + return loanReturnInboundApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> getNextNodesForSubmit(ReturnInboundApplyNodeQuery query) { + return loanReturnInboundApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean taskReject(ReturnInboundApplyTaskQuery query) { + return loanReturnInboundApplyService.taskReject(query); + } + + @Override + public ResultBean revokeProcess(ReturnInboundApplyTaskQuery query) { + return loanReturnInboundApplyService.revokeProcess(query); + } + + @Override + public ResultBean breakProcess(ReturnInboundApplyTaskQuery query) { + return loanReturnInboundApplyService.breakProcess(query); + } + + @Override + public ResultBean delegate(ReturnInboundApplyDelegateQuery query) { + return loanReturnInboundApplyService.delegate(query); + } + + @Override + public ResultBean getDetailsApp(String sid) { + return loanReturnInboundApplyService.getDetailsApp(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java new file mode 100644 index 0000000000..978084fee7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java @@ -0,0 +1,762 @@ +package com.yxt.anrui.riskcenter.biz.loanreturninboundapply; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign; +import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +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.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.*; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; +import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; +import com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer.LoanReturnInboundTrailerService; +import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService; +import com.yxt.common.base.config.component.FileUploadComponent; +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 com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessageFlowVo; +import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import org.apache.commons.lang3.StringUtils; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Service +public class LoanReturnInboundApplyService extends MybatisBaseService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private LoanReturnInboundTrailerService loanReturnInboundTrailerService; + @Autowired + private FlowFeign flowFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private LoanRestoreReportApplyService loanRestoreReportApplyService; + @Autowired + private BaseVehmodelConfigFeign baseVehmodelConfigFeign; + @Autowired + private LoanReturnVehLedgerService loanReturnVehLedgerService; + + public PagerVo listPageVo(PagerQuery pq) { + LoanReturnInboundApplyQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + //分公司 + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("la.useOrgName", query.getUseOrgName()); + } + //申请人 + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("la.createByName", query.getCreateByName()); + } + //申请部门 + if (StringUtils.isNotBlank(query.getCreateDept())) { + qw.like("la.createDept", query.getCreateDept()); + } + //贷款合同编号 + if (StringUtils.isNotBlank(query.getLoanContractNo())) { + qw.like("la.loanContractNo", query.getLoanContractNo()); + } + //车架号 + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.like("la.vinNo", query.getVinNo()); + } + //车牌号 + if (StringUtils.isNotBlank(query.getVehMark())) { + qw.like("la.vehMark", query.getVehMark()); + } + //贷款人 + if (StringUtils.isNotBlank(query.getLoanName())) { + qw.like("la.loanName", query.getLoanName()); + } + //资方 + if (StringUtils.isNotBlank(query.getBankName())) { + qw.like("la.bankName", query.getBankName()); + } + //资方合同编号 + if (StringUtils.isNotBlank(query.getBankContractNo())) { + qw.like("la.bankContractNo", query.getBankContractNo()); + } + //客户名称 + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("la.customerName", query.getCustomerName()); + } + if (StringUtils.isNotBlank(query.getTralier())) { + qw.like("la.tralier", query.getTralier()); + } + //办结日期 + qw.apply(StringUtils.isNotBlank(query.getCloseDateStart()), "date_format (la.closeDate,'%Y-%m-%d') >= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (la.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')" + ); + //申请日期 + qw.apply(StringUtils.isNotBlank(query.getCreateDateStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateDateEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateDateEnd() + "','%Y-%m-%d')" + ); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.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("la.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("la.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("la.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("la.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("la.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + } + qw.orderByDesc("la.createTime"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + List paggingRecords = pagging.getRecords(); + paggingRecords.removeAll(Collections.singleton(null)); + if (!paggingRecords.isEmpty()) { + for (LoanReturnInboundApplyVo record : pagging.getRecords()) { + if (query.getUserSid().equals(record.getCreateBySid())) { + record.setAllowModify(true); + } else { + record.setAllowModify(false); + } + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + + public ResultBean taskReject(ReturnInboundApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(businessSid); + if (loanReturnInboundApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanReturnInboundApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + loanReturnInboundApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanReturnInboundApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(loanReturnInboundApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆入库申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(loanReturnInboundApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + + messageFlowableQuery.setMsgTitle("交回车辆入库申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + + public ResultBean saveOrUpdateReturnInbound(LoanReturnInboundApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + String orgPath = dto.getOrgPath(); + if (StringUtils.isBlank(sid)) { + LoanReturnInboundApply loanReturnInboundApply = new LoanReturnInboundApply(); + BeanUtil.copyProperties(dto, loanReturnInboundApply, "sid"); + loanReturnInboundApply.setCreateBySid(dto.getUserSid()); + loanReturnInboundApply.setOrgSidPath(dto.getOrgPath()); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData(); + loanReturnInboundApply.setUseOrgSid(useOrgSid); + //创建组织使用组织 + ResultBean organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid); + if (organizationResultBean.getData() != null) { + loanReturnInboundApply.setUseOrgName(organizationResultBean.getData().getName()); + } + //申请部门 + List orgList = Arrays.asList(orgPath.split("/")); + String deptSid = orgList.get(orgList.size() - 1); + ResultBean sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(deptSid); + if (sysOrganizationVoResultBean.getData() != null) { + loanReturnInboundApply.setCreateDept(sysOrganizationVoResultBean.getData().getName()); + loanReturnInboundApply.setCreateDeptSid(deptSid); + } + //根据用户sid查询人员姓名 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + loanReturnInboundApply.setCreateByName(userVoResultBean.getData().getName()); + List filss = dto.getFilesList(); + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanReturnInboundApply.setFiles(files); + } + if ("是".equals(dto.getTralier())) { + loanReturnInboundTrailerService.saveOrInsert(dto.getLoanReturnInboundTrailer(), loanReturnInboundApply.getSid()); + } + baseMapper.insert(loanReturnInboundApply); + sid = loanReturnInboundApply.getSid(); + } else { + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(sid); + if (loanReturnInboundApply == null) { + return rb.setMsg("该申请不存在"); + } + dto.setUserSid(loanReturnInboundApply.getCreateBySid()); + dto.setUseOrgSid(loanReturnInboundApply.getUseOrgSid()); + BeanUtil.copyProperties(dto, loanReturnInboundApply, "sid"); + List filss = dto.getFilesList(); + if (!filss.isEmpty()) { + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanReturnInboundApply.setFiles(files); + } + } else { + loanReturnInboundApply.setFiles(""); + } + if ("是".equals(dto.getTralier())) { + loanReturnInboundTrailerService.saveOrInsert(dto.getLoanReturnInboundTrailer(), loanReturnInboundApply.getSid()); + } else { + loanReturnInboundTrailerService.deleteByMainSid(sid); + } + baseMapper.updateById(loanReturnInboundApply); + } + return rb.success().setData(sid); + } + + public ResultBean details(LoanReturnInboundApplyDetailsQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanReturnInboundApplyDetailsVo loanReturnInboundApplyDetailsVo = new LoanReturnInboundApplyDetailsVo(); + String sid = query.getSid(); + String userSid = query.getUserSid(); + String orgPath = query.getOrgPath(); + String chooseSid = query.getChooseSid(); + if (StringUtils.isBlank(sid)) {//新增初始化 + //根据用户查询发起人、发起部门、发起日期为当前日期 + String deptName = ""; + String deptSid = ""; + String useOrgSid = ""; + if (StringUtils.isNotBlank(orgPath)) { + List 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(); + } + //根据用户sid查询人员姓名 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(userSid); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据交回车辆事前报备申请sid查询数据 + loanReturnInboundApplyDetailsVo = baseMapper.selectSidOne(chooseSid); + AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(loanReturnInboundApplyDetailsVo.getBusVinSid()); + if (alrepaidAndArrVo != null) { + BeanUtil.copyProperties(alrepaidAndArrVo, loanReturnInboundApplyDetailsVo); + } + loanReturnInboundApplyDetailsVo.setCreateDept(deptName); + loanReturnInboundApplyDetailsVo.setCreateDeptSid(deptSid); + loanReturnInboundApplyDetailsVo.setCreateByName(userVoResultBean.getData().getName()); + loanReturnInboundApplyDetailsVo.setCreateDate(DateUtil.today()); + loanReturnInboundApplyDetailsVo.setOrgPath(query.getOrgPath()); + loanReturnInboundApplyDetailsVo.setUserSid(query.getUserSid()); + loanReturnInboundApplyDetailsVo.setUseOrgSid(useOrgSid); + ResultBean baseVehmodelVoResultBean = baseVehmodelConfigFeign.selectOne(loanReturnInboundApplyDetailsVo.getModelSid(), loanReturnInboundApplyDetailsVo.getConfigSid(), loanReturnInboundApplyDetailsVo.getUseOrgSid()); + if (baseVehmodelVoResultBean.getSuccess()) { + BaseVehmodelVo baseVehmodelVo = baseVehmodelVoResultBean.getData(); + if (baseVehmodelVo != null) { + loanReturnInboundApplyDetailsVo.setModelConfigSid(baseVehmodelVo.getModelConfigSid()); + BusSalesOrder busSalesOrder = baseMapper.selectOrder(loanReturnInboundApplyDetailsVo.getBusVinSid()); + if (busSalesOrder != null) { + loanReturnInboundApplyDetailsVo.setGuildPrice("2".equals(busSalesOrder.getPayTypeKey()) ? baseVehmodelVo.getManufactorSettlementPrice() : baseVehmodelVo.getGuidedPrice()); + } + } + } + + } else {//编辑初始化 + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(sid); + if (loanReturnInboundApply == null) { + return rb.setMsg("该申请不存在"); + } + loanReturnInboundApplyDetailsVo = baseMapper.selectDetails(sid); + String files = loanReturnInboundApplyDetailsVo.getFiles(); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(files)) { + List fileList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + for (int i = 0; i < fileList.size(); i++) { + UrlQuery urlQuery = new UrlQuery(); + urlQuery.setUrl(fileList.get(i)); + list.add(urlQuery); + } + loanReturnInboundApplyDetailsVo.setFilesList(list); + } + if ("是".equals(loanReturnInboundApplyDetailsVo.getTralier())) { + LoanReturnInboundTrailerDto loanReturnInboundTrailerDto = new LoanReturnInboundTrailerDto(); + LoanReturnInboundTrailer loanReturnInboundTrailer = loanReturnInboundTrailerService.selectByMainSid(sid); + if (loanReturnInboundTrailer != null) { + BeanUtil.copyProperties(loanReturnInboundTrailer, loanReturnInboundTrailerDto); + } + loanReturnInboundApplyDetailsVo.setLoanReturnInboundTrailer(loanReturnInboundTrailerDto); + } + loanReturnInboundApplyDetailsVo.setOrgPath(loanReturnInboundApply.getOrgSidPath()); + loanReturnInboundApplyDetailsVo.setUserSid(loanReturnInboundApply.getCreateBySid()); + ResultBean baseVehmodelVoResultBean = baseVehmodelConfigFeign.selectOne(loanReturnInboundApplyDetailsVo.getModelSid(), loanReturnInboundApplyDetailsVo.getConfigSid(), loanReturnInboundApplyDetailsVo.getUseOrgSid()); + if (baseVehmodelVoResultBean.getSuccess()) { + BaseVehmodelVo baseVehmodelVo = baseVehmodelVoResultBean.getData(); + if (baseVehmodelVo != null) { + loanReturnInboundApplyDetailsVo.setModelConfigSid(baseVehmodelVo.getModelConfigSid()); + BusSalesOrder busSalesOrder = baseMapper.selectOrder(loanReturnInboundApplyDetailsVo.getBusVinSid()); + if (busSalesOrder != null) { + loanReturnInboundApplyDetailsVo.setGuildPrice("2".equals(busSalesOrder.getPayTypeKey()) ? baseVehmodelVo.getManufactorSettlementPrice() : baseVehmodelVo.getGuidedPrice()); + } + } + } + loanReturnInboundApplyDetailsVo.setSid(sid); + loanReturnInboundApplyDetailsVo.setProcInstId(loanReturnInboundApply.getProcInstId()); + loanReturnInboundApplyDetailsVo.setTaskId(loanReturnInboundApply.getTaskId()); + + } + return rb.success().setData(loanReturnInboundApplyDetailsVo); + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); + } + List sidss = Arrays.asList(sids); + for (int i = 0; i < sidss.size(); i++) { + loanReturnInboundTrailerService.deleteByMainSid(sidss.get(i)); + } + delBySids(sids); + return rb.success().setMsg("删除成功"); + } + + public ResultBean submitApply(SubmitReturnInbondApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanReturnInboundApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //根据busVinSid查询车辆是否已入库或审批中 + int count = baseMapper.selectByBusVinSid(dto.getBusVinSid()); + if (count > 0) { + return rb.setMsg("该车辆交回入库审批中或已入库"); + } + ResultBean resultBean = saveOrUpdateReturnInbound(dto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + String businessSid = resultBean.getData(); + loanReturnInboundApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //用户的部门全路径sid + bv.setOrgSidPath(loanReturnInboundApply.getOrgSidPath()); + bv.setBusinessSid(businessSid); + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); + if (r == 1) { + //ToDo:流程定义id + bv.setModelId(ProcDefEnum.LOANRETUENINBOUNDAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + loanReturnInboundApply = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + LoanReturnInboundApply finalLoanReturnInboundApply = loanReturnInboundApply; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆入库申请"); + messageFlowableQuery.setMsgContent(finalLoanReturnInboundApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆入库申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(loanReturnInboundApply.getTaskId()); + bv.setTaskDefKey(loanReturnInboundApply.getTaskDefKey()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + bv.setOrgSidPath(loanReturnInboundApply.getOrgSidPath()); + bv.setModelId(loanReturnInboundApply.getProcDefId()); + if (bv.getTaskId().equals(loanReturnInboundApply.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + loanReturnInboundApply = fetchBySid(businessSid); + loanReturnInboundApply.setCloseDate(DateUtil.today()); + baseMapper.updateById(loanReturnInboundApply); + //推送到交回车辆台账 + loanReturnVehLedgerService.saveVehLedger(businessSid); + + } else { + //极光推送 + loanReturnInboundApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanReturnInboundApply.getProcDefId()); + messageFlowVo.setProcInsId(loanReturnInboundApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆入库申请"); + messageFlowableQuery.setMsgContent(loanReturnInboundApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆入库申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + private int submitBusinessData(SubmitReturnInbondApplyDto dto, LoanReturnInboundApply loanReturnInboundApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanReturnInboundApply != null) { + String businessTaskId = loanReturnInboundApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + } + return r; + } + + private int updateFlowFiled(Map beanToMap) { + return baseMapper.updateFlowFiled(beanToMap); + } + + public ResultBean> getPreviousNodesForReject(ReturnInboundApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanReturnInboundApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), ReturnInboundApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(ReturnInboundApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanReturnInboundApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), ReturnInboundApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean revokeProcess(ReturnInboundApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanReturnInboundApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean breakProcess(ReturnInboundApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanReturnInboundApply.getTaskId(); + if (query.getUserSid().equals(loanReturnInboundApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + } + + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean delegate(ReturnInboundApplyDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } + + public PagerVo getInboundList(PagerQuery pq) { + LoanReturnQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + List busVinSid = new ArrayList<>(); + if (query != null) { + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.like("la.vinNo", query.getVinNo()); + } + if (StringUtils.isNotBlank(query.getVehMark())) { + qw.like("la.carNum", query.getVehMark()); + } + if (StringUtils.isNotBlank(query.getOrgPath())) { + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData(); + qw.eq("la.useOrgSid", useOrgSid); + busVinSid = baseMapper.selectVehInbound(useOrgSid); + busVinSid.removeAll(Collections.singleton(null)); + } + qw.eq("la.nodeState", "已办结"); + + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.getInboundList(page, qw, busVinSid); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean getDetailsApp(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanReturnInboundApply loanReturnInboundApply = fetchBySid(sid); + if (loanReturnInboundApply == null) { + return rb.setMsg("该交回车辆入库申请不存在"); + } + ReturnAppVo returnAppVo = baseMapper.selectDetailsApp(sid); + if ("是".equals(loanReturnInboundApply.getTralier())) { + LoanReturnInboundTrailer loanReturnInboundTrailer = loanReturnInboundTrailerService.selectByMainSid(sid); + returnAppVo.setVinNoTrailer(loanReturnInboundTrailer.getVinNo()); + returnAppVo.setVehMarkTrailer(loanReturnInboundTrailer.getVehMark()); + returnAppVo.setTrailerType(loanReturnInboundTrailer.getTrailerType()); + returnAppVo.setInboundMoneyTrailer(String.valueOf(loanReturnInboundTrailer.getInboundMoney())); + returnAppVo.setRemarksTrailer(loanReturnInboundTrailer.getRemarks()); + } + String files = loanReturnInboundApply.getFiles(); + if (StringUtils.isNotBlank(files)) { + List fileList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + returnAppVo.setFilesList(fileList); + } + return rb.success().setData(returnAppVo); + } + + /* public ResultBean> getInboundList(String useOrgSid) { + ResultBean> rb = ResultBean.fireFail(); + List busVinSid = baseMapper.selectVehInbound(useOrgSid); + busVinSid.removeAll(Collections.singleton(null)); + List list = baseMapper.getInboundList(useOrgSid, busVinSid); + list.removeAll(Collections.singleton(null)); + return rb.success().setData(list); + }*/ +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.java new file mode 100644 index 0000000000..1f7ceed635 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.java @@ -0,0 +1,17 @@ +package com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Mapper +public interface LoanReturnInboundTrailerMapper extends BaseMapper { + int deleteByMainSid(String sid); + + LoanReturnInboundTrailer selectByMainSid(String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.xml new file mode 100644 index 0000000000..88fcc55033 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerMapper.xml @@ -0,0 +1,16 @@ + + + + + delete + from loan_return_inbound_trailer + where mainSid = #{sid} + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerService.java new file mode 100644 index 0000000000..34646cc0b5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundtrailer/LoanReturnInboundTrailerService.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/16 + **/ +@Service +public class LoanReturnInboundTrailerService extends MybatisBaseService { + public void saveOrInsert(LoanReturnInboundTrailerDto dto, String sid) { + baseMapper.deleteByMainSid(sid); + LoanReturnInboundTrailer loanReturnInboundTrailer = new LoanReturnInboundTrailer(); + BeanUtil.copyProperties(dto, loanReturnInboundTrailer, "sid"); + loanReturnInboundTrailer.setMainSid(sid); + baseMapper.insert(loanReturnInboundTrailer); + } + + public void deleteByMainSid(String sid) { + baseMapper.deleteByMainSid(sid); + } + + public LoanReturnInboundTrailer selectByMainSid(String sid) { + return baseMapper.selectByMainSid(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.java new file mode 100644 index 0000000000..9bdaf96491 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.riskcenter.biz.loanreturnvehledger; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedgerQuery; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedgerVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/19 + **/ +@Mapper +public interface LoanReturnVehLedgerMapper extends BaseMapper { + LoanReturnVehLedger selectByBusVinSid(String busVinSid); + + BusSalesOrderVehicle selectBusVinSid(String busVinSid); + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + LoanReturnVehLedger selectByPSid(String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.xml new file mode 100644 index 0000000000..a8c18f4d02 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerRest.java new file mode 100644 index 0000000000..b95c976ee5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerRest.java @@ -0,0 +1,42 @@ +package com.yxt.anrui.riskcenter.biz.loanreturnvehledger; + +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/22 + **/ +@RestController +@RequestMapping("v1/LoanReturnVehLedger") +@Api(tags = "交回车辆台账管理") +public class LoanReturnVehLedgerRest implements LoanReturnVehLedgerFeign { + + @Autowired + private LoanReturnVehLedgerService loanReturnVehLedgerService; + + @Override + public ResultBean> pageList(PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanReturnVehLedgerService.listPageVo(pagerQuery); + return rb.success().setData(pv); + } + + @Override + public ResultBean update(LoanReturnVehLedgerDto dto) { + return loanReturnVehLedgerService.updateDto(dto); + } + + @Override + public ResultBean getDetails(String sid) { + return loanReturnVehLedgerService.getDetails(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerService.java new file mode 100644 index 0000000000..bab4f11d87 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturnvehledger/LoanReturnVehLedgerService.java @@ -0,0 +1,267 @@ +package com.yxt.anrui.riskcenter.biz.loanreturnvehledger; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApply; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyQuery; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.*; +import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; +import com.yxt.anrui.riskcenter.biz.loanreturninboundapply.LoanReturnInboundApplyService; +import com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer.LoanReturnInboundTrailerService; +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 java.util.Collections; +import java.util.Date; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/19 + **/ +@Service +public class LoanReturnVehLedgerService extends MybatisBaseService { + + + @Autowired + private LoanReturnInboundApplyService loanReturnInboundApplyService; + @Autowired + private LoanReturnInboundTrailerService loanReturnInboundTrailerService; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private LoanRestoreReportApplyService loanRestoreReportApplyService; + + public ResultBean saveVehLedger(String businessSid) { + ResultBean rb = ResultBean.fireFail(); + //查询交回入库申请办结的主车信息 + LoanReturnInboundApply loanReturnInboundApply = loanReturnInboundApplyService.fetchBySid(businessSid); + LoanReturnInboundTrailer loanReturnInboundTrailer = null; + if ("是".equals(loanReturnInboundApply.getTralier())) { + //查询挂车信息 + loanReturnInboundTrailer = loanReturnInboundTrailerService.selectByMainSid(businessSid); + } + //ToDo:查询该车是否已入库,若已入库则不重复入库 + LoanReturnVehLedger loanReturnVehLedger = baseMapper.selectByBusVinSid(loanReturnInboundApply.getBusVinSid()); + if (loanReturnVehLedger == null) { + loanReturnVehLedger = new LoanReturnVehLedger(); + loanReturnVehLedger.setBusSid(businessSid); + loanReturnVehLedger.setVinSid(loanReturnInboundApply.getVinSid()); + loanReturnVehLedger.setVinNo(loanReturnInboundApply.getVinNo()); + loanReturnVehLedger.setVehMark(loanReturnInboundApply.getVehMark()); + loanReturnVehLedger.setVehType("主车"); + loanReturnVehLedger.setVehModel(loanReturnInboundApply.getModelName()); + loanReturnVehLedger.setVehModelSid(loanReturnInboundApply.getModelSid()); + loanReturnVehLedger.setConfigSid(loanReturnInboundApply.getConfigSid()); + loanReturnVehLedger.setConfigName(loanReturnInboundApply.getConfigName()); + loanReturnVehLedger.setCustomer(loanReturnInboundApply.getCustomerName()); + loanReturnVehLedger.setCustomerSid(loanReturnInboundApply.getCustomerSid()); + loanReturnVehLedger.setBorrowerName(loanReturnInboundApply.getLoanName()); + loanReturnVehLedger.setBorrowerSid(loanReturnInboundApply.getLoanSid()); + loanReturnVehLedger.setLocation(loanReturnInboundApply.getLocationName()); + loanReturnVehLedger.setDisposal(ReturnVehType.Disposal.WCZ.getRemarks()); + loanReturnVehLedger.setDisposalKey(ReturnVehType.Disposal.WCZ.getCode()); + loanReturnVehLedger.setInboundMoney(loanReturnInboundApply.getInboundMoney()); + loanReturnVehLedger.setInboundDate(new Date()); + loanReturnVehLedger.setUseOrgSid(loanReturnInboundApply.getUseOrgSid()); + loanReturnVehLedger.setUseOrgName(loanReturnInboundApply.getUseOrgName()); + loanReturnVehLedger.setOrgSidPath(loanReturnInboundApply.getOrgSidPath()); + loanReturnVehLedger.setPSid("0"); + loanReturnVehLedger.setBusVinSid(loanReturnInboundApply.getBusVinSid()); + BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectBusVinSid(loanReturnVehLedger.getBusVinSid()); + loanReturnVehLedger.setSaleOrderSid(busSalesOrderVehicle.getSalesOrderSid()); + loanReturnVehLedger.setStockState(ReturnVehType.ReturnVehicleState.KC.getRemarks()); + loanReturnVehLedger.setStockStateKey(ReturnVehType.ReturnVehicleState.KC.getCode()); + baseMapper.insert(loanReturnVehLedger); + if (loanReturnInboundTrailer != null) { + LoanReturnVehLedger loanReturnVehLedgerTrailer = new LoanReturnVehLedger(); + loanReturnVehLedgerTrailer.setVehMark(loanReturnInboundTrailer.getVehMark()); + loanReturnVehLedgerTrailer.setVinNo(loanReturnInboundTrailer.getVinNo()); + loanReturnVehLedgerTrailer.setVinSid(loanReturnInboundTrailer.getVinSid()); + loanReturnVehLedgerTrailer.setVehModel(loanReturnInboundTrailer.getTrailerType()); + loanReturnVehLedgerTrailer.setUseOrgName(loanReturnInboundApply.getUseOrgName()); + loanReturnVehLedgerTrailer.setUseOrgSid(loanReturnInboundApply.getUseOrgSid()); + loanReturnVehLedgerTrailer.setPSid(loanReturnVehLedger.getSid()); + loanReturnVehLedgerTrailer.setCustomer(loanReturnInboundApply.getCustomerName()); + loanReturnVehLedgerTrailer.setCustomerSid(loanReturnInboundApply.getCustomerSid()); + loanReturnVehLedgerTrailer.setStockState(ReturnVehType.ReturnVehicleState.KC.getRemarks()); + loanReturnVehLedgerTrailer.setStockStateKey(ReturnVehType.ReturnVehicleState.KC.getCode()); + loanReturnVehLedgerTrailer.setBorrowerSid(loanReturnInboundApply.getLoanSid()); + loanReturnVehLedgerTrailer.setBorrowerName(loanReturnInboundApply.getLoanName()); + loanReturnVehLedgerTrailer.setDisposal(ReturnVehType.Disposal.WCZ.getRemarks()); + loanReturnVehLedgerTrailer.setDisposalKey(ReturnVehType.Disposal.WCZ.getCode()); + loanReturnVehLedgerTrailer.setInboundMoney(loanReturnInboundApply.getInboundMoney()); + loanReturnVehLedgerTrailer.setInboundDate(new Date()); + loanReturnVehLedgerTrailer.setOrgSidPath(loanReturnInboundApply.getOrgSidPath()); + loanReturnVehLedgerTrailer.setBusSid(businessSid); + loanReturnVehLedgerTrailer.setVehType("挂车"); + loanReturnVehLedgerTrailer.setLocation(loanReturnVehLedger.getLocation()); + loanReturnVehLedgerTrailer.setLocationSid(loanReturnVehLedger.getLocationSid()); + baseMapper.insert(loanReturnVehLedgerTrailer); + } + } + + return rb.success(); + } + + public PagerVo listPageVo(PagerQuery pagerQuery) { + LoanReturnVehLedgerQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + //分公司 + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("lv.useOrgName", query.getUseOrgName()); + } + //车架号 + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.like("lv.vinNo", query.getVinNo()); + } + //车牌号 + if (StringUtils.isNotBlank(query.getVehMark())) { + qw.like("lv.vehMark", query.getVehMark()); + } + //车辆类型 + if (StringUtils.isNotBlank(query.getVehType())) { + qw.like("lv.vehType", query.getVehType()); + } + //车型 + if (StringUtils.isNotBlank(query.getVehModel())) { + qw.like("lv.vehModel", query.getVehModel()); + } + //客户名称 + if (StringUtils.isNotBlank(query.getCustomer())) { + qw.like("lv.customer", query.getCustomer()); + } + //贷款人 + if (StringUtils.isNotBlank(query.getBorrowerName())) { + qw.like("lv.borrowerName", query.getBorrowerName()); + } + //存放地点 + if (StringUtils.isNotBlank(query.getLocation())) { + qw.like("lv.location", query.getLocation()); + } + //处置方式 + if (StringUtils.isNotBlank(query.getDisposalKey())) { + qw.eq("lv.disposalKey", query.getDisposalKey()); + } + //入库日期开始 + qw.apply(StringUtils.isNotBlank(query.getInboundDateStart()), "date_format (lv.inboundDate,'%Y-%m-%d') >= date_format('" + query.getInboundDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getInboundDateEnd()), "date_format (lv.inboundDate,'%Y-%m-%d') <= date_format('" + query.getInboundDateEnd() + "','%Y-%m-%d')" + ); + //出库日期开始 + qw.apply(StringUtils.isNotBlank(query.getOutboundDateStart()), "date_format (lv.outboundDate,'%Y-%m-%d') >= date_format('" + query.getOutboundDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getOutboundDateEnd()), "date_format (lv.outboundDate,'%Y-%m-%d') <= date_format('" + query.getOutboundDateEnd() + "','%Y-%m-%d')" + ); + //库存状态 + if (StringUtils.isNotBlank(query.getVehicleStateKey())) { + qw.eq("lv.stockStateKey", query.getVehicleStateKey()); + } + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.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("lv.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("lv.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("lv.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("lv.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("lv.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + } + qw.orderByDesc("lv.createTime"); + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.selectPageVo(page, qw); + List paggingRecords = pagging.getRecords(); + paggingRecords.removeAll(Collections.singleton(null)); + if (!paggingRecords.isEmpty()) { + for (LoanReturnVehLedgerVo record : pagging.getRecords()) { + if ("主车".equals(record.getVehType())) { + AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(record.getBusVinSid()); + if (alrepaidAndArrVo != null) { + record.setOverMoney(alrepaidAndArrVo.getCurrentBeMoney()); + record.setNotBecomeDueMoney(alrepaidAndArrVo.getUnexpiredMoney()); + } + } + + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean updateDto(LoanReturnVehLedgerDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + LoanReturnVehLedger loanReturnVehLedger = fetchBySid(sid); + if (loanReturnVehLedger == null) { + return rb.setMsg("该车辆台账不存在"); + } + BeanUtil.copyProperties(dto, loanReturnVehLedger, "sid"); + baseMapper.updateById(loanReturnVehLedger); + return rb.success(); + } + + public ResultBean getDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanReturnVehLedger loanReturnVehLedger = fetchBySid(sid); + LoanReturnLedgerVo loanReturnLedgerVo = new LoanReturnLedgerVo(); + BeanUtil.copyProperties(loanReturnVehLedger, loanReturnLedgerVo); + if ("主车".equals(loanReturnVehLedger.getVehType())) { + AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(loanReturnVehLedger.getBusVinSid()); + if (alrepaidAndArrVo != null) { + loanReturnLedgerVo.setOverMoney(alrepaidAndArrVo.getCurrentBeMoney()); + loanReturnLedgerVo.setNotBecomeDueMoney(alrepaidAndArrVo.getUnexpiredMoney()); + } + } + loanReturnLedgerVo.setVehicleState(loanReturnVehLedger.getStockState()); + loanReturnLedgerVo.setVehicleStateKey(loanReturnVehLedger.getStockStateKey()); + return rb.success().setData(loanReturnLedgerVo); + } + + public LoanReturnVehLedger selectByPSid(String sid) { + return baseMapper.selectByPSid(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java new file mode 100644 index 0000000000..4b31e21e0e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.SecondarySalesAppVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Mapper +public interface LoanSecondarySalesApplyMapper extends BaseMapper { + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw,@Param("vinNo") String vinNo,@Param("vehMark") String vehMark); + + int updateFlowFiled(Map beanToMap); + + int selectBySid(String join); + + LoanSecondarySalesApplyDetailsVo selectDetails(String sid); + + SecondarySalesAppVo getAppDetails(String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml new file mode 100644 index 0000000000..5922820af0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml @@ -0,0 +1,135 @@ + + + + + + + UPDATE loan_secondary_sales_apply + SET nodeState=#{nodeState} + + , taskDefKey=#{taskDefKey} + + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java new file mode 100644 index 0000000000..3bbe37b1bb --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java @@ -0,0 +1,99 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@RestController +@RequestMapping("v1/LoanSecondarySalesApply") +@Api(tags = "二次销售") +public class LoanSecondarySalesApplyRest implements LoanSecondarySalesApplyFeign { + + @Autowired + private LoanSecondarySalesApplyService loanSecondarySalesApplyService; + + @Override + public ResultBean> listPage(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanSecondarySalesApplyService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean saveOrUpdate(LoanSecondarySalesApplyDto dto) { + return loanSecondarySalesApplyService.saveOrUpdateSecondarySales(dto); + } + + @Override + public ResultBean details(LoanSecondarySalesApplyDetailsQuery query) { + return loanSecondarySalesApplyService.details(query); + } + + @Override + public ResultBean delBySids(String[] sids) { + return loanSecondarySalesApplyService.delAllBySids(sids); + } + + @Override + public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) { + return loanSecondarySalesApplyService.submitApply(dto); + } + + @Override + public ResultBean complete(CompleteLoanSecondarySalesApplyDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return loanSecondarySalesApplyService.complete(bv, query.getVehicleEvaluation()); + } + + @Override + public ResultBean> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) { + return loanSecondarySalesApplyService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) { + return loanSecondarySalesApplyService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) { + return loanSecondarySalesApplyService.taskReject(query); + } + + @Override + public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) { + return loanSecondarySalesApplyService.revokeProcess(query); + } + + @Override + public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery query) { + return loanSecondarySalesApplyService.breakProcess(query); + } + + @Override + public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) { + return loanSecondarySalesApplyService.delegate(query); + } + + @Override + public ResultBean getAppDetails(String sid) { + return loanSecondarySalesApplyService.getAppDetails(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java new file mode 100644 index 0000000000..c1d19688d4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java @@ -0,0 +1,965 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +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.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApply; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyQuery; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.ReturnInboundApplyNodeVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; +import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; +import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; +import com.yxt.anrui.riskcenter.biz.loanreturninboundapply.LoanReturnInboundApplyService; +import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostMapper; +import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService; +import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsMapper; +import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; +import com.yxt.anrui.riskcenter.biz.loansolutionsdetail.LoanSolutionsDetailService; +import com.yxt.common.base.config.component.FileUploadComponent; +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 com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessageFlowVo; +import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import org.apache.commons.lang3.StringUtils; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Service +public class LoanSecondarySalesApplyService extends MybatisBaseService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private LoanSecondarySalesCostService loanSecondarySalesCostService; + @Autowired + private LoanSecondarySalesVehService loanSecondarySalesVehService; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private LoanReturnVehLedgerService loanReturnVehLedgerService; + @Autowired + private LoanReturnInboundApplyService loanReturnInboundApplyService; + @Autowired + private LoanRestoreReportApplyService loanRestoreReportApplyService; + @Autowired + private LoanSolutionsMapper loanSolutionsMapper; + @Autowired + private LoanSolutionsDetailService loanSolutionsDetailService; + @Autowired + private LoanSecondarySalesCostMapper loanSecondarySalesCostMapper; + + public PagerVo listPageVo(PagerQuery pq) { + LoanSecondarySalesApplyQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + //分公司 + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("la.useOrgName", query.getUseOrgName()); + } + //申请人 + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("la.createByName", query.getCreateByName()); + } + //申请部门 + if (StringUtils.isNotBlank(query.getCreateDept())) { + qw.like("la.createDept", query.getCreateDept()); + } + //贷款合同编号 + if (StringUtils.isNotBlank(query.getLoanContractNo())) { + qw.like("la.loanContractNo", query.getLoanContractNo()); + } + //贷款人 + if (StringUtils.isNotBlank(query.getLoanName())) { + qw.like("la.loanName", query.getLoanName()); + } + //资方 + if (StringUtils.isNotBlank(query.getBankName())) { + qw.like("la.bankName", query.getBankName()); + } + //资方合同编号 + if (StringUtils.isNotBlank(query.getBankContractNo())) { + qw.like("la.bankContractNo", query.getBankContractNo()); + } + //客户名称 + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("la.customerName", query.getCustomerName()); + } + + //办结日期 + qw.apply(StringUtils.isNotBlank(query.getCloseDateStart()), "date_format (la.closeDate,'%Y-%m-%d') >= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (la.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')" + ); + //申请日期 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + if (StringUtils.isNotBlank(query.getArrearsAll())) { + qw.like("lc.arrearsAll", query.getArrearsAll()); + } + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.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("la.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("la.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("la.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("la.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("la.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw, query.getVinNo(), query.getVehMark()); + List paggingRecords = pagging.getRecords(); + paggingRecords.removeAll(Collections.singleton(null)); + if (!paggingRecords.isEmpty()) { + for (LoanSecondarySalesApplyVo record : pagging.getRecords()) { + if (query.getUserSid().equals(record.getCreateBySid())) { + record.setAllowModify(true); + } else { + record.setAllowModify(false); + } + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanSecondarySalesApply.getProcDefId()); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + + appMap.put("sid", query.getBusinessSid()); + variables.put("app", appMap); + bv.setFormVariables(variables); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanSecondarySalesApply.getProcDefId()); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + if ("Activity_0rm74ey".equals(bv.getTaskDefKey())) {//风控处置岗审批 + if (StringUtils.isBlank(query.getVehicleEvaluation())) { + return rb.setMsg("请填写评估价格"); + } + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if (new BigDecimal(query.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + } + appMap.put("sid", query.getBusinessSid()); + variables.put("app", appMap); + bv.setFormVariables(variables); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid); + if (loanSecondarySalesApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + loanSecondarySalesApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanSecondarySalesApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(loanSecondarySalesApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次销售申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + + messageFlowableQuery.setMsgTitle("交回车辆二次销售申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(query.getBusinessSid()); + if (loanSecondarySalesCost != null) { + if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + + appMap.put("sid", query.getBusinessSid()); + variables.put("app", appMap); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + + private int updateFlowFiled(Map beanToMap) { + return baseMapper.updateFlowFiled(beanToMap); + } + + public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (query.getUserSid().equals(loanSecondarySalesApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + } + + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } + + public ResultBean complete(BusinessVariables bv, String price) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + if ("Activity_0rm74ey".equals(bv.getTaskDefKey())) {//风控处置岗审批 + if (StringUtils.isBlank(price)) { + return rb.setMsg("请填写评估价格"); + } + //保存评估价格 + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(businessSid); + loanSecondarySalesCost.setVehicleEvaluation(new BigDecimal(price)); + loanSecondarySalesCostService.updateById(loanSecondarySalesCost); + if (loanSecondarySalesCost != null) { + if ((loanSecondarySalesCost.getVehicleEvaluation() == null ? BigDecimal.ZERO : loanSecondarySalesCost.getVehicleEvaluation()).compareTo(loanSecondarySalesCost.getVehPrice()) > 0) { + variables.put("isTrue", true); + } else { + variables.put("isTrue", false); + } + } + } + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + bv.setOrgSidPath(loanSecondarySalesApply.getOrgSidPath()); + bv.setModelId(loanSecondarySalesApply.getProcDefId()); + if (bv.getTaskId().equals(loanSecondarySalesApply.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + loanSecondarySalesApply = fetchBySid(businessSid); + loanSecondarySalesApply.setCloseDate(DateUtil.today()); + baseMapper.updateById(loanSecondarySalesApply); + + } else { + //极光推送 + loanSecondarySalesApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanSecondarySalesApply.getProcDefId()); + messageFlowVo.setProcInsId(loanSecondarySalesApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次销售申请"); + messageFlowableQuery.setMsgContent(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆二次销售申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanSecondarySalesApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //ToDo:验证车辆是否已处置 + List loanSecondarySalesVehVoList = dto.getLoanSecondarySalesVehVoList(); + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + if (loanSecondarySalesVehVoList.isEmpty()) { + return rb.setMsg("请选择车辆"); + } + List vinNoLists = new ArrayList<>(); + List chooseSidList = loanSecondarySalesVehVoList.stream().map(v -> v.getBusSid()).collect(Collectors.toList()); + for (int i = 0; i < chooseSidList.size(); i++) { + String s = chooseSidList.get(i); + LoanReturnVehLedger loanReturnVehLedger = loanReturnVehLedgerService.fetchBySid(s); + if (!"未处置".equals(loanReturnVehLedger.getDisposal())) { + vinNoLists.add(loanReturnVehLedger.getVinNo()); + } + } + vinNoLists.removeAll(Collections.singleton(null)); + if (!vinNoLists.isEmpty()) { + return rb.setMsg(String.join(",", vinNoLists) + "车架号处置方式非未处置,不能二次销售"); + } + ResultBean resultBean = saveOrUpdateSecondarySales(dto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + String businessSid = resultBean.getData(); + loanSecondarySalesApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //用户的部门全路径sid + bv.setOrgSidPath(loanSecondarySalesApply.getOrgSidPath()); + bv.setBusinessSid(businessSid); + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); + List orgPathList = Arrays.asList(dto.getOrgPath().split("/")); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); + if (sysOrganization == null) { + return rb.setMsg("当前所在的组织机构不存在"); + } + if (StringUtils.isBlank(sysOrganization.getManagerSid())) { +// return rb.setMsg("当前所在的组织机构未设置主管人员"); + sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + String nextNodeUserSids_ = sysOrganization.getManagerSid(); + bv.setNextNodeUserSids(nextNodeUserSids_); + if (r == 1) { + //ToDo:流程定义id + bv.setModelId(ProcDefEnum.LOANSECONDSALEAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + loanSecondarySalesApply = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + LoanSecondarySalesApply finalLoanSecondarySalesApply = loanSecondarySalesApply; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次销售申请"); + messageFlowableQuery.setMsgContent(finalLoanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆二次销售申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(loanSecondarySalesApply.getTaskId()); + bv.setTaskDefKey(loanSecondarySalesApply.getTaskDefKey()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv, ""); + } + return rb; + } + + public ResultBean saveOrUpdateSecondarySales(LoanSecondarySalesApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) {//新增 + LoanSecondarySalesApply loanSecondarySalesApply = new LoanSecondarySalesApply(); + BeanUtil.copyProperties(dto, loanSecondarySalesApply, "sid"); + loanSecondarySalesApply.setCreateBySid(dto.getUserSid()); + loanSecondarySalesApply.setOrgSidPath(dto.getOrgPath()); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData(); + loanSecondarySalesApply.setUseOrgSid(useOrgSid); + //创建组织使用组织 + ResultBean organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid); + if (organizationResultBean.getData() != null) { + loanSecondarySalesApply.setUseOrgName(organizationResultBean.getData().getName()); + } + //申请部门 + List orgList = Arrays.asList(dto.getOrgPath().split("/")); + String deptSid = orgList.get(orgList.size() - 1); + ResultBean sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(deptSid); + if (sysOrganizationVoResultBean.getData() != null) { + loanSecondarySalesApply.setCreateDept(sysOrganizationVoResultBean.getData().getName()); + loanSecondarySalesApply.setCreateDeptSid(deptSid); + } + //根据用户sid查询人员姓名 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + loanSecondarySalesApply.setCreateByName(userVoResultBean.getData().getName()); + List filss = dto.getFilesList(); + filss.removeAll(Collections.singleton(null)); + if (filss.size() > 0) { + if (!filss.isEmpty()) { + String files = String.join(",", filss).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanSecondarySalesApply.setFiles(files); + } + } + baseMapper.insert(loanSecondarySalesApply); + sid = loanSecondarySalesApply.getSid(); + //保存车辆 + List loanSecondarySalesVehVoList = dto.getLoanSecondarySalesVehVoList(); + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + if (!loanSecondarySalesVehVoList.isEmpty()) { + loanSecondarySalesVehService.saveVeh(loanSecondarySalesVehVoList, sid); + } + LoanSecondarySalesCostVo loanSecondarySalesCost = dto.getLoanSecondarySalesCost(); + if (loanSecondarySalesCost != null) { + loanSecondarySalesCostService.saveCost(loanSecondarySalesCost, sid); + } + } else { + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid); + if (loanSecondarySalesApply == null) { + return rb.setMsg("该申请不存在"); + } + dto.setUserSid(loanSecondarySalesApply.getCreateBySid()); + BeanUtil.copyProperties(dto, loanSecondarySalesApply, "sid"); + List filss = dto.getFilesList(); + if (!filss.isEmpty()) { + if (!filss.isEmpty()) { + String files = String.join(",", filss).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanSecondarySalesApply.setFiles(files); + } + } else { + loanSecondarySalesApply.setFiles(""); + } + //保存车辆 + List loanSecondarySalesVehVoList = dto.getLoanSecondarySalesVehVoList(); + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + if (!loanSecondarySalesVehVoList.isEmpty()) { + loanSecondarySalesVehService.saveVeh(loanSecondarySalesVehVoList, sid); + } + LoanSecondarySalesCostVo loanSecondarySalesCost = dto.getLoanSecondarySalesCost(); + if (loanSecondarySalesCost != null) { + loanSecondarySalesCostService.saveCost(loanSecondarySalesCost, sid); + } + baseMapper.updateById(loanSecondarySalesApply); + } + return rb.success().setData(sid); + } + + private int submitBusinessData(SubmitLoanSecondarySalesApplyDto dto, LoanSecondarySalesApply loanSecondarySalesApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanSecondarySalesApply != null) { + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + } + return r; + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); + } + List sidss = Arrays.asList(sids); + for (int i = 0; i < sidss.size(); i++) { + loanSecondarySalesVehService.deleteByMainSid(sidss.get(i)); + loanSecondarySalesCostService.deleteByMainSid(sidss.get(i)); + } + delBySids(sids); + return rb.success().setMsg("删除成功"); + } + + public ResultBean details(LoanSecondarySalesApplyDetailsQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApplyDetailsVo loanSecondarySalesApplyDetailsVo = new LoanSecondarySalesApplyDetailsVo(); + String sid = query.getSid(); + String userSid = query.getUserSid(); + String orgPath = query.getOrgPath(); + List chooseSidList = query.getChooseSidList(); + chooseSidList.removeAll(Collections.singleton(null)); + if (StringUtils.isBlank(sid)) {//新增初始化 + if (chooseSidList.isEmpty()) { + return rb.setMsg("请选择车辆"); + } + String busVinSid = ""; + List vinNoLists = new ArrayList<>(); + List bankContractNoList = new ArrayList<>(); + List loanSecondarySalesVehVoList = new ArrayList<>(); + for (int i = 0; i < chooseSidList.size(); i++) { + LoanSecondarySalesVehVo loanSecondarySalesVehVo = new LoanSecondarySalesVehVo(); + String s = chooseSidList.get(i); + LoanReturnVehLedger loanReturnVehLedger = loanReturnVehLedgerService.fetchBySid(s); + if (!"未处置".equals(loanReturnVehLedger.getDisposal())) { + vinNoLists.add(loanReturnVehLedger.getVinNo()); + } + LoanReturnInboundApply loanReturnInboundApply = loanReturnInboundApplyService.fetchBySid(loanReturnVehLedger.getBusSid()); + if (StringUtils.isNotBlank(loanReturnInboundApply.getBankContractNo())) { + bankContractNoList.add(loanReturnInboundApply.getBankContractNo()); + } + busVinSid = loanReturnInboundApply.getBusVinSid(); + if ("主车".equals(loanReturnVehLedger.getVehType())) { + if ("未处置".equals(loanReturnVehLedger.getDisposal())) { + loanSecondarySalesVehVo.setBusVinSid(loanReturnVehLedger.getBusVinSid()); + loanSecondarySalesVehVo.setVinNo(loanReturnVehLedger.getVinNo()); + loanSecondarySalesVehVo.setVehMark(loanReturnVehLedger.getVehMark()); + loanSecondarySalesVehVo.setModelName(loanReturnVehLedger.getVehModel()); + loanSecondarySalesVehVo.setModelSid(loanReturnVehLedger.getVehModelSid()); + loanSecondarySalesVehVo.setConfigSid(loanReturnVehLedger.getConfigSid()); + loanSecondarySalesVehVo.setBusVinSid(busVinSid); + loanSecondarySalesVehVo.setBusSid(s); + loanSecondarySalesVehVo.setVehType(loanReturnVehLedger.getVehType()); + loanSecondarySalesVehVoList.add(loanSecondarySalesVehVo); + loanSecondarySalesApplyDetailsVo.setCustomerName(loanReturnVehLedger.getCustomer()); + loanSecondarySalesApplyDetailsVo.setLoanName(loanReturnVehLedger.getBorrowerName()); + loanSecondarySalesApplyDetailsVo.setCustomerSid(loanReturnVehLedger.getCustomerSid()); + loanSecondarySalesApplyDetailsVo.setLoanSid(loanReturnVehLedger.getBorrowerSid()); + loanSecondarySalesApplyDetailsVo.setLoanContractNo(loanReturnInboundApply.getLoanContractNo()); + loanSecondarySalesApplyDetailsVo.setBankName(loanReturnInboundApply.getBankName()); + loanSecondarySalesApplyDetailsVo.setBankContractNo(loanReturnInboundApply.getBankContractNo()); + loanSecondarySalesApplyDetailsVo.setLocationName(loanReturnVehLedger.getLocation()); + loanSecondarySalesApplyDetailsVo.setSalesOrderSid(loanReturnVehLedger.getSaleOrderSid()); + loanSecondarySalesApplyDetailsVo.setFirstDate(loanReturnInboundApply.getFirstDate()); + if (StringUtils.isNotBlank(loanReturnInboundApply.getFiles())) { + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(loanReturnInboundApply.getFiles())) { + List fileList = Arrays.asList(loanReturnInboundApply.getFiles().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + loanSecondarySalesApplyDetailsVo.setFilesList(fileList); + } + } + LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo(); + AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(busVinSid); + if (alrepaidAndArrVo != null) { + BeanUtil.copyProperties(alrepaidAndArrVo, loanSecondarySalesApplyDetailsVo); + BigDecimal bigDecimal = BigDecimal.ZERO; + if (StringUtils.isNotBlank(alrepaidAndArrVo.getCurrentBeMoney())) { + bigDecimal = bigDecimal.add(new BigDecimal(alrepaidAndArrVo.getCurrentBeMoney())); + } + if (StringUtils.isNotBlank(alrepaidAndArrVo.getUnexpiredMoney())) { + bigDecimal = bigDecimal.add(new BigDecimal(alrepaidAndArrVo.getUnexpiredMoney())); + } + loanSecondarySalesCost.setArrearsAll(bigDecimal.toString()); + } + loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesCost(loanSecondarySalesCost); + //根据销售订单查询金额方案 + LoanSolutions loanSolutions = loanSolutionsMapper.selectBySaleOrderSid(loanReturnVehLedger.getSaleOrderSid()); + if (loanSolutions != null) { + LoanSolutionsDetail loanSolutionsDetail = loanSolutionsDetailService.selectLoanSid(loanSolutions.getSid()); + if (loanSolutionsDetail != null) { + loanSecondarySalesCost.setLoanDeposit(loanSolutionsDetail.getBondAmounts().toString()); + } + } + + } + + //根据主车查询挂车信息 + LoanReturnVehLedger loanReturnVehLedgerT = loanReturnVehLedgerService.selectByPSid(loanReturnVehLedger.getSid()); + if ("未处置".equals(loanReturnVehLedgerT.getDisposal())) { + loanSecondarySalesVehVo = new LoanSecondarySalesVehVo(); + loanSecondarySalesVehVo.setVehType(loanReturnVehLedgerT.getVehType()); + loanSecondarySalesVehVo.setVehMark(loanReturnVehLedgerT.getVehMark()); + loanSecondarySalesVehVo.setVinNo(loanReturnVehLedgerT.getVinNo()); + loanSecondarySalesVehVo.setModelName(loanReturnVehLedgerT.getVehModel()); + loanSecondarySalesVehVo.setBusSid(s); + loanSecondarySalesVehVoList.add(loanSecondarySalesVehVo); + } + + + } + if ("挂车".equals(loanReturnVehLedger.getVehType())) { + if ("未处置".equals(loanReturnVehLedger.getDisposal())) { + loanSecondarySalesVehVo = new LoanSecondarySalesVehVo(); + loanSecondarySalesVehVo.setVehType(loanReturnVehLedger.getVehType()); + loanSecondarySalesVehVo.setVehMark(loanReturnVehLedger.getVehMark()); + loanSecondarySalesVehVo.setVinNo(loanReturnVehLedger.getVinNo()); + loanSecondarySalesVehVo.setModelName(loanReturnVehLedger.getVehModel()); + loanSecondarySalesVehVo.setBusSid(s); + loanSecondarySalesVehVoList.add(loanSecondarySalesVehVo); + loanSecondarySalesApplyDetailsVo.setCustomerName(loanReturnVehLedger.getCustomer()); + loanSecondarySalesApplyDetailsVo.setLoanName(loanReturnVehLedger.getBorrowerName()); + loanSecondarySalesApplyDetailsVo.setCustomerSid(loanReturnVehLedger.getCustomerSid()); + loanSecondarySalesApplyDetailsVo.setLoanSid(loanReturnVehLedger.getBorrowerSid()); + loanSecondarySalesApplyDetailsVo.setLoanContractNo(loanReturnInboundApply.getLoanContractNo()); + loanSecondarySalesApplyDetailsVo.setBankName(loanReturnInboundApply.getBankName()); + loanSecondarySalesApplyDetailsVo.setBankContractNo(loanReturnInboundApply.getBankContractNo()); + loanSecondarySalesApplyDetailsVo.setLocationName(loanReturnVehLedger.getLocation()); + loanSecondarySalesApplyDetailsVo.setSalesOrderSid(loanReturnVehLedger.getSaleOrderSid()); + AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr(busVinSid); + if (alrepaidAndArrVo != null) { + BeanUtil.copyProperties(alrepaidAndArrVo, loanSecondarySalesApplyDetailsVo); + } + } + } + } + vinNoLists.removeAll(Collections.singleton(null)); + if (!vinNoLists.isEmpty()) { + return rb.setMsg(String.join(",", vinNoLists) + "车架号处置方式非未处置,不能二次销售"); + } + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + //去重车架号 + loanSecondarySalesVehVoList = loanSecondarySalesVehVoList.stream() + .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getVinNo()))), ArrayList::new)); + Set set = new HashSet<>(bankContractNoList); // 创建HashSet对象,自动去重 + List distinctList = new ArrayList<>(set); + distinctList.removeAll(Collections.singleton(null)); + if (distinctList.size() != 1) { + return rb.setMsg("请选择相同资方合同编号的车辆"); + } + loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList); + //根据用户查询发起人、发起部门、发起日期为当前日期 + String deptName = ""; + String deptSid = ""; + String useOrgSid = ""; + if (StringUtils.isNotBlank(orgPath)) { + List 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(); + } + //根据用户sid查询人员姓名 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(userSid); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + loanSecondarySalesApplyDetailsVo.setCreateDept(deptName); + loanSecondarySalesApplyDetailsVo.setCreateDeptSid(deptSid); + loanSecondarySalesApplyDetailsVo.setCreateByName(userVoResultBean.getData().getName()); + loanSecondarySalesApplyDetailsVo.setCreateDate(DateUtil.today()); + loanSecondarySalesApplyDetailsVo.setOrgPath(query.getOrgPath()); + loanSecondarySalesApplyDetailsVo.setUserSid(query.getUserSid()); + loanSecondarySalesApplyDetailsVo.setUseOrgSid(useOrgSid); + + + } else {//编辑初始化 + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid); + if (loanSecondarySalesApply == null) { + return rb.setMsg("该申请不存在"); + } + loanSecondarySalesApplyDetailsVo = baseMapper.selectDetails(sid); + String files = loanSecondarySalesApplyDetailsVo.getFiles(); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(files)) { + List fileList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + loanSecondarySalesApplyDetailsVo.setFilesList(fileList); + } + + loanSecondarySalesApplyDetailsVo.setOrgPath(loanSecondarySalesApply.getOrgSidPath()); + loanSecondarySalesApplyDetailsVo.setUserSid(loanSecondarySalesApply.getCreateBySid()); + loanSecondarySalesApplyDetailsVo.setSid(sid); + loanSecondarySalesApplyDetailsVo.setProcInstId(loanSecondarySalesApply.getProcInstId()); + loanSecondarySalesApplyDetailsVo.setTaskId(loanSecondarySalesApply.getTaskId()); + List loanSecondarySalesVehVoList = loanSecondarySalesVehService.selectByMainSid(sid); + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + if (!loanSecondarySalesVehVoList.isEmpty()) { + loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList); + } + LoanSecondarySalesCostVo loanSecondarySalesCost = loanSecondarySalesCostService.selectByMainSid(sid); + if (loanSecondarySalesCost != null) { + String filesss = loanSecondarySalesCost.getFilesss(); + List lists = new ArrayList<>(); + if (StringUtils.isNotBlank(filesss)) { + List fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + for (int i = 0; i < fileList.size(); i++) { + UrlQuery urlQuery = new UrlQuery(); + urlQuery.setUrl(fileList.get(i)); + lists.add(urlQuery); + } + loanSecondarySalesCost.setFiles(lists); + } + } + loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesCost(loanSecondarySalesCost); + } + return rb.success().setData(loanSecondarySalesApplyDetailsVo); + } + + public ResultBean getAppDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid); + if (loanSecondarySalesApply == null) { + return rb.setMsg("该申请不存在"); + } + SecondarySalesAppVo secondarySalesAppVo = baseMapper.getAppDetails(sid); + if (StringUtils.isNotBlank(secondarySalesAppVo.getFiles())) { + List fileList = Arrays.asList(secondarySalesAppVo.getFiles().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + secondarySalesAppVo.setFilesList(fileList); + } + secondarySalesAppVo.setOrgPath(loanSecondarySalesApply.getOrgSidPath()); + secondarySalesAppVo.setUserSid(loanSecondarySalesApply.getCreateBySid()); + secondarySalesAppVo.setProcInstId(loanSecondarySalesApply.getProcInstId()); + secondarySalesAppVo.setTaskId(loanSecondarySalesApply.getTaskId()); + List loanSecondarySalesVehVoList = loanSecondarySalesVehService.selectByMainSidApp(sid); + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + if (!loanSecondarySalesVehVoList.isEmpty()) { + secondarySalesAppVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList); + } + LoanSecondarySalesCostAppVo loanSecondarySalesCost = loanSecondarySalesCostService.selectByMainSidApp(sid); + if (loanSecondarySalesCost != null) { + String filesss = loanSecondarySalesCost.getFilesss(); + if (StringUtils.isNotBlank(filesss)) { + List fileList = Arrays.asList(filesss.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + loanSecondarySalesCost.setFiles(fileList); + } + } + secondarySalesAppVo.setLoanSecondarySalesCost(loanSecondarySalesCost); + return rb.success().setData(secondarySalesAppVo); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java new file mode 100644 index 0000000000..8f640e40de --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalescost; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesCostAppVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Mapper +public interface LoanSecondarySalesCostMapper extends BaseMapper { + int deleteByMainSid(String s); + + LoanSecondarySalesCostVo selectByMainSid(String sid); + LoanSecondarySalesCost selectMainSid(String sid); + + LoanSecondarySalesCostAppVo selectByMainSidApp(String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml new file mode 100644 index 0000000000..6cb2a79dcc --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml @@ -0,0 +1,29 @@ + + + + + delete + from loan_secondary_sales_cost + where mainSid = #{s} + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java new file mode 100644 index 0000000000..382000527c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java @@ -0,0 +1,65 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalescost; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesCostAppVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Service +public class LoanSecondarySalesCostService extends MybatisBaseService { + + @Autowired + private FileUploadComponent fileUploadComponent; + + public int deleteByMainSid(String s) { + return baseMapper.deleteByMainSid(s); + } + + public LoanSecondarySalesCostVo selectByMainSid(String sid) { + return baseMapper.selectByMainSid(sid); + } + + + public void saveCost(LoanSecondarySalesCostVo loanSecondarySalesCost, String sid) { + baseMapper.deleteByMainSid(sid); + LoanSecondarySalesCost loanSecondarySalesCost1 = new LoanSecondarySalesCost(); + BeanUtil.copyProperties(loanSecondarySalesCost, loanSecondarySalesCost1); + loanSecondarySalesCost1.setMainSid(sid); + List filss = loanSecondarySalesCost.getFiles(); + filss.removeAll(Collections.singleton(null)); + if (!filss.isEmpty()) { + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); + filesList.removeAll(Collections.singleton(null)); + if (!filesList.isEmpty()) { + String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + loanSecondarySalesCost1.setFiles(files); + } + } else { + loanSecondarySalesCost1.setFiles(""); + } + if (StringUtils.isBlank(loanSecondarySalesCost.getVehPrice())) { + loanSecondarySalesCost1.setVehPrice(BigDecimal.ZERO); + } + baseMapper.insert(loanSecondarySalesCost1); + } + + public LoanSecondarySalesCostAppVo selectByMainSidApp(String sid) { + return baseMapper.selectByMainSidApp(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerMapper.java new file mode 100644 index 0000000000..0dc0a42570 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerMapper.java @@ -0,0 +1,15 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalescustomer; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.LoanSecondarySalesCustomer; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Mapper +public interface LoanSecondarySalesCustomerMapper extends BaseMapper { + LoanSecondarySalesCustomer selectByMainSid(String mainSid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerMapper.xml new file mode 100644 index 0000000000..ae87747598 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerMapper.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerRest.java new file mode 100644 index 0000000000..836213d3c3 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerRest.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalescustomer; + +import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.LoanSecondarySalesCustomerDto; +import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.LoanSecondarySalesCustomerFeign; +import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.SalesInitVo; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@RestController +@RequestMapping("v1/LoanSecondarySalesCustomer") +@Api(tags = "二次销售补充客户信息") +public class LoanSecondarySalesCustomerRest implements LoanSecondarySalesCustomerFeign { + + @Autowired + private LoanSecondarySalesCustomerService loanSecondarySalesCustomerService; + + @Override + public ResultBean saveOrUpdate(LoanSecondarySalesCustomerDto dto) { + return loanSecondarySalesCustomerService.saveSalesCustomer(dto); + } + + @Override + public ResultBean getDetails(String sid) { + return loanSecondarySalesCustomerService.getDetails(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerService.java new file mode 100644 index 0000000000..045654022b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescustomer/LoanSecondarySalesCustomerService.java @@ -0,0 +1,109 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalescustomer; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.crm.api.crmcustomer.CrmCustomer; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CustomerSecondSalesDto; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; +import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.LoanSecondarySalesCustomer; +import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.LoanSecondarySalesCustomerDto; +import com.yxt.anrui.riskcenter.api.loansecondarysalescustomer.SalesInitVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesapply.LoanSecondarySalesApplyService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostMapper; +import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/30 + **/ +@Service +public class LoanSecondarySalesCustomerService extends MybatisBaseService { + + @Autowired + private CrmCustomerTempFeign crmCustomerTempFeign; + @Autowired + private LoanSecondarySalesApplyService loanSecondarySalesApplyService; + @Autowired + private LoanSecondarySalesVehService loanSecondarySalesVehService; + @Autowired + private LoanSecondarySalesCostMapper loanSecondarySalesCostMapper; + + public ResultBean saveSalesCustomer(LoanSecondarySalesCustomerDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesCustomer loanSecondarySalesCustomer = baseMapper.selectByMainSid(dto.getMainSid()); + String customerSid = dto.getCustomerSid(); + LoanSecondarySalesApply loanSecondarySalesApply = loanSecondarySalesApplyService.fetchBySid(dto.getMainSid()); + String userSid = loanSecondarySalesApply.getCreateBySid(); + String orgPath = loanSecondarySalesApply.getOrgSidPath(); + if (loanSecondarySalesCustomer == null) { + //新增客户 + CustomerSecondSalesDto customerSecondSalesDto = new CustomerSecondSalesDto(); + BeanUtil.copyProperties(dto, customerSecondSalesDto); + customerSecondSalesDto.setUserSid(userSid); + customerSecondSalesDto.setOrgPath(orgPath); + ResultBean resultBean = crmCustomerTempFeign.updateTemp(customerSecondSalesDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + customerSid = resultBean.getData(); + loanSecondarySalesCustomer = new LoanSecondarySalesCustomer(); + BeanUtil.copyProperties(dto, loanSecondarySalesCustomer); + loanSecondarySalesCustomer.setCustomerSid(customerSid); + baseMapper.insert(loanSecondarySalesCustomer); + } else { + //新增客户 + CustomerSecondSalesDto customerSecondSalesDto = new CustomerSecondSalesDto(); + BeanUtil.copyProperties(dto, customerSecondSalesDto); + customerSecondSalesDto.setUserSid(userSid); + customerSecondSalesDto.setOrgPath(orgPath); + ResultBean resultBean = crmCustomerTempFeign.updateTemp(customerSecondSalesDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + customerSid = resultBean.getData(); + BeanUtil.copyProperties(dto, loanSecondarySalesCustomer); + loanSecondarySalesCustomer.setCustomerSid(customerSid); + baseMapper.updateById(loanSecondarySalesCustomer); + } + return rb.success(); + } + + public ResultBean getDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + SalesInitVo salesInitVo = new SalesInitVo(); + LoanSecondarySalesCustomer loanSecondarySalesCustomer = baseMapper.selectByMainSid(sid); + if (loanSecondarySalesCustomer != null) { + BeanUtil.copyProperties(loanSecondarySalesCustomer, salesInitVo); + } else { + salesInitVo.setMainSid(sid); + } + List loanSecondarySalesVehVoList = loanSecondarySalesVehService.selectByMainSid(sid); + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + if (!loanSecondarySalesVehVoList.isEmpty()) { + salesInitVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList); + } + LoanSecondarySalesApply loanSecondarySalesApply = loanSecondarySalesApplyService.fetchBySid(sid); + if (!"已办结".equals(loanSecondarySalesApply.getNodeState())) { + return rb.setMsg("该申请未办结"); + } + salesInitVo.setMainSid(sid); + salesInitVo.setCreateDept(loanSecondarySalesApply.getCreateDept()); + salesInitVo.setSaleDate(loanSecondarySalesApply.getCloseDate()); + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostMapper.selectMainSid(sid); + salesInitVo.setSalePrice(loanSecondarySalesCost.getVehPrice().toString()); + return rb.success().setData(salesInitVo); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java new file mode 100644 index 0000000000..d2c8cbc130 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesVehAppVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Mapper +public interface LoanSecondarySalesVehMapper extends BaseMapper { + int deleteByMainSid(String s); + + List selectByMainSid(String sid); + + List selectByMainSidApp(String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml new file mode 100644 index 0000000000..309dfde1cf --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml @@ -0,0 +1,33 @@ + + + + + delete + from loan_secondary_sales_veh + where mainSid = #{s} + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java new file mode 100644 index 0000000000..a4528f1e63 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesVehAppVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/23 + **/ +@Service +public class LoanSecondarySalesVehService extends MybatisBaseService { + public int deleteByMainSid(String s) { + return baseMapper.deleteByMainSid(s); + } + + public List selectByMainSid(String sid) { + return baseMapper.selectByMainSid(sid); + } + + public void saveVeh(List loanSecondarySalesVehVoList, String sid) { + //先删除 + baseMapper.deleteByMainSid(sid); + //保存 + for (int i = 0; i < loanSecondarySalesVehVoList.size(); i++) { + LoanSecondarySalesVehVo loanSecondarySalesVehVo = loanSecondarySalesVehVoList.get(i); + LoanSecondarySalesVeh loanSecondarySalesVeh = new LoanSecondarySalesVeh(); + BeanUtil.copyProperties(loanSecondarySalesVehVo, loanSecondarySalesVeh, "sid"); + loanSecondarySalesVeh.setMainSid(sid); + baseMapper.insert(loanSecondarySalesVeh); + } + } + + public List selectByMainSidApp(String sid) { + return baseMapper.selectByMainSidApp(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java index 437b21ec74..94054fa7c1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java @@ -5,13 +5,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.riskcenter.api.loanredemptionapply.*; -import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApply; -import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyVo; -import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListQuery; -import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListVo; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; +import com.yxt.anrui.riskcenter.api.loansubletapply.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Map; @@ -28,4 +27,21 @@ public interface LoanSubletApplyMapper extends BaseMapper { int updateFlowFiled(Map map); + SubletInitVo selReturnLegerBySid(@Param("ledgerSid") String ledgerSid); + + SubletInitVo selLoanInfoByMainVeh(@Param("busVinSid") String busVinSid); + + SubletVinList selReturnVinLegerBySid(@Param("ledgerSid") String ledgerSid); + + List selReturnTrVinLegerByPSid(@Param("ledgerSid")String ledgerSid); + + SubletInitVo selLoanInfoByTrVeh(@Param("ledgerSid")String ledgerSid); + + SubletVinList selReturnTrVinLegerBySid(@Param("ledgerSid")String ledgerSid); + + VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid); + + List pickCustomer(@Param("userOrgSid") String userOrgSid); + + LoanReturnVehLedger selVehLedgerBySid(@Param("ledgerSid") String ledgerSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml index 4ae685ae0f..63145c256b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml @@ -2,7 +2,7 @@ - UPDATE loan_redemption_apply + UPDATE loan_sublet_apply SET nodeState=#{nodeState} , nodeSid=#{taskDefKey} @@ -19,26 +19,38 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java index 1de5da9698..42a33e2b24 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java @@ -42,6 +42,11 @@ public class LoanSubletApplyRest implements LoanSubletApplyFeign { return rb.success().setData(pv); } + @Override + public ResultBean> pickCustomer(String orgPath) { + return loanSubletApplyService.pickCustomer(orgPath); + } + @Override public ResultBean subletInit(String ledgerSid) { return loanSubletApplyService.subletInit(ledgerSid); @@ -71,7 +76,7 @@ public class LoanSubletApplyRest implements LoanSubletApplyFeign { public ResultBean complete(SubletCompleteDto dto) { BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(dto, bv); - bv.setModelId(ProcDefEnum.LOANREDEMPTIONAPPLY.getProDefId()); + bv.setModelId(ProcDefEnum.LOANSUBLETAPPLY.getProDefId()); return loanSubletApplyService.complete(bv); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java index bdfe61a774..05c47763fb 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java @@ -10,6 +10,9 @@ import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; @@ -29,21 +32,22 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyDto; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinListDto; import com.yxt.anrui.riskcenter.api.loanredemptionapply.*; -import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo; -import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppVinListVo; -import com.yxt.anrui.riskcenter.api.loanredemptionapply.flow.*; -import com.yxt.anrui.riskcenter.api.loanredemptionveh.LoanRedemptionVeh; -import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; +import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; import com.yxt.anrui.riskcenter.api.loansubletapply.*; import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletDetailsVo; +import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletVinListVo; import com.yxt.anrui.riskcenter.api.loansubletapply.flow.*; +import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh; import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; -import com.yxt.anrui.riskcenter.biz.loanredemptionveh.LoanRedemptionVehService; +import com.yxt.anrui.riskcenter.biz.loanoutboundapply.LoanOutboundApplyService; +import com.yxt.anrui.riskcenter.biz.loanredemptionapply.LoanRedemptionApplyService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; -import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; +import com.yxt.anrui.riskcenter.biz.loansubletveh.LoanSubletVehService; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -76,14 +80,10 @@ public class LoanSubletApplyService extends MybatisBaseService listPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); @@ -155,7 +147,7 @@ public class LoanSubletApplyService extends MybatisBaseService 1 AND a.vehType = '主车' ) OR (a.count = 1)"); IPage pagging = baseMapper.listPage(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } + public ResultBean> pickCustomer(String orgPath) { + ResultBean rb = ResultBean.fireFail(); + ResultBean orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath); + String userOrgSid = ""; + if (orgSidByPath.getSuccess()) { + userOrgSid = orgSidByPath.getData(); + } + List listVos = baseMapper.pickCustomer(userOrgSid); + return rb.success().setData(listVos); + } + public PagerVo getVinList(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); SubletVinListQuery pagerQuery = pq.getParams(); @@ -232,7 +239,7 @@ public class LoanSubletApplyService extends MybatisBaseService pagging = baseMapper.getVinList(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); return p; @@ -240,291 +247,206 @@ public class LoanSubletApplyService extends MybatisBaseService subletInit(String ledgerSid) { ResultBean rb = ResultBean.fireFail(); - LoanRedemptionApplyInit vo = new LoanRedemptionApplyInit(); - RedemptionInitVo redemptionInitVo = baseMapper.redemptionInit(ledgerSid); - if (null != redemptionInitVo) { - BeanUtil.copyProperties(redemptionInitVo, vo); - if (StringUtils.isNotBlank(redemptionInitVo.getBusVinSid())) { - AlrepaidAndArrVo alrepaidAndArr = loanRestoreReportApplyService.getAlrepaidAndArr(redemptionInitVo.getBusVinSid()); - if (null != alrepaidAndArr) { - //已还金额 - if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoney())) { - vo.setAlRepaidMoney(alrepaidAndArr.getAlRepaidMoney()); + LoanSubletApplyInit vo = new LoanSubletApplyInit(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + vo.setApplyDate(sdf.format(new Date())); + List vinList = new ArrayList<>(); + SubletInitVo subletInitVo = baseMapper.selReturnLegerBySid(ledgerSid); + String vehType = ""; + if (null != subletInitVo) { + if (StringUtils.isNotBlank(subletInitVo.getCustomer())) { + vo.setCustomer(subletInitVo.getCustomer()); + } + if (StringUtils.isNotBlank(subletInitVo.getBorrowerName())) { + vo.setBorrowerName(subletInitVo.getBorrowerName()); + } + if (StringUtils.isNotBlank(subletInitVo.getCustomerSid())) { + vo.setCustomerSid(subletInitVo.getCustomerSid()); + } + if (StringUtils.isNotBlank(subletInitVo.getBorrowerSid())) { + vo.setBorrowerSid(subletInitVo.getBorrowerSid()); + } + if (StringUtils.isNotBlank(subletInitVo.getVehType())) { + vehType = subletInitVo.getVehType(); + if (vehType.equals("主车")) { + SubletInitVo mainVeh = baseMapper.selLoanInfoByMainVeh(subletInitVo.getBusVinSid()); + if (null != mainVeh) { + if (StringUtils.isNotBlank(mainVeh.getBankName())) { + vo.setBankName(mainVeh.getBankName()); + } + if (StringUtils.isNotBlank(mainVeh.getLoanContractNo())) { + vo.setLoanContractNo(mainVeh.getLoanContractNo()); + } + if (StringUtils.isNotBlank(mainVeh.getBankContractNo())) { + vo.setBankContractNo(mainVeh.getBankContractNo()); + } } - //已还金额换算期数 - if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoneyConPeriod())) { - vo.setAlRepaidMoneyConPeriod(alrepaidAndArr.getAlRepaidMoneyConPeriod()); + SubletVinList mVeh = baseMapper.selReturnVinLegerBySid(ledgerSid); + if (null != mVeh) { + vinList.add(mVeh); } - //逾期金额换算期数 - if (StringUtils.isNotBlank(alrepaidAndArr.getBeOverdueMoneyAndPeriod())) { - vo.setBeOverdueMoneyAndPeriod(alrepaidAndArr.getBeOverdueMoneyAndPeriod()); + List tVeh = baseMapper.selReturnTrVinLegerByPSid(ledgerSid); + if (!tVeh.isEmpty()) { + tVeh.stream().forEach(t -> { + vinList.add(t); + }); } - //总期数 - if (StringUtils.isNotBlank(alrepaidAndArr.getNper())) { - vo.setNper(alrepaidAndArr.getNper()); + vo.setVinList(vinList); + } else if (vehType.equals("挂车")) { + SubletInitVo trVeh = baseMapper.selLoanInfoByTrVeh(ledgerSid); + if (null != trVeh) { + if (StringUtils.isNotBlank(trVeh.getBankName())) { + vo.setBankName(trVeh.getBankName()); + } + if (StringUtils.isNotBlank(trVeh.getLoanContractNo())) { + vo.setLoanContractNo(trVeh.getLoanContractNo()); + } + if (StringUtils.isNotBlank(trVeh.getBankContractNo())) { + vo.setBankContractNo(trVeh.getBankContractNo()); + } } - //当前逾期金额 - if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentBeMoney())) { - vo.setCurrentBeMoney(alrepaidAndArr.getCurrentBeMoney()); + SubletVinList tVeh = baseMapper.selReturnTrVinLegerBySid(ledgerSid); + if (null != tVeh) { + vinList.add(tVeh); } - //当前期数 - if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentPeriod())) { - vo.setCurrentPeriod(alrepaidAndArr.getCurrentPeriod()); + vo.setVinList(vinList); + } + } + } + return rb.success().setData(vo); + } + + + @Transactional(rollbackFor = Exception.class) + public ResultBean saveSublet(LoanSubletApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = ""; + if (StringUtils.isNotBlank(dto.getSid())) { + sid = dto.getSid(); + LoanSubletApply updateEntity = fetchBySid(sid); + if (null != updateEntity) { + BeanUtil.copyProperties(dto, updateEntity, "id", "sid"); + baseMapper.updateById(updateEntity); + loanSubletVehService.deleteByMainSid(sid); + //删除附件表中关于该linkSid的文件 + loanFileService.deleteByLinkSid(sid); + List filess = dto.getFiles(); + if (!filess.isEmpty()) { + List files = new ArrayList<>(); + for (LoanSubletApplyFile file : filess) { + files.add(file.getUrl()); } - //未到期金额 - if (StringUtils.isNotBlank(alrepaidAndArr.getUnexpiredMoney())) { - vo.setUnexpiredMoney(alrepaidAndArr.getUnexpiredMoney()); + loanFileService.saveAll(sid, files, LoanFileEnum.SUBLETAPPLY.getAttachType()); + } + List vinList = dto.getVinList(); + if (!vinList.isEmpty()) { + for (SubletVinList record : vinList) { + LoanSubletVeh subletVeh = new LoanSubletVeh(); + BeanUtil.copyProperties(record, subletVeh, "id", "sid"); + subletVeh.setMainSid(sid); + loanSubletVehService.insert(subletVeh); } - //其中资金占用费 - if (StringUtils.isNotBlank(alrepaidAndArr.getWheFundOccMoney())) { - vo.setWheFundOccMoney(alrepaidAndArr.getWheFundOccMoney()); + } + } + } else { + LoanSubletApply apply = new LoanSubletApply(); + sid = apply.getSid(); + BeanUtil.copyProperties(dto, apply, "id", "sid"); + apply.setCreateBySid(dto.getUserSid()); + apply.setOrgSidPath(dto.getOrgPath()); + ResultBean orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()); + if (orgSidByPath.getSuccess()) { + String userOrgSid = orgSidByPath.getData(); + apply.setUseOrgSid(userOrgSid); + ResultBean organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid); + if (organizationVo.getSuccess()) { + SysOrganizationVo organizationVoData = organizationVo.getData(); + if (null != organizationVoData) { + apply.setUseOrgName(organizationVoData.getName()); } } } - List vinList = new ArrayList<>(); - RedemptionVinList mainVeh = new RedemptionVinList(); - if (StringUtils.isNotBlank(redemptionInitVo.getVinSid())) { - mainVeh.setVinSid(redemptionInitVo.getVinSid()); + apply.setNodeState("待提交"); + baseMapper.insert(apply); + List vinList = dto.getVinList(); + if (!vinList.isEmpty()) { + for (SubletVinList record : vinList) { + LoanSubletVeh subletVeh = new LoanSubletVeh(); + BeanUtil.copyProperties(record, subletVeh, "id", "sid"); + subletVeh.setMainSid(sid); + loanSubletVehService.insert(subletVeh); + } } - if (StringUtils.isNotBlank(redemptionInitVo.getVinNo())) { - mainVeh.setVinNo(redemptionInitVo.getVinNo()); + //删除附件表中关于该linkSid的文件 + loanFileService.deleteByLinkSid(sid); + List filess = dto.getFiles(); + if (!filess.isEmpty()) { + List files = new ArrayList<>(); + for (LoanSubletApplyFile file : filess) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.SUBLETAPPLY.getAttachType()); } - if (StringUtils.isNotBlank(redemptionInitVo.getVehModel())) { - mainVeh.setVehModel(redemptionInitVo.getVehModel()); + } + return rb.success().setData(sid); + } + + public ResultBean subletDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanSubletApplyInit vo = new LoanSubletApplyInit(); + LoanSubletApply entity = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (null != entity) { + BeanUtil.copyProperties(entity, vo); + if (null != entity.getApplyDate()) { + vo.setApplyDate(sdf.format(entity.getApplyDate())); } - if (StringUtils.isNotBlank(redemptionInitVo.getVehMark())) { - mainVeh.setVehMark(redemptionInitVo.getVehMark()); + if (StringUtils.isNotBlank(entity.getProcInstId())) { + vo.setInstanceId(entity.getProcInstId()); } - if (StringUtils.isNotBlank(redemptionInitVo.getVehType())) { - mainVeh.setVehType(redemptionInitVo.getVehType()); + if (StringUtils.isNotBlank(entity.getCreateBySid())) { + vo.setUserSid(entity.getCreateBySid()); } - vinList.add(mainVeh); - if (StringUtils.isNotBlank(redemptionInitVo.getLedgerSid())) { - RedemptionVinList trailerVeh = baseMapper.selTrailerByLedgerSid(redemptionInitVo.getLedgerSid()); - if (null != trailerVeh) { - vinList.add(trailerVeh); + if (StringUtils.isNotBlank(entity.getOrgSidPath())) { + vo.setOrgPath(entity.getOrgSidPath()); + } + List vinLists = loanSubletVehService.selByMainSid(sid); + if (!vinLists.isEmpty()) { + vo.setVinList(vinLists); + } + List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.SUBLETAPPLY.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List applyFiles = new ArrayList<>(); + for (String file : files) { + LoanSubletApplyFile applyFile = new LoanSubletApplyFile(); + applyFile.setUrl(file); + applyFiles.add(applyFile); } + vo.setFiles(applyFiles); } - vo.setVinList(vinList); } return rb.success().setData(vo); } - @Transactional(rollbackFor = Exception.class) - public ResultBean saveSublet(LoanSubletApplyDto dto) { -// ResultBean rb = ResultBean.fireFail(); -// String sid = ""; -// if (StringUtils.isNotBlank(dto.getSid())) { -// sid = dto.getSid(); -// LoanRedemptionApply updateEntity = fetchBySid(sid); -// if (null != updateEntity) { -// BeanUtil.copyProperties(dto, updateEntity, "id", "sid"); -// baseMapper.updateById(updateEntity); -// loanRedemptionVehService.deleteByMainSid(sid); -// //删除附件表中关于该linkSid的文件 -// loanFileService.deleteByLinkSid(sid); -// List filess = dto.getFiles(); -// if (!filess.isEmpty()) { -// List files = new ArrayList<>(); -// for (LoanRedemptionApplyFile file : filess) { -// files.add(file.getUrl()); -// } -// loanFileService.saveAll(sid, files, LoanFileEnum.REDEMPTION.getAttachType()); -// } -// List vinList = dto.getVinList(); -// if (!vinList.isEmpty()) { -// for (RedemptionVinList record : vinList) { -// LoanRedemptionVeh redemptionVeh = new LoanRedemptionVeh(); -// redemptionVeh.setMainSid(sid); -// if (StringUtils.isNotBlank(record.getVinSid())) { -// redemptionVeh.setVinSid(record.getVinSid()); -// } -// if (StringUtils.isNotBlank(record.getVinNo())) { -// redemptionVeh.setVinNo(record.getVinNo()); -// } -// if (StringUtils.isNotBlank(record.getVehMark())) { -// redemptionVeh.setVehMark(record.getVehMark()); -// } -// if (StringUtils.isNotBlank(record.getVehModel())) { -// redemptionVeh.setVehModel(record.getVehModel()); -// } -// if (StringUtils.isNotBlank(record.getVehType())) { -// redemptionVeh.setVehType(record.getVehType()); -// if (record.getVehType().equals("主车")) { -// if (StringUtils.isNotBlank(dto.getBusVinSid())) { -// redemptionVeh.setBusVinSid(dto.getBusVinSid()); -// } -// } -// } -// loanRedemptionVehService.insert(redemptionVeh); -// } -// } -// } -// } else { -// LoanRedemptionApply loanRedemptionApply = new LoanRedemptionApply(); -// sid = loanRedemptionApply.getSid(); -// BeanUtil.copyProperties(dto, loanRedemptionApply, "id", "sid"); -// loanRedemptionApply.setCreateBySid(dto.getUserSid()); -// loanRedemptionApply.setOrgSidPath(dto.getOrgPath()); -// ResultBean orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()); -// if (orgSidByPath.getSuccess()) { -// String userOrgSid = orgSidByPath.getData(); -// loanRedemptionApply.setUseOrgSid(userOrgSid); -// ResultBean organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid); -// if (organizationVo.getSuccess()) { -// SysOrganizationVo organizationVoData = organizationVo.getData(); -// if (null != organizationVoData) { -// loanRedemptionApply.setUseOrgName(organizationVoData.getName()); -// } -// } -// } -// loanRedemptionApply.setNodeState("待提交"); -// baseMapper.insert(loanRedemptionApply); -// List vinList = dto.getVinList(); -// if (!vinList.isEmpty()) { -// for (RedemptionVinList record : vinList) { -// LoanRedemptionVeh redemptionVeh = new LoanRedemptionVeh(); -// redemptionVeh.setMainSid(sid); -// if (StringUtils.isNotBlank(record.getVinSid())) { -// redemptionVeh.setVinSid(record.getVinSid()); -// } -// if (StringUtils.isNotBlank(record.getVinNo())) { -// redemptionVeh.setVinNo(record.getVinNo()); -// } -// if (StringUtils.isNotBlank(record.getVehMark())) { -// redemptionVeh.setVehMark(record.getVehMark()); -// } -// if (StringUtils.isNotBlank(record.getVehModel())) { -// redemptionVeh.setVehModel(record.getVehModel()); -// } -// if (StringUtils.isNotBlank(record.getVehType())) { -// redemptionVeh.setVehType(record.getVehType()); -// if (record.getVehType().equals("主车")) { -// if (StringUtils.isNotBlank(dto.getBusVinSid())) { -// redemptionVeh.setBusVinSid(dto.getBusVinSid()); -// } -// } -// } -// loanRedemptionVehService.insert(redemptionVeh); -// //todo 交回车辆状态处置状态修改 -// } -// } -// //删除附件表中关于该linkSid的文件 -// loanFileService.deleteByLinkSid(sid); -// List filess = dto.getFiles(); -// if (!filess.isEmpty()) { -// List files = new ArrayList<>(); -// for (LoanRedemptionApplyFile file : filess) { -// files.add(file.getUrl()); -// } -// loanFileService.saveAll(sid, files, LoanFileEnum.REDEMPTION.getAttachType()); -// } -// } -// return rb.success().setData(sid); - return null; - } - - public ResultBean subletDetails(String sid) { -// ResultBean rb = ResultBean.fireFail(); -// LoanRedemptionApplyInit vo = new LoanRedemptionApplyInit(); -// LoanRedemptionApply entity = fetchBySid(sid); -// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); -// if (null != entity) { -// BeanUtil.copyProperties(entity, vo); -// if (null != entity.getApplyDate()) { -// vo.setApplyDate(sdf.format(entity.getApplyDate())); -// } -// if (StringUtils.isNotBlank(entity.getProcInstId())) { -// vo.setInstanceId(entity.getProcInstId()); -// } -// if (StringUtils.isNotBlank(entity.getCreateBySid())) { -// vo.setUserSid(entity.getCreateBySid()); -// } -// if (StringUtils.isNotBlank(entity.getOrgSidPath())) { -// vo.setOrgPath(entity.getOrgSidPath()); -// } -// List redemptionVinLists = loanRedemptionVehService.selByMainSid(sid); -// if (!redemptionVinLists.isEmpty()) { -// redemptionVinLists.stream().forEach(v -> { -// if (v.getVehType().equals("主车")) { -// vo.setBusVinSid(v.getBusVinSid()); -// } -// }); -// vo.setVinList(redemptionVinLists); -// } -// if (StringUtils.isNotBlank(vo.getBusVinSid())) { -// AlrepaidAndArrVo alrepaidAndArr = loanRestoreReportApplyService.getAlrepaidAndArr(vo.getBusVinSid()); -// if (null != alrepaidAndArr) { -// //已还金额 -// if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoney())) { -// vo.setAlRepaidMoney(alrepaidAndArr.getAlRepaidMoney()); -// } -// //已还金额换算期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoneyConPeriod())) { -// vo.setAlRepaidMoneyConPeriod(alrepaidAndArr.getAlRepaidMoneyConPeriod()); -// } -// //逾期金额换算期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getBeOverdueMoneyAndPeriod())) { -// vo.setBeOverdueMoneyAndPeriod(alrepaidAndArr.getBeOverdueMoneyAndPeriod()); -// } -// //总期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getNper())) { -// vo.setNper(alrepaidAndArr.getNper()); -// } -// //当前逾期金额 -// if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentBeMoney())) { -// vo.setCurrentBeMoney(alrepaidAndArr.getCurrentBeMoney()); -// } -// //当前期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentPeriod())) { -// vo.setCurrentPeriod(alrepaidAndArr.getCurrentPeriod()); -// } -// //未到期金额 -// if (StringUtils.isNotBlank(alrepaidAndArr.getUnexpiredMoney())) { -// vo.setUnexpiredMoney(alrepaidAndArr.getUnexpiredMoney()); -// } -// //其中资金占用费 -// if (StringUtils.isNotBlank(alrepaidAndArr.getWheFundOccMoney())) { -// vo.setWheFundOccMoney(alrepaidAndArr.getWheFundOccMoney()); -// } -// } -// } -// -// List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.REDEMPTION.getAttachType()); -// fileList.removeAll(Collections.singleton(null)); -// if (!fileList.isEmpty()) { -// List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). -// collect(Collectors.toList()); -// List applyFiles = new ArrayList<>(); -// for (String file : files) { -// LoanRedemptionApplyFile applyFile = new LoanRedemptionApplyFile(); -// applyFile.setUrl(file); -// applyFiles.add(applyFile); -// } -// vo.setFiles(applyFiles); -// } -// } -// return rb.success().setData(vo); - return null; - } - public ResultBean deleteBySids(String[] sids) { ResultBean rb = ResultBean.fireFail(); -// for (String sid : sids) { -// LoanRedemptionApply entity = fetchBySid(sid); -// if (null != entity) { -// if (!entity.getNodeState().equals("待提交")) { -// return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); -// } -// } -// entity.setIsDelete(1); -// int i = baseMapper.updateById(entity); -// if (i == 0) { -// return rb.setMsg("删除失败"); -// } -// //todo 修改交回车辆台账状态 -// } + for (String sid : sids) { + LoanSubletApply entity = fetchBySid(sid); + if (null != entity) { + if (!entity.getNodeState().equals("待提交")) { + return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); + } + } + entity.setIsDelete(1); + int i = baseMapper.updateById(entity); + if (i == 0) { + return rb.setMsg("删除失败"); + } + } return ResultBean.fireSuccess().setMsg("删除成功"); } @@ -537,13 +459,13 @@ public class LoanSubletApplyService extends MybatisBaseService resultBean = saveRedemption(dto); -// if (resultBean.getSuccess()) { -// businessSid = resultBean.getData(); -// } else { -// return rb.setMsg(resultBean.getMsg()); -// } -// LoanRedemptionApply entity = fetchBySid(businessSid); -// String orgSidPath = ""; -// if (StringUtils.isNotBlank(entity.getOrgSidPath())) { -// orgSidPath = entity.getOrgSidPath(); -// } else { -// SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData(); -// if (null != data) { -// //根据staffSid获取用户的组织全路径 -// ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); -// if (!staffOrgResultBean.getSuccess()) { -// return rb.setMsg(staffOrgResultBean.getMsg()); -// } -// //用户的组织全路径 -// orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); -// } -// } -// List orgPathList = Arrays.asList(orgSidPath.split("/")); -// SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); -// if (sysOrganization == null) { -// return rb.setMsg("当前所在的组织机构不存在"); -// } -// if (StringUtils.isBlank(sysOrganization.getManagerSid())) { -//// return rb.setMsg("当前所在的组织机构未设置主管人员"); -// sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); -// } -// //创建BusinessVariables实体对象 -// BusinessVariables bv = new BusinessVariables(); -// //流程中的参数赋值 -// Map variables = BeanUtil.beanToMap(dto); -// Map appMap = new HashMap<>(); -// //若有网关,则赋值网关中判断的字段。 -//// boolean isTure = true; -//// //去查询是否同意 -//// if (StringUtils.isNotBlank(entity.getSalesUserSid())) { -//// if (!entity.getCreateBySid().equals(entity.getSalesUserSid())) { -//// isTure = false; -//// } -//// } -//// variables.put("isTure", isTure); -// variables.put("businessSid", businessSid); -// appMap.put("sid", businessSid); -// variables.put("app", appMap); -//// String orderNames = "<" + entity.getCustomer() + ">" + "欠款客户备案"; -//// variables.put("orderNames", orderNames); -// LoanRedemptionApply loanRedemptionApply1 = fetchBySid(businessSid); -// String msgBusinessSid = loanRedemptionApply1.getSid(); -// //用户的部门全路径sid -// bv.setOrgSidPath(loanRedemptionApply1.getOrgSidPath()); -// //业务sid -// bv.setBusinessSid(businessSid); -// //用户sid -// bv.setUserSid(dto.getUserSid()); -// bv.setFormVariables(variables); -// String nextNodeUserSids_ = sysOrganization.getManagerSid(); -// bv.setNextNodeUserSids(nextNodeUserSids_); -//// if (isTure) { -//// bv.setNextNodeUserSids(nextNodeUserSids_); -//// } else { -//// bv.setNextNodeUserSids(entity.getSalesUserSid()); -//// } -// //流程定义id -// bv.setModelId(ProcDefEnum.LOANREDEMPTIONAPPLY.getProDefId()); -// if (r == 1) { -// //流程定义id -// bv.setModelId(ProcDefEnum.LOANREDEMPTIONAPPLY.getProDefId()); -// ResultBean voResultBean = flowFeign.startProcess(bv); -// if (!voResultBean.getSuccess()) { -// return rb.setMsg(voResultBean.getMsg()); -// } -// UpdateFlowFieldVo ufVo = voResultBean.getData(); -// int i = updateFlowFiled(BeanUtil.beanToMap(ufVo)); -// //==================================添加线程 -// try { -// ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() -// .setNameFormat("demo-pool-%d").build(); -// ExecutorService pool = new ThreadPoolExecutor(2, 100, -// 0L, TimeUnit.MILLISECONDS, -// new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); -// Future future1 = pool.submit(() -> { -// //极光推送 -// MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); -// MessageFlowVo messageFlowVo = new MessageFlowVo(); -// BeanUtil.copyProperties(ufVo, messageFlowVo); -// messageFlowableQuery.setUfVo(messageFlowVo); -// messageFlowableQuery.setAppMap(appMap); -// messageFlowableQuery.setBusinessSid(msgBusinessSid); -// messageFlowableQuery.setModuleName("交回车辆赎回申请"); -// SysUserVo userVo = sysUserFeign.fetchBySid(loanRedemptionApply1.getCreateBySid()).getData(); -// if (userVo != null) { -// if (StringUtils.isNotBlank(userVo.getName())) { -// messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); -// } -// } -// messageFlowableQuery.setMsgTitle("交回车辆赎回申请"); -// ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); -// }); -// } catch (Exception e) { -// e.printStackTrace(); + LoanSubletApply loanSubletApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanSubletApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + List dtoVinList = dto.getVinList(); + if (!dtoVinList.isEmpty()) { + for (SubletVinList v : dtoVinList) { + VehDisposal vehDisposal = baseMapper.selVehDisposal(v.getLedgerSid()); + if (null != vehDisposal) { + if (!vehDisposal.getDisposal().equals("未处置")) { + return rb.setMsg("当前所选车辆不是未处置状态,无法提交!"); + } + } + } + } + String businessSid = ""; + //新增修改保存 + ResultBean resultBean = saveSublet(dto); + if (resultBean.getSuccess()) { + businessSid = resultBean.getData(); + } else { + return rb.setMsg(resultBean.getMsg()); + } + //提交之后修改车辆台账 + List vinLists1 = loanSubletVehService.selByMainSid(businessSid); + if (!vinLists1.isEmpty()) { + vinLists1.stream().forEach(v -> { + loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "04", "二次转租"); + }); + } + LoanSubletApply entity = fetchBySid(businessSid); + String orgSidPath = ""; + if (StringUtils.isNotBlank(entity.getOrgSidPath())) { + orgSidPath = entity.getOrgSidPath(); + } else { + SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData(); + if (null != data) { + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + } + } + List orgPathList = Arrays.asList(orgSidPath.split("/")); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); + if (sysOrganization == null) { + return rb.setMsg("当前所在的组织机构不存在"); + } + if (StringUtils.isBlank(sysOrganization.getManagerSid())) { +// return rb.setMsg("当前所在的组织机构未设置主管人员"); + sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值 + Map variables = BeanUtil.beanToMap(dto); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(entity.getSalesUserSid())) { +// if (!entity.getCreateBySid().equals(entity.getSalesUserSid())) { +// isTure = false; // } -// //==================================添加线程 -// return voResultBean; // } -// if (r == 2) { -// // ToDo:驳回到发起人后再次提交 -// if (StringUtils.isBlank(dto.getInstanceId())) { -// return rb.setMsg("参数错误:instanceId"); -// } -// LoanRedemptionApply loanRedemptionApply2 = fetchBySid(dto.getSid()); -// bv.setTaskId(dto.getTaskId()); -// bv.setTaskDefKey(loanRedemptionApply2.getNodeSid()); -// bv.setComment("重新提交"); -// bv.setInstanceId(dto.getInstanceId()); -// return complete(bv); +// variables.put("isTure", isTure); + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); +// String orderNames = "<" + entity.getCustomer() + ">" + "欠款客户备案"; +// variables.put("orderNames", orderNames); + LoanSubletApply loanSubletApply1 = fetchBySid(businessSid); + String msgBusinessSid = loanSubletApply1.getSid(); + //用户的部门全路径sid + bv.setOrgSidPath(loanSubletApply1.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); + String nextNodeUserSids_ = sysOrganization.getManagerSid(); + bv.setNextNodeUserSids(nextNodeUserSids_); +// if (isTure) { +// bv.setNextNodeUserSids(nextNodeUserSids_); +// } else { +// bv.setNextNodeUserSids(entity.getSalesUserSid()); // } + //流程定义id + bv.setModelId(ProcDefEnum.LOANSUBLETAPPLY.getProDefId()); + if (r == 1) { + //流程定义id + bv.setModelId(ProcDefEnum.LOANSUBLETAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(msgBusinessSid); + messageFlowableQuery.setModuleName("交回车辆二次转租申请"); + SysUserVo userVo = sysUserFeign.fetchBySid(loanSubletApply1.getCreateBySid()).getData(); + if (userVo != null) { + if (StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + messageFlowableQuery.setMsgTitle("交回车辆二次转租申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + LoanSubletApply loanSubletApply2 = fetchBySid(dto.getSid()); + bv.setTaskId(dto.getTaskId()); + bv.setTaskDefKey(loanSubletApply2.getNodeSid()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } return rb; } public ResultBean complete(BusinessVariables bv) { ResultBean rb = ResultBean.fireFail(); -// - return null; + String businessSid = bv.getBusinessSid(); + LoanSubletApply loanSubletApply = this.fetchBySid(businessSid); + if (bv.getTaskId().equals(loanSubletApply.getTaskId())) { + bv.setOrgSidPath(loanSubletApply.getOrgSidPath()); + //流程中的参数赋值 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); +// if (bv.getTaskDefKey().equals("Activity_1078xxs")) { +// if (StringUtils.isNotBlank(loanCustomerRecord.getManageSid())) { +// bv.setNextNodeUserSids(loanCustomerRecord.getManageSid()); +// } else { +// bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); +// } +// } + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + LoanSubletApply subletApply = fetchBySid(businessSid); + subletApply.setClosingDate(new DateTime()); + baseMapper.updateById(subletApply); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + //推送交回车辆出库 + Future future1 = pool.submit(() -> { + pushVehOutBound(subletApply); + }); + //维护客户信息 + Future future2 = pool.submit(() -> { + updateCustomer(subletApply); + }); + } catch (Exception e) { + e.printStackTrace(); + } + + } else { + //极光推送 + loanSubletApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanSubletApply.getProcDefId()); + messageFlowVo.setProcInsId(loanSubletApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次转租申请"); + messageFlowableQuery.setMsgContent(loanSubletApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆二次转租申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + private void updateCustomer(LoanSubletApply subletApply) { + if (StringUtils.isNotBlank(subletApply.getNewCustomerSid())) { + String newCustomerSid = subletApply.getNewCustomerSid(); + CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(newCustomerSid).getData(); + if (null != customerTemp) { + if (StringUtils.isNotBlank(subletApply.getIdNumber())) { + customerTemp.setIDNumber(subletApply.getIdNumber()); + } + if (StringUtils.isNotBlank(subletApply.getEndDate())) { + customerTemp.setEndDate(subletApply.getEndDate()); + } + crmCustomerTempFeign.updateByEntity(customerTemp); + } + } } + private void pushVehOutBound(LoanSubletApply subletApply) { + LoanOutboundApplyDto dto = new LoanOutboundApplyDto(); + List vinList = new ArrayList<>(); + BeanUtil.copyProperties(subletApply, dto); + dto.setApplySid(subletApply.getSid()); + dto.setDisposalKey("04"); + dto.setDisposal("二次转租"); + if (StringUtils.isNotBlank(subletApply.getVinOwner())) { + dto.setNewCustomer(subletApply.getVinOwner()); + } + List vinLists = loanSubletVehService.selByMainSid(subletApply.getSid()); + if (!vinLists.isEmpty()) { + vinLists.forEach(v -> { + OutboundVinListDto outboundVinListDto = new OutboundVinListDto(); + BeanUtil.copyProperties(v, outboundVinListDto); + LoanReturnVehLedger loanReturnVehLedger = baseMapper.selVehLedgerBySid(v.getLedgerSid()); + if (null != loanReturnVehLedger) { + if (StringUtils.isNotBlank(loanReturnVehLedger.getLocation())) { + outboundVinListDto.setLocation(loanReturnVehLedger.getLocation()); + } + } + vinList.add(outboundVinListDto); + }); + } + dto.setVinList(vinList); + loanOutboundApplyService.saveOutbound(dto); + } + /** + * 撤回 + * + * @param query + * @return + */ public ResultBean revokeProcess(SubletTaskQuery query) { ResultBean rb = ResultBean.fireFail(); if (StringUtils.isBlank(query.getUserSid())) { return rb.setMsg("参数错误:userSid"); } -// LoanRedemptionApply loanRedemptionApply = fetchBySid(query.getBusinessSid()); -// String businessTaskId = loanRedemptionApply.getTaskId(); -// if (StringUtils.isNotBlank(businessTaskId)) { -// if (businessTaskId.equals(query.getTaskId())) { -// FlowTaskVo flowTaskVo = new FlowTaskVo(); -// BeanUtil.copyProperties(query, flowTaskVo); -// ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); -// if (!resultBean.getSuccess()) { -// return rb.setMsg(resultBean.getMsg()); -// } -// updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); -// return rb.success().setData(resultBean.getData()); -// } -// } + LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSubletApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + loanSubletApply = fetchBySid(query.getBusinessSid()); + String procId = loanSubletApply.getProcInstId(); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + String nextName = listResultBean.getData().get(0).getName_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if ("发起申请".equals(nextName)) { + //退回车辆处置状态 + List vinLists1 = loanSubletVehService.selByMainSid(query.getBusinessSid()); + if (!vinLists1.isEmpty()) { + vinLists1.stream().forEach(v -> { + loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } + } + return rb.success().setData(resultBean.getData()); + } + } return rb.setMsg("操作失败,提交的数据不一致!"); } public ResultBean taskReject(SubletTaskQuery query) { ResultBean rb = ResultBean.fireFail(); -// String businessSid = query.getBusinessSid(); -// LoanRedemptionApply loanRedemptionApply = fetchBySid(businessSid); -// if (loanRedemptionApply == null) { -// return rb.setMsg("该申请不存在"); -// } -// String businessTaskId = loanRedemptionApply.getTaskId(); -// if (StringUtils.isNotBlank(businessTaskId)) { -// if (businessTaskId.equals(query.getTaskId())) { -// if (StringUtils.isBlank(query.getComment())) { -// return rb.setMsg("请填写意见"); -// } -// if (StringUtils.isBlank(query.getUserSid())) { -// return rb.setMsg("参数错误:userSid"); -// } -// FlowTaskVo flowTaskVo = new FlowTaskVo(); -// BeanUtil.copyProperties(query, flowTaskVo); -// Map variables = new HashMap<>(); -// Map appMap = new HashMap<>(); -// appMap.put("sid", businessSid); -// variables.put("app", appMap); -// //若有网关,则赋值网关中判断的字段。 -//// boolean isTure = true; -//// //去查询是否同意 -//// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { -//// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { -//// isTure = false; -//// } -//// } -//// variables.put("isTure", isTure); -// flowTaskVo.setValues(variables); -// ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); -// if (!resultBean.getSuccess()) { -// return rb.setMsg(resultBean.getMsg()); -// } -// UpdateFlowFieldVo ufVo = resultBean.getData(); -// Map map = BeanUtil.beanToMap(ufVo); -// //更新业务中的流程相关的参数 -// updateFlowFiled(map); -// //极光推送 -// loanRedemptionApply = fetchBySid(businessSid); -// MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); -// MessageFlowVo messageFlowVo = new MessageFlowVo(); -// BeanUtil.copyProperties(ufVo, messageFlowVo); -// String procId = loanRedemptionApply.getProcInstId(); -// messageFlowVo.setProcInsId(procId); -// messageFlowVo.setProcDefId(loanRedemptionApply.getProcDefId()); -// messageFlowableQuery.setUfVo(messageFlowVo); -// messageFlowableQuery.setAppMap(appMap); -// messageFlowableQuery.setBusinessSid(businessSid); -// messageFlowableQuery.setModuleName("车辆交回赎回申请"); -// ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); -// String nextName = listResultBean.getData().get(0).getName_(); -// String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); -// List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); -//// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) { -// if ("发起申请".equals(nextName)) { -// messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); -// } else { -// SysUserVo userVo = sysUserFeign.fetchBySid(loanRedemptionApply.getCreateBySid()).getData(); -// if (userVo != null) { -// if (StringUtils.isNotBlank(userVo.getName())) { -// messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); -// } + String businessSid = query.getBusinessSid(); + LoanSubletApply loanSubletApply = fetchBySid(businessSid); + if (loanSubletApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanSubletApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; // } // } -// messageFlowableQuery.setMsgTitle("车辆交回赎回申请"); -// ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); -// return rb.success(); -// } -// } +// variables.put("isTure", isTure); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + loanSubletApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanSubletApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(loanSubletApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次转租申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); +// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) { + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + //退回车辆处置状态 + List vinLists1 = loanSubletVehService.selByMainSid(businessSid); + if (!vinLists1.isEmpty()) { + vinLists1.stream().forEach(v -> { + loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } + } else { + SysUserVo userVo = sysUserFeign.fetchBySid(loanSubletApply.getCreateBySid()).getData(); + if (userVo != null) { + if (StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + } + messageFlowableQuery.setMsgTitle("交回车辆二次转租申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } return rb.setMsg("操作失败!提交的数据不一致!"); } public ResultBean breakProcess(SubletTaskQuery query) { ResultBean rb = ResultBean.fireFail(); -// if (StringUtils.isBlank(query.getInstanceId())) { -// return rb.setMsg("参数错误:instanceId"); -// } -// if (StringUtils.isBlank(query.getUserSid())) { -// return rb.setMsg("参数错误:userSid"); -// } -// if (StringUtils.isBlank(query.getComment())) { -// return rb.setMsg("请填写意见"); -// } -// LoanRedemptionApply loanRedemptionApply = fetchBySid(query.getBusinessSid()); -// String businessTaskId = loanRedemptionApply.getTaskId(); -// if (StringUtils.isNotBlank(businessTaskId)) { -// if (query.getUserSid().equals(loanRedemptionApply.getCreateBySid())) { -// FlowTaskVo flowTaskVo = new FlowTaskVo(); -// BeanUtil.copyProperties(query, flowTaskVo); -// ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); -// if (!resultBean.getSuccess()) { -// return rb.setMsg(resultBean.getMsg()); -// } -// Map map = BeanUtil.beanToMap(resultBean.getData()); -// updateFlowFiled(map); -// //终止任务后操作 -// LoanRedemptionApply entity = fetchBySid(query.getBusinessSid()); -// if (entity.getNodeState().equals("终止")) { -// -// // todo 修改交回车辆状态 -// -// } -// return rb.success().setData(resultBean.getData()); -// } else { -// if (businessTaskId.equals(query.getTaskId())) { -// FlowTaskVo flowTaskVo = new FlowTaskVo(); -// BeanUtil.copyProperties(query, flowTaskVo); -// ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); -// if (!resultBean.getSuccess()) { -// return rb.setMsg(resultBean.getMsg()); -// } -// Map map = BeanUtil.beanToMap(resultBean.getData()); -// updateFlowFiled(map); -// //终止任务后操作 -// LoanRedemptionApply entity = fetchBySid(query.getBusinessSid()); -// if (entity.getNodeState().equals("终止")) { -// -// // todo 修改交回车辆状态 -// -// } -// return rb.success().setData(resultBean.getData()); -// } -// } -// -// } + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSubletApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(loanSubletApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止任务后操作 + LoanSubletApply entity = fetchBySid(query.getBusinessSid()); + if (entity.getNodeState().equals("终止")) { + // 修改交回车辆台账状态 + List vinLists = loanSubletVehService.selByMainSid(query.getBusinessSid()); + if (!vinLists.isEmpty()) { + vinLists.stream().forEach(v -> { + loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } + + } + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止任务后操作 + LoanSubletApply entity = fetchBySid(query.getBusinessSid()); + if (entity.getNodeState().equals("终止")) { + // 修改交回车辆台账状态 + List vinLists = loanSubletVehService.selByMainSid(query.getBusinessSid()); + if (!vinLists.isEmpty()) { + vinLists.stream().forEach(v -> { + loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置"); + }); + } + } + return rb.success().setData(resultBean.getData()); + } + } + + } return rb.setMsg("操作失败!提交的数据不一致!"); } @@ -868,56 +961,56 @@ public class LoanSubletApplyService extends MybatisBaseService> getNextNodesForSubmit(SubletGetNodeQuery query) { -// ResultBean> rb = ResultBean.fireFail(); -// BusinessVariables bv = new BusinessVariables(); -// BeanUtil.copyProperties(query, bv); -// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 -// Map variables = new HashMap<>(); -// -// //根据业务sid查询排产信息 -// LoanRedemptionApply loanRedemptionApply = fetchBySid(query.getBusinessSid()); -// //若有网关,则赋值网关中判断的字段。 -//// boolean isTure = true; -//// //去查询是否同意 -//// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { -//// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { -//// isTure = false; -//// } -//// } -//// variables.put("isTure", isTure); -// bv.setFormVariables(variables); -// bv.setModelId(loanRedemptionApply.getProcDefId()); -// ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); -// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo -// List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), RedemptionGetNodeVo.class)).collect(Collectors.toList()); -// return rb.success().setData(voList); - return null; + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + + //根据业务sid查询排产信息 + LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid()); + //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + bv.setFormVariables(variables); + bv.setModelId(loanSubletApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SubletGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } public ResultBean> getPreviousNodesForReject(SubletGetNodeQuery query) { -// ResultBean> rb = ResultBean.fireFail(); -// BusinessVariables bv = new BusinessVariables(); -// BeanUtil.copyProperties(query, bv); -// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 -// Map variables = new HashMap<>(); -// //根据业务sid查询排产信息 -// LoanRedemptionApply loanRedemptionApply = fetchBySid(query.getBusinessSid()); -//// //若有网关,则赋值网关中判断的字段。 -//// boolean isTure = true; -//// //去查询是否同意 -//// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { -//// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { -//// isTure = false; -//// } -//// } -//// variables.put("isTure", isTure); -// bv.setFormVariables(variables); -// bv.setModelId(loanRedemptionApply.getProcDefId()); -// ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); -// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo -// List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), RedemptionGetNodeVo.class)).collect(Collectors.toList()); -// return rb.success().setData(voList); - return null; + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询排产信息 + LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid()); +// //若有网关,则赋值网关中判断的字段。 +// boolean isTure = true; +// //去查询是否同意 +// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) { +// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) { +// isTure = false; +// } +// } +// variables.put("isTure", isTure); + bv.setFormVariables(variables); + bv.setModelId(loanSubletApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SubletGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } public ResultBean delegate(SubletDelegateQuery query) { @@ -930,143 +1023,107 @@ public class LoanSubletApplyService extends MybatisBaseService appDetail(String sid) { - return null; -// ResultBean rb = ResultBean.fireFail(); -// AppRedemptionDetailsVo vo = new AppRedemptionDetailsVo(); -// LoanRedemptionApply loanRedemptionApply = fetchBySid(sid); -// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); -// if (null != loanRedemptionApply) { -// vo.setSid(sid); -// String dept = ""; -// String applyName = ""; -// //---------------------------------------------------- -// if (StringUtils.isNotBlank(loanRedemptionApply.getBorrowerName())) { -// vo.setBorrName(loanRedemptionApply.getBorrowerName()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getCustomer())) { -// vo.setCustName(loanRedemptionApply.getCustomer()); -// } -// if (null != loanRedemptionApply.getFees()) { -// vo.setFees(loanRedemptionApply.getFees().toString()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getFeesShows())) { -// vo.setFeesShows(loanRedemptionApply.getFeesShows()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getLoanContractNo())) { -// vo.setLoanContractNo(loanRedemptionApply.getLoanContractNo()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getLocation())) { -// vo.setLocation(loanRedemptionApply.getLocation()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getBankName())) { -// vo.setBankName(loanRedemptionApply.getBankName()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getBankContractNo())) { -// vo.setBankContractNo(loanRedemptionApply.getBankContractNo()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getPlan())) { -// vo.setPlan(loanRedemptionApply.getPlan()); -// } -// if (null != loanRedemptionApply.getAmount()) { -// vo.setAmount(loanRedemptionApply.getAmount().toString()); -// } -// //---------------------------------------------------- -// if (StringUtils.isNotBlank(loanRedemptionApply.getProcInstId())) { -// vo.setProcInsId(loanRedemptionApply.getProcInstId()); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getTaskId())) { -// vo.setTaskId(loanRedemptionApply.getTaskId()); -// } -// if (null != loanRedemptionApply.getApplyDate()) { -// vo.setTime(sdf.format(loanRedemptionApply.getApplyDate())); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getDept())) { -// dept = loanRedemptionApply.getDept(); -// } -// if (StringUtils.isNotBlank(loanRedemptionApply.getApplyName())) { -// applyName = loanRedemptionApply.getApplyName(); -// } -// vo.setPublishInfo(dept + "-" + applyName); -// List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.REDEMPTION.getAttachType()); -// fileList.removeAll(Collections.singleton(null)); -// if (!fileList.isEmpty()) { -// List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). -// collect(Collectors.toList()); -// vo.setFiles(files); -// } -// List vinList = new ArrayList<>(); -// List redemptionVinLists = loanRedemptionVehService.selByMainSid(sid); -// if (!redemptionVinLists.isEmpty()) { -// redemptionVinLists.stream().forEach(v -> { -// if (v.getVehType().equals("主车")) { -// vo.setCsjlSid(v.getBusVinSid()); -// } -// AppVinListVo appVinListVo = new AppVinListVo(); -// if (StringUtils.isNotBlank(v.getVinNo())) { -// appVinListVo.setVinNo(v.getVinNo()); -// } -// if (StringUtils.isNotBlank(v.getVehModel())) { -// appVinListVo.setModel(v.getVehModel()); -// } -// if (StringUtils.isNotBlank(v.getVehType())) { -// appVinListVo.setVehType(v.getVehType()); -// } -// if (StringUtils.isNotBlank(v.getVehMark())) { -// appVinListVo.setVehMark(v.getVehMark()); -// } -// vinList.add(appVinListVo); -// }); -// vo.setVinList(vinList); -// } -// if (StringUtils.isNotBlank(vo.getCsjlSid())) { -// AlrepaidAndArrVo alrepaidAndArr = loanRestoreReportApplyService.getAlrepaidAndArr(vo.getCsjlSid()); -// if (null != alrepaidAndArr) { -// String allPeriod = ""; -// String nowBeMoney = ""; -// String nowPeriod = ""; -// String fund = ""; -// //已还金额 -// if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoney())) { -// vo.setAlRepaidMoney(alrepaidAndArr.getAlRepaidMoney()); -// } -// //已还金额换算期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getAlRepaidMoneyConPeriod())) { -// vo.setAlRepaidMoneyConPeriod(alrepaidAndArr.getAlRepaidMoneyConPeriod()); -// } -// //逾期金额换算期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getBeOverdueMoneyAndPeriod())) { -// vo.setBeOverdueMoneyAndPeriod(alrepaidAndArr.getBeOverdueMoneyAndPeriod()); -// } -// //总期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getNper())) { -// allPeriod = alrepaidAndArr.getNper(); -// } -// //当前逾期金额 -// if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentBeMoney())) { -// nowBeMoney = alrepaidAndArr.getCurrentBeMoney(); -// } -// //当前期数 -// if (StringUtils.isNotBlank(alrepaidAndArr.getCurrentPeriod())) { -// nowPeriod = alrepaidAndArr.getCurrentPeriod(); -// } -// //未到期金额 -// if (StringUtils.isNotBlank(alrepaidAndArr.getUnexpiredMoney())) { -// vo.setUnexpiredMoney(alrepaidAndArr.getUnexpiredMoney()); -// } -// //其中资金占用费 -// if (StringUtils.isNotBlank(alrepaidAndArr.getWheFundOccMoney())) { -// fund = alrepaidAndArr.getWheFundOccMoney(); -// } -// if (StringUtils.isNotBlank(allPeriod) && StringUtils.isNotBlank(nowPeriod)) { -// vo.setQsCount(allPeriod + "/" + nowPeriod); -// } -// if (StringUtils.isNotBlank(nowBeMoney) && StringUtils.isNotBlank(fund)) { -// vo.setYqzjzyMoney(nowBeMoney + "/" + fund); -// } -// } -// } -// } -// return rb.success().setData(vo); + ResultBean rb = ResultBean.fireFail(); + AppSubletDetailsVo vo = new AppSubletDetailsVo(); + LoanSubletApply entity = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (null != entity) { + vo.setSid(sid); + String dept = ""; + String applyName = ""; + //---------------------------------------------------- + if (StringUtils.isNotBlank(entity.getBorrowerName())) { + vo.setBorrName(entity.getBorrowerName()); + } + if (StringUtils.isNotBlank(entity.getCustomer())) { + vo.setCustName(entity.getCustomer()); + } + if (StringUtils.isNotBlank(entity.getVinOwner())) { + vo.setVinOwner(entity.getVinOwner()); + } + if (StringUtils.isNotBlank(entity.getCustomerType())) { + vo.setCustomerType(entity.getCustomerType()); + } + if (StringUtils.isNotBlank(entity.getPhoneNum())) { + vo.setPhoneNum(entity.getPhoneNum()); + } + if (StringUtils.isNotBlank(entity.getCertificateType())) { + vo.setCertificateType(entity.getCertificateType()); + } + if (StringUtils.isNotBlank(entity.getEndDate())) { + vo.setEndDate(entity.getEndDate()); + } + if (null != entity.getAgree()) { + vo.setAgree(entity.getAgree().toString()); + } + if (StringUtils.isNotBlank(entity.getIdNumber())) { + vo.setIdNumber(entity.getIdNumber()); + } + if (StringUtils.isNotBlank(entity.getCardAddress())) { + vo.setCardAddress(entity.getCardAddress()); + } + if (StringUtils.isNotBlank(entity.getBankName())) { + vo.setBankName(entity.getBankName()); + } + if (StringUtils.isNotBlank(entity.getBankContractNo())) { + vo.setBankContractNo(entity.getBankContractNo()); + } + if (StringUtils.isNotBlank(entity.getLoanContractNo())) { + vo.setLoanContractNo(entity.getLoanContractNo()); + } + if (StringUtils.isNotBlank(entity.getPlan())) { + vo.setPlan(entity.getPlan()); + } + if (null != entity.getAmount()) { + vo.setAmount(entity.getAmount().toString()); + } + //---------------------------------------------------- + if (StringUtils.isNotBlank(entity.getProcInstId())) { + vo.setProcInsId(entity.getProcInstId()); + } + if (StringUtils.isNotBlank(entity.getTaskId())) { + vo.setTaskId(entity.getTaskId()); + } + if (null != entity.getApplyDate()) { + vo.setTime(sdf.format(entity.getApplyDate())); + } + if (StringUtils.isNotBlank(entity.getDept())) { + dept = entity.getDept(); + } + if (StringUtils.isNotBlank(entity.getApplyName())) { + applyName = entity.getApplyName(); + } + vo.setPublishInfo(dept + "-" + applyName); + List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.SUBLETAPPLY.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + vo.setFiles(files); + } + List vinList = new ArrayList<>(); + List vinLists = loanSubletVehService.selByMainSid(sid); + if (!vinLists.isEmpty()) { + vinLists.stream().forEach(v -> { + AppSubletVinListVo appVinListVo = new AppSubletVinListVo(); + if (StringUtils.isNotBlank(v.getVinNo())) { + appVinListVo.setVinNo(v.getVinNo()); + } + if (StringUtils.isNotBlank(v.getVehModel())) { + appVinListVo.setModel(v.getVehModel()); + } + if (StringUtils.isNotBlank(v.getVehType())) { + appVinListVo.setVehType(v.getVehType()); + } + if (StringUtils.isNotBlank(v.getVehMark())) { + appVinListVo.setVehMark(v.getVehMark()); + } + vinList.add(appVinListVo); + }); + vo.setVinList(vinList); + } + } + return rb.success().setData(vo); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletveh/LoanSubletVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletveh/LoanSubletVehMapper.xml index d5490e4caf..236e65d085 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletveh/LoanSubletVehMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletveh/LoanSubletVehMapper.xml @@ -4,7 +4,7 @@ DELETE - FROM loan_redemption_veh + FROM loan_sublet_veh WHERE mainSid = #{mainSid} + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java index d272380066..e2ec9cc311 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java @@ -27,4 +27,8 @@ public class LoanTransferPaymentRecordService extends MybatisBaseService selByMainSidAndPaySid(String sid, String paySid) { + return baseMapper.selByMainSidAndPaySid(sid,paySid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java index 61b33e5257..10152a5acf 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java @@ -71,7 +71,9 @@ public interface LoanVehClearanceApplyMapper extends BaseMapper lockCarList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - LoanVehClearanceVehInit initVehListBySaleVehSid(String saleVehSid); - int updateFlowFiled(Map map); + + int selectBySid(String join); + + LoanVehClearanceVehInit initVehListBySaleVehSidYCJK(String saleVehSid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml index 85cd9ff669..655f7d37d0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml @@ -43,122 +43,6 @@ - - UPDATE loan_veh_clearance_apply SET nodeState=#{nodeState}, nodeSid=#{taskDefKey}, modifyTime = NOW() @@ -173,4 +57,134 @@ WHERE sid=#{sid} + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyRest.java index 14334dbb93..34bf5dccab 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyRest.java @@ -93,9 +93,7 @@ public class LoanVehClearanceApplyRest implements LoanVehClearanceApplyFeign { @ApiOperation("根据sid批量删除") @DeleteMapping("/delBySids") public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - loanVehClearanceApplyService.delBySids(sids); - return rb.success(); + return loanVehClearanceApplyService.delAllBySids(sids); } @Override diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java index 67f71201cd..c6d01933a6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java @@ -388,11 +388,6 @@ public class LoanVehClearanceApplyService extends MybatisBaseService saleVehSids = query.getSaleVehSids(); LoanVehClearanceApplyDetailsVo loanVehClearanceApplyDetailsVo = new LoanVehClearanceApplyDetailsVo(); @@ -410,7 +405,7 @@ public class LoanVehClearanceApplyService extends MybatisBaseService loanVehClearanceVehDetailsVoList = new ArrayList<>(); for (String saleVehSid : saleVehSids) { - LoanVehClearanceVehInit loanVehClearanceVehInit = baseMapper.initVehListBySaleVehSid(saleVehSid); + LoanVehClearanceVehInit loanVehClearanceVehInit = baseMapper.initVehListBySaleVehSidYCJK(saleVehSid); LoanVehClearanceVehDetailsVo loanVehClearanceVehDetailsVo = new LoanVehClearanceVehDetailsVo(); BeanUtil.copyProperties(loanVehClearanceVehInit, loanVehClearanceVehDetailsVo); loanVehClearanceVehDetailsVo.setCustomerName(loanVehClearanceVehInit.getCustName()); @@ -503,6 +498,11 @@ public class LoanVehClearanceApplyService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); UpdateFlowFieldVo ufVo = voResultBean.getData(); updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //修改远程控制状态 + List loanVehClearanceVehList = dto.getLoanVehClearanceVehList(); + for (LoanVehClearanceVehDto loanVehClearanceVehDto : loanVehClearanceVehList) { + loanBeCollectionVehService.updateLockState(loanVehClearanceVehDto.getSaleVehSid(), "4", "1"); + } //极光推送 loanVehClearanceApply = fetchBySid(businessSid); MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); @@ -596,6 +596,9 @@ public class LoanVehClearanceApplyService extends MybatisBaseService map = BeanUtil.beanToMap(resultBean.getData()); updateFlowFiled(map); + List loanVehClearanceVehDetailsVoList = loanVehClearanceVehService.selByMainSid(query.getBusinessSid()); + for (LoanVehClearanceVehDetailsVo loanVehClearanceVehDetailsVo : loanVehClearanceVehDetailsVoList) { + loanBeCollectionVehService.updateLockState(loanVehClearanceVehDetailsVo.getSaleVehSid(), "1", "4"); + } return rb.success().setData(resultBean.getData()); } else { if (businessTaskId.equals(query.getTaskId())) { @@ -755,6 +762,10 @@ public class LoanVehClearanceApplyService extends MybatisBaseService map = BeanUtil.beanToMap(resultBean.getData()); updateFlowFiled(map); + List loanVehClearanceVehDetailsVoList = loanVehClearanceVehService.selByMainSid(query.getBusinessSid()); + for (LoanVehClearanceVehDetailsVo loanVehClearanceVehDetailsVo : loanVehClearanceVehDetailsVoList) { + loanBeCollectionVehService.updateLockState(loanVehClearanceVehDetailsVo.getSaleVehSid(), "1", "4"); + } return rb.success().setData(resultBean.getData()); } } @@ -770,4 +781,18 @@ public class LoanVehClearanceApplyService extends MybatisBaseService 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + for (String sid : sids) { + loanVehClearanceVehService.delByMainSid(sid); + } + return rb.success(); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht-g.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht-g.ftl new file mode 100644 index 0000000000..bd4ea5f126 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht-g.ftl @@ -0,0 +1,2050 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 合同编号: + + + + + + + + + + D${con!} + + + + + + + + + + + + + + + + + + + + + + + + 甲方: + + + + + + + + + + + ${jf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 乙方: + + + + + + + + + + + ${yf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 签订 + + + + + + + + + + 日期 + + + + + + + + + + + + + + + + + + + + ${qdDate!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 甲、乙双方经协商就车辆登记事宜达成一致订立本合同, + + + + + + + + + 共同遵守执行。 + + + + + + + + + + + + + + + + + + + + 一、车辆出售方 + + + + + + + + + + + ${clcsf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 二、车辆信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 品牌 + + + + + + + + + + + + + + + + + + + + + + + + + + 车架号 + + + + + + + + + + + + + + + + + + + + + + + + + + 发动机号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${id!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${brandName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${vinNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${fdjNo!} + + + + + + + + + + + + + + + + + + + + + + + 三、车辆登记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 方同意 + + + + + + + + + + 乙方 + + + + + + + + + + + + + + + + + + + 其购买的上述 + + + + + + + + + 车辆发票开至甲方名下 + + + + + + + + + + ,并 + + + + + + + + + 同意将车辆登记在甲方名下。 + + + + + + + + + + + + + + + + + + + + 四、权利义务 + + + + + + + + + + + + + + + + + + + + 甲方不是车辆所有权人。甲方有义务协助乙方办理 + + + + + + + + + 车辆购置税、登记、营运、抵押、事故处理、保险理赔等手续。 + + + + + + + + + 甲方不得用车辆进行债务担保,不得转让、变卖、出租车辆。 + + + + + + + + + + + + + + + + + + + + + 五、车辆经营 + + + + + + + + + + + + + + + + + + + + + 甲方不得干涉乙方经营车辆。车辆由乙方自主经营,自负盈亏。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 甲方: 乙方: + + + + + + + + + + + + + + + + + + + + + + + + + + + CHINA + 1 + 88 + 506 + 4 + 1 + 229 + false + false + 593 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T02:39:00Z + Administrator + WPS_1599826008 + 2024-01-26T09:27:54Z + 2 + + + + + + + + 2052-12.1.0.16120 + + + AEAA9A1CDB0A4233B6396E73DBE7CB5A_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht.ftl new file mode 100644 index 0000000000..4209ab58fd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cldjht.ftl @@ -0,0 +1,2060 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 合同编号: + + + + + + + + + + D${con!} + + + + + + + + + + + + + + + + + + + + + + + + 甲方: + + + + + + + + + + + ${jf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 乙方: + + + + + + + + + + + ${yf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 签订 + + + + + + + + + + 日期 + + + + + + + + + + + + + + + + + + + + ${qdDate!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 甲、乙双方经协商就车辆登记事宜达成一致订立本合同, + + + + + + + + + 共同遵守执行。 + + + + + + + + + + + + + + + + + + + + 一、车辆出售方 + + + + + + + + + + + ${clcsf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 二、车辆信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 品牌 + + + + + + + + + + + + + + + + + + + + + + + + + + 车架号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 发动机号 + + + + + <#list list as ls> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.id!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.brandName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.vinNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.fdjNo!} + + + + + + + + + + + + + + + + + + + + + + + + 三、车辆登记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 方同意 + + + + + + + + + + 乙方 + + + + + + + + + + + + + + + + + + + 其购买的上述 + + + + + + + + + 车辆发票开至甲方名下 + + + + + + + + + + ,并 + + + + + + + + + 同意将车辆登记在甲方名下。 + + + + + + + + + + + + + + + + + + + + 四、权利义务 + + + + + + + + + + + + + + + + + + + + 甲方不是车辆所有权人。甲方有义务协助乙方办理 + + + + + + + + + 车辆购置税、登记、营运、抵押、事故处理、保险理赔等手续。 + + + + + + + + + 甲方不得用车辆进行债务担保,不得转让、变卖、出租车辆。 + + + + + + + + + + + + + + + + + + + + + 五、车辆经营 + + + + + + + + + + + + + + + + + + + + + 甲方不得干涉乙方经营车辆。车辆由乙方自主经营,自负盈亏。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 甲方: 乙方: + + + + + + + + + + + + + + + + + + + + + + + + + + + CHINA + 1 + 88 + 506 + 4 + 1 + 229 + false + false + 593 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T02:39:00Z + Administrator + WPS_1599826008 + 2024-01-26T06:18:25Z + 2 + + + + + + + + 2052-12.1.0.16120 + + + 5977D0D9F88A46F790AA7B6200E3F090_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cljszcght.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cljszcght.ftl index 37e34a560d..5e12370eda 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cljszcght.ftl +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/cljszcght.ftl @@ -65,10 +65,10 @@ - + @@ -76,6 +76,7 @@ + @@ -84,13 +85,37 @@ - + + - - - + + + + + + + + + + + + + 合同编号: + + + + + + + + + + C${con!} + + + @@ -98,6 +123,7 @@ + @@ -106,6 +132,7 @@ + @@ -113,26 +140,39 @@ - - - + + + + + + + + + + + + + + - ${partyA!} + ${jf!} + - + + @@ -143,11 +183,12 @@ + - + @@ -156,6 +197,7 @@ + @@ -164,6 +206,7 @@ + @@ -171,78 +214,84 @@ - - - + + + + - - ${partyB!} + + + - + ${yf!} + - - + + + - 身份证号: + 证件号码 - - - - - + + + + - ${idNo!} + + - + + - + ${idNo!} + - + @@ -251,7 +300,7 @@ - + @@ -264,18 +313,17 @@ - 签订时间: + 签订 - + - - - - + + + - ${date!} + 日期 @@ -283,9 +331,8 @@ - - + @@ -293,18 +340,20 @@ + - 签订地点: + - - - + + + + - ${address!} + ${qdDate!} @@ -314,7 +363,16 @@ - + + + + + + + + + + 签订地点: @@ -323,10 +381,20 @@ - + + + + + + + + + + ${qddd!} + @@ -335,7 +403,7 @@ - + @@ -344,6 +412,7 @@ + @@ -351,12 +420,11 @@ + - - 根据乙方需求,甲方需要为乙方采购部分车辆及上装、配件或甲方为乙方垫款支付部分车辆及上装、配件价款(以下简称标的物)。本合同双方当事人本着自愿、平等原则,经充分协商,签订本合同,以共同遵守。 - + 根据乙方需求,甲方需要为乙方采购部分车辆及上装、配件或甲方为乙方垫款支付部分车辆及上装、配件价款(以下简称标的物)。本合同双方当事人本着自愿、平等原则,经充分协商,签订本合同,以共同遵守。 @@ -365,6 +433,7 @@ + @@ -372,6 +441,7 @@ + @@ -384,13 +454,15 @@ - - + + + + @@ -400,10 +472,11 @@ + - 第一种 + 第一种 @@ -412,6 +485,7 @@ + @@ -419,6 +493,7 @@ + @@ -427,6 +502,7 @@ + @@ -435,26 +511,40 @@ - - - + + + + - ${contractNo!} + ${con1!} + + + + + + + + + + + + - + + @@ -467,6 +557,7 @@ + @@ -474,10 +565,21 @@ + + - ${dez!} 第二种 + ${dez!} + + + + + + + + + 第二种 @@ -486,6 +588,7 @@ + @@ -493,6 +596,7 @@ + @@ -500,28 +604,41 @@ - - - + + + + + + + + + + + + + + - ${price!} + ${je!} + - + + @@ -534,6 +651,7 @@ + @@ -541,6 +659,7 @@ + @@ -553,6 +672,7 @@ + @@ -560,6 +680,7 @@ + @@ -572,6 +693,7 @@ + @@ -579,12 +701,11 @@ + - - 乙方选择第一种方式购买标的物的,乙方负责验收标的物。本合同签署后即可向第三方支付定金。乙方应认真负责验收,待标的物达到接收条件后,乙方向甲方提交《付款申请书》,甲方按照申请付款金额向第三方付款(甲方已经支付定金的,付款时扣除定金)。 - + 乙方选择第一种方式购买标的物的,乙方负责验收标的物。本合同签署后即可向第三方支付定金。乙方应认真负责验收,待标的物达到接收条件后,乙方向甲方提交《付款申请书》,甲方按照申请付款金额向第三方付款(甲方已经支付定金的,付款时扣除定金)。 @@ -593,6 +714,7 @@ + @@ -600,6 +722,7 @@ + @@ -612,6 +735,7 @@ + @@ -619,6 +743,7 @@ + @@ -631,6 +756,7 @@ + @@ -638,6 +764,7 @@ + @@ -650,6 +777,7 @@ + @@ -657,6 +785,7 @@ + @@ -670,6 +799,7 @@ + @@ -677,12 +807,11 @@ + - - 乙方选择第一种方式购买标的物,甲方履行《车辆买卖合同》交付标的物的方式为指示交付。乙方从第三方受领标的物视为从甲方处受领标的物。乙方与第三方因车辆交接发生纠纷,乙方与第三方自行解决,甲方不承担责任。 - + 乙方选择第一种方式购买标的物,甲方履行《车辆买卖合同》交付标的物的方式为指示交付。乙方从第三方受领标的物视为从甲方处受领标的物。乙方与第三方因车辆交接发生纠纷,乙方与第三方自行解决,甲方不承担责任。 @@ -691,6 +820,7 @@ + @@ -698,6 +828,7 @@ + @@ -710,6 +841,7 @@ + @@ -717,6 +849,7 @@ + @@ -729,6 +862,7 @@ + @@ -736,6 +870,7 @@ + @@ -748,6 +883,7 @@ + @@ -755,6 +891,7 @@ + @@ -767,6 +904,7 @@ + @@ -774,6 +912,7 @@ + @@ -786,6 +925,7 @@ + @@ -793,6 +933,7 @@ + @@ -804,8 +945,9 @@ - + + @@ -818,6 +960,7 @@ + @@ -826,6 +969,7 @@ + @@ -836,6 +980,7 @@ + @@ -845,6 +990,7 @@ + @@ -855,6 +1001,7 @@ + @@ -864,6 +1011,7 @@ + @@ -877,6 +1025,7 @@ + @@ -885,6 +1034,7 @@ + @@ -898,6 +1048,7 @@ + @@ -906,6 +1057,7 @@ + @@ -918,6 +1070,7 @@ + @@ -927,6 +1080,7 @@ + @@ -940,6 +1094,7 @@ + @@ -949,6 +1104,7 @@ + @@ -962,6 +1118,7 @@ + @@ -971,6 +1128,7 @@ + @@ -985,6 +1143,7 @@ + @@ -993,6 +1152,7 @@ + @@ -1003,6 +1163,7 @@ + @@ -1012,6 +1173,7 @@ + @@ -1024,6 +1186,7 @@ + @@ -1036,6 +1199,7 @@ + @@ -1044,18 +1208,50 @@ + - 甲方(盖章): 乙方(签名按手印): + 甲方: + + + + + + + + + + + + + + + + + + + + + 乙方: + + + + + + + + + + - + @@ -1077,16 +1273,16 @@ xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"> CHINA - 3 - 217 - 1242 + 2 + 213 + 1215 10 2 - 2 + 28 false false - 1457 - WPS Office_12.1.0.15712_F1E327BC-269C-435d-A152-05C5408002CA + 1426 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA 0 @@ -1100,10 +1296,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 2020-07-29T02:09:00Z Administrator - 腾裳壮拙沾 + WPS_1599826008 2020-07-29T02:04:00Z - 2023-11-09T05:38:36Z - 15 + 2024-01-26T01:46:31Z + 4 @@ -1113,10 +1309,10 @@ - 2052-12.1.0.15712 + 2052-12.1.0.16120 - 4B30AB1B2AE840CAAD4D5B5032C1E902_13 + F372D1F117204FCD9B2DCF91041ED881_13 @@ -1200,6 +1396,14 @@ + + + + + + + @@ -1228,13 +1432,13 @@ - + - + @@ -1260,7 +1464,7 @@ - + @@ -1278,7 +1482,7 @@ xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData" mc:Ignorable="w14"> - + @@ -1296,13 +1500,7 @@ - - - + w:val="12"/> @@ -1311,9 +1509,6 @@ - - - @@ -1325,13 +1520,10 @@ - - - @@ -1345,8 +1537,6 @@ - - @@ -1354,10 +1544,7 @@ - - - @@ -1374,7 +1561,6 @@ - @@ -1382,25 +1568,50 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1479,9 +1690,9 @@ - - - + + + @@ -1515,7 +1726,7 @@ w:name="Title"/> - + @@ -1556,7 +1767,7 @@ - + @@ -1601,7 +1812,8 @@ - + @@ -1803,16 +2015,18 @@ - + + - + + @@ -1824,10 +2038,22 @@ + + + + + + + + + + + - + + @@ -1842,11 +2068,13 @@ - + - + + + @@ -1864,9 +2092,10 @@ - + - + + @@ -1877,22 +2106,31 @@ + + + + + + - - - - + + + + + - - - - + + + + + + diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clmmht.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clmmht.ftl new file mode 100644 index 0000000000..91a29f03e0 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clmmht.ftl @@ -0,0 +1,3595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 车辆买卖合同 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 编号: + + + + + + + + + + ${loanContractNo!} + + + + + + + + + + + + + + + + + + + + 甲方: + + + + + + + + + + ${jf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 乙方: + + + + + + + + + + ${yf!} + + + + + + + + + + + + + + + + + 身份证号: + + + + + + + + + + ${yfID!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 签订日期: + + + + + + + + + + ${qdDate!} + + + + + + + + + + + + + + + + + 签订地点: + + + + + + + + + + ${qdAddress!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + 乙方购买甲方车辆。本合同双方当事人本着自愿、平等原则,经充分协商,签订本合同,以共同遵守。 + + + + + + + + + + + + + + + + + + + 第一条 + + + + + + + + + + + + + + + + 车辆价款及支付 + + + + + + + + + + + + + + + + + + + 1、车辆价款 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 品牌/名称 + + + + + + + + + + + + + + + + + + + + + + + + + 数量(辆) + + + + + + + + + + + + + + + + + + + + + + + + + 单价(元) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${modelName1!} + + + + + + + + + + + + + + + + + + + + + + + + + + + ${num1!} + + + + + + + + + + + + + + + + + + + + + + + + + + + ${money1!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + ${modelName2!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${num2!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${money2!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + ${modelName3!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${num3!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${money3!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + ${modelName4!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${num4!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${money4!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + ${modelName5!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${num5!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${money5!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + ${modelName6!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${num6!} + + + + + + + + + + + + + + + + + + + + + + + + + + ${money6!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 总价款 + + + + + + + + + + + + + + + + + + + + + + + + + + + ${moneyTotal!} + + + + + + + + + + + + + + + + + + + + + + + + + 大 写 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${moneyTotalDx} + + + + + + + + + + + + + + + + + + + + + + 2、车辆价款支付 + + + + + + + + + + + + + + + + + + + 乙方应予本合同签订后3日内向甲方支付 + + + + + + + + + + ${zf!} + + + + + + + + 元,剩余 + + + + + + + + + + ${sy!} + + + + + + + + 元乙方通过办理车辆融资支付。 + + + + + + + + + + + + + + + + + + + 3、乙方选择车辆融资方式支付车辆价款,无论何种原因,自标的车辆交付之日起六十日内甲方未能收到乙方融资款,视为乙方不再办理融资,乙方全款购买标的车辆,支付全部车辆价款。 + + + + + + + + + + + + + + + + + + + + 第二条 标的物 + + + + + + + + + + + + + + + + + + + 标的物具体信息见《接收车辆确认书》。 + + + + + + + + + + + + + + + + + + + 第三条 标的车辆交付与验收 + + + + + + + + + + + + + + + + + + + + 1、乙方自行到甲方指定地点接收车辆。乙方收到车辆时,乙方应签署《接收车辆确认书》。 + + + + + + + + + 《接收车辆确认书》系乙方收到标的车辆的凭证。甲方特别提醒乙方注意:如未收到车辆请勿签署。 + + + + + + + + + + + + + + + + + + + 2、如乙方委托第三人接收车辆,乙方应出具《接收车辆委托书》。受托人持身份证接收车辆,并签署《接收车辆确认书》。乙方承担受托人接收标的车辆及对标的车辆进行验收的法律后果。 + + + + + + + + + + + + + + + + + + + + + 3、 + + + + + + + + + 标的车辆质量标准按厂家标准执行。标的车辆保修按照国家规定执行。乙方在收到车辆后应对车辆的质量进行验收,如有异议当场提出,并在《接收车辆确认书》予以记载或拒收标的车辆。其他隐蔽质量问题,乙方在收到车辆后四十八小时内或者在办理车辆牌照前(以先到者为准)向甲方书面提出,否则视为乙方无异议。 + + + + + + + + + + + + + + + + + + + + 第四条 风险承担 + + + + + + + + + + + + + + + + + + + + 乙方接收车辆后,标的车辆毁损或造成第三人损失的责任由乙方承担。标的车辆在使用过程中出现故障,乙方应通过合法途径对车辆故障进行检测,根据检测结果进行处理。乙方不得以车辆质量或故障问题干扰甲方的正常经营。 + + + + + + + + + + + + + + + + + + + + 第五条 所有权保留 + + + + + + + + + + + + + + + + + + + 乙方付清全部车辆价款前,标的车辆所有权归甲方所有。乙方付清全部车辆价款后,所有权转移至乙方。 + + + + + + + + + + + + + + + + + + + 第六条 车辆登记 + + + + + + + + + + + + + + + + + + + + 乙方选择将标的车辆登记在挂靠公司名下,乙方同意甲方将车辆发票开至挂靠公司名下。标的车辆登记在挂靠公司名下,系准予上路行驶的登记,不是所有权登记。乙方与挂靠公司之间权利义务由其双方自行约定,但不得损害甲方的利益。乙方与挂靠公司签订的挂靠合同内容与本合同不一致的,以本合同约定为准。 + + + + + + + + + + + + + + + + + + + + 第七条 争议解决 + + + + + + + + + + + + + + + + + + + 本合同项下发生的争议双方协商解决。如果协商不成,双方均可向合同载明的签订地人民法院提起诉讼解决。 + + + + + + + + + + + + + + + + + + + 第八条 合同生效 + + + + + + + + + + + + + + + + + + + 本合同自各方当事人签字或盖章完毕之日起生效。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 特别提示:本合同系各方当事人协商确定 + + + + + + + + + ,甲方提请 + + + + + + + + + 各方当事人 + + + + + + + + + 详细阅读所有条款并充分理解其含义及其法律后果,尤其是关于双方权利义务和管辖条款的约定 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 如有不明条款或其他约定可在下列补充条款中予以补充约定。 + + + + + + + + + + + + + + + + + + + + + 补充条款: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 如对所有条款的含义及相应的法律后果 + + + + + + + + + 全部知晓并充分理解 + + + + + + + + + 后签署本合同。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 甲方(盖章): 乙方(签名按手印): + + + + + + + + + + + + + + + + + + CHINA + 1 + 244 + 1391 + 11 + 3 + 91 + false + false + 1632 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T01:36:00Z + Administrator + WPS_1599826008 + 2020-07-29T01:54:00Z + 2024-01-18T02:26:09Z + 20 + + + + + + + + 2052-12.1.0.16120 + + + ED07A4F1A0FF46FDA2B9C577848810C9_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PAGE \* MERGEFORMAT + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clrzxy.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clrzxy.ftl index 9e1409474f..c8a2941cf6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clrzxy.ftl +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clrzxy.ftl @@ -79,6 +79,45 @@ 车 辆 融 资 协 议 + + + + + + + + + + + + + + + + + + + + + + + + + + 合同编号: + + + + + + + + + + + R${loanContractNo!} + + @@ -98,15 +137,6 @@ 甲方: - - - - - - - - - @@ -115,7 +145,7 @@ - ${partyA!} + ${jf!} @@ -124,7 +154,7 @@ - + @@ -132,11 +162,10 @@ - + - @@ -153,8 +182,9 @@ + - + ${yf!} @@ -162,9 +192,8 @@ - - ${partyB!} + @@ -172,8 +201,18 @@ + + + + + + + + + + - + 证件号码 @@ -181,7 +220,7 @@ - 身份证号: + @@ -191,7 +230,7 @@ - ${idNo!} + ${yfID!} @@ -200,7 +239,7 @@ - + @@ -210,6 +249,15 @@ + + + + + + + + + @@ -218,11 +266,10 @@ - + - @@ -231,16 +278,7 @@ - 签订时间: - - - - - - - - - + 签订日期: @@ -250,7 +288,7 @@ - ${date!} + ${qdDate!} @@ -259,7 +297,7 @@ - + @@ -277,7 +315,7 @@ - ${address!} + ${qdAddress} @@ -286,17 +324,7 @@ - - - - - - - - - - - + @@ -454,7 +482,7 @@ - + @@ -474,9 +502,9 @@ - - - + + + @@ -528,7 +556,7 @@ - + @@ -537,10 +565,11 @@ - + + @@ -605,7 +634,7 @@ - + @@ -614,11 +643,10 @@ - + - @@ -627,9 +655,8 @@ - - ${downPayType!} + 以融资合同约定为准 @@ -816,7 +843,7 @@ - + @@ -829,6 +856,7 @@ + @@ -847,7 +875,7 @@ - + @@ -856,11 +884,12 @@ - + + - + @@ -908,6 +937,7 @@ + @@ -916,11 +946,35 @@ + - 乙方应付甲方费用明细 + 乙方应付甲 + + + + + + + + + + + + + + + + + + + + + + + 方费用明细 @@ -935,6 +989,7 @@ + @@ -953,6 +1008,7 @@ + @@ -961,6 +1017,7 @@ + @@ -971,7 +1028,7 @@ - + @@ -980,6 +1037,7 @@ + @@ -988,6 +1046,7 @@ + @@ -1029,6 +1088,7 @@ + @@ -1047,6 +1107,7 @@ + @@ -1055,6 +1116,7 @@ + @@ -1074,6 +1136,7 @@ + @@ -1082,6 +1145,7 @@ + @@ -1092,7 +1156,7 @@ - + @@ -1100,11 +1164,11 @@ - + + - @@ -1152,6 +1216,7 @@ + @@ -1170,6 +1235,7 @@ + @@ -1178,6 +1244,7 @@ + @@ -1197,6 +1264,7 @@ + @@ -1205,6 +1273,7 @@ + @@ -1215,7 +1284,7 @@ - + @@ -1223,11 +1292,11 @@ - + + - @@ -1275,6 +1344,7 @@ + @@ -1293,6 +1363,7 @@ + @@ -1301,6 +1372,7 @@ + @@ -1320,6 +1392,7 @@ + @@ -1328,6 +1401,7 @@ + @@ -1338,7 +1412,7 @@ - + @@ -1346,11 +1420,11 @@ - + + - @@ -1398,6 +1472,7 @@ + @@ -1416,6 +1491,7 @@ + @@ -1424,6 +1500,7 @@ + @@ -1443,6 +1520,7 @@ + @@ -1451,6 +1529,7 @@ + @@ -1461,7 +1540,7 @@ - + @@ -1469,11 +1548,12 @@ - + - + @@ -1521,6 +1601,7 @@ + @@ -1539,6 +1620,7 @@ + @@ -1547,6 +1629,7 @@ + @@ -1566,6 +1649,7 @@ + @@ -1574,17 +1658,18 @@ + - 代收首年保险费 + 首年保险费 - + @@ -1592,11 +1677,11 @@ - + + - @@ -1644,6 +1729,7 @@ + @@ -1662,6 +1748,7 @@ + @@ -1670,6 +1757,7 @@ + @@ -1689,6 +1777,7 @@ + @@ -1697,17 +1786,18 @@ + - 代收购置税 + 购置税 - + @@ -1716,6 +1806,7 @@ + @@ -1766,6 +1857,7 @@ + @@ -1784,6 +1876,7 @@ + @@ -1792,6 +1885,7 @@ + @@ -1811,6 +1905,7 @@ + @@ -1819,17 +1914,18 @@ + - 代收意外险 + 意外险 - + @@ -1838,6 +1934,7 @@ + @@ -1888,6 +1985,7 @@ + @@ -1906,6 +2004,7 @@ + @@ -1914,6 +2013,7 @@ + @@ -1933,6 +2033,7 @@ + @@ -1941,6 +2042,7 @@ + @@ -1951,7 +2053,7 @@ - + @@ -1960,7 +2062,7 @@ - + @@ -2011,6 +2113,7 @@ + @@ -2028,20 +2131,20 @@ - + + - + - 9 @@ -2058,6 +2161,7 @@ + @@ -2066,6 +2170,7 @@ + @@ -2076,7 +2181,7 @@ - + @@ -2085,24 +2190,12 @@ + - - - - - - - - - - - - - @@ -2113,112 +2206,12 @@ ${totalMoney!} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 融资款的分配 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${rzfp!} - + + - - - - - - - - - - - @@ -2349,9 +2342,7 @@ - - 2、因甲方对资金提供方具有担保义务,乙方未按约定日期、数额偿还资金提供方相关款项的,甲方无须通知乙方即可履行担保责任,垫款偿付资金提供方的相关款项,该款项称为甲方履行担保义务垫款。 - + 2、因甲方对资金提供方具有担保义务,乙方未按约定日期、数额偿还资金提供方相关款项的,甲方无须通知乙方即可履行担保责任,垫款偿付资金提供方的相关款项,该款项称为甲方履行担保义务垫款。 @@ -2408,9 +2399,7 @@ - - 5、乙方先行向甲方支付保证金款项。甲方根据融资合同使用保证金款项。融资合同中,资金提供方收取乙方保证金的,该款项由甲方交给资金提供方(方式:资金提供方在发放融资款时直接扣除),此时,该保证金系乙方向资金提供方交纳的保证金。融资合同中,资金提供方未收取乙方保证金的,该款项留在甲方,此时,该保证金系乙方向甲方还款的履约保证金。 - + 5、乙方先行向甲方支付保证金款项。甲方根据融资合同使用保证金款项。融资合同中,资金提供方收取乙方保证金的,该款项由甲方交给资金提供方(方式:资金提供方在发放融资款时直接扣除),此时,该保证金系乙方向资金提供方交纳的保证金。融资合同中,资金提供方未收取乙方保证金的,该款项留在甲方,此时,该保证金系乙方向甲方还款的履约保证金。 @@ -2737,6 +2726,7 @@ + @@ -2745,10 +2735,11 @@ + - 甲方(盖章): 乙方(签名按手印): + 甲方: 乙方: @@ -2773,7 +2764,7 @@ - @@ -2790,15 +2781,15 @@ CHINA 2 - 259 - 1482 + 265 + 1511 12 3 - 19 + 0 false false - 1738 - WPS Office_12.1.0.15712_F1E327BC-269C-435d-A152-05C5408002CA + 1773 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA 0 @@ -2812,10 +2803,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 2020-07-29T02:24:00Z Administrator - God + WPS_1599826008 2020-07-29T02:22:00Z - 2023-11-08T01:20:54Z - 29 + 2024-01-19T09:13:47Z + 4 @@ -2825,10 +2816,10 @@ - 2052-12.1.0.15712 + 2052-12.1.0.16120 - 95FB7740F0414A54A33F85BF45A353D3_13 + F62E158B07684834BD52CD3C056CF035_13 @@ -2912,23 +2903,6 @@ - - - - - - - - - - - - - - - @@ -2956,14 +2930,11 @@ - - - - + @@ -2989,7 +2960,7 @@ - + @@ -3007,15 +2978,14 @@ xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData" mc:Ignorable="w14"> - - - + + + - - - + + @@ -3024,10 +2994,7 @@ - - - @@ -3037,99 +3004,66 @@ - - - - - - - + - - - + - - - - - - + - - - - - - - - - - - - - - - + - - - - - - @@ -3138,14 +3072,11 @@ - - - @@ -3154,7 +3085,39 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3193,8 +3156,8 @@ - + @@ -3233,9 +3196,9 @@ - + - + @@ -3355,7 +3318,8 @@ - + @@ -3559,13 +3523,13 @@ - + - + @@ -3580,10 +3544,22 @@ + + + + + + + + + + + - + + @@ -3598,10 +3574,10 @@ - + - + @@ -3621,15 +3597,14 @@ - + - + + - - @@ -3642,17 +3617,29 @@ - + + + + + + + + + + + + - - + + + - + @@ -3661,10 +3648,10 @@ - + - - + + diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/dgclwts.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/dgclwts.ftl new file mode 100644 index 0000000000..e1792dfdea --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/dgclwts.ftl @@ -0,0 +1,2028 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 代管车辆授权委托书 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 签署 + + + + + + + + + + 日期 + + + + + + + + + + + + + + + + + + + + ${qdDate!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 委托人: + + + + + + + + + + + ${wtr!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 证件号码 + + + + + + + + + + + + + + + + + + + + ${idNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 受委托人: + + + + + + + + + + + ${swtr!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 根据委托人与受委托人 + + + + + + + + + + + + + + + + + + + + + ${year?c} + + + + + + + + + + + + + + + + + + + + + + + ${month!} + + + + + + + + + + + + + + + + + + + + + ${day!} + + + + + + + + + + + + + + + + + + + 签订的 + + + + + + + + + + 编号为 + + + + + + + + + + + ${num!} + + + + + + + + + + + + + + + + + + + + + + 《还款协议》 + + + + + + + + + + (以下简称《还款协议》) + + + + + + + + + ,委托人负有向受委托人还款的义务。为维护受委托人的权益,委托人同意并授权受委托人办理以下事项: + + + + + + + + + + + + + + + + + + + + + 1、委托人未按《还款协议》约定还款,受委托人可以行使《还款协议》第十条约定的代管融资车辆的权利,依约代管融资车辆。 + + + + + + + + + + + + + + + + + + + + + 2、融资车辆被代管,受委托人可以行使《还款协议》第十条第5项约定的变卖融资车辆的权利,依约变卖融资车辆,收取融资车辆变卖价款。 + + + + + + + + + + + + + + + + + + + + + 3、受委托人变卖融资车辆,受委托人选取有资质的车辆评估公司对融资车辆进行评估,受委托人可以按照不低于评估价值80%的价格变卖融资车辆。 + + + + + + + + + + + + + + + + + + + + + 委托人向受委托人承诺如下: + + + + + + + + + + + + + + + + + + + + + 1、委托人自行承担融资车辆代管、变卖的法律后果。 + + + + + + + + + + + + + + + + + + + + + 2、委托人自行承担融资车辆代管期间的贬值损失。 + + + + + + + + + + + + + + + + + + + + + 3、委托人认可评估公司对融资车辆的评估结果,认可融资车辆的变卖价格,委托人承担评估费。 + + + + + + + + + + + + + + + + + + + + + 4、委托人不以任何理由对抗该授权委托书中委托及承诺事项。 + + + + + + + + + + + + + + + + + + + + + 5、本授权委托为不可撤销,有效期自本授权委托书出具之日起至我还清所有债务之日止。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 委托人: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CHINA + 12 + 970 + 5534 + 46 + 12 + 206 + false + false + 6492 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T02:41:00Z + Administrator + WPS_1599826008 + 2024-01-24T03:38:46Z + 5 + + + + + + + + 2052-12.1.0.16120 + + + 30CA2A3A79514114BFD68F00CA254F7E_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PAGE \* MERGEFORMAT + + + + + + + + + 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgddwdbjy.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgddwdbjy.ftl deleted file mode 100644 index 3df45d2211..0000000000 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgddwdbjy.ftl +++ /dev/null @@ -1,2370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 公司股东会对外担保决议 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 一、时间: - - - - - - - - - - - - - - - - - - - - - 二、地点: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 议题:关于是否同意本公司在 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (合 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 同) - - - - - - - - - 中 为 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 提供(反)担保事宜。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 据《 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 名,实到 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 名, - - - - - - - - - 所持股份占公司全部股份 - - - - - - - - - - - - - - - - - - - - - - %。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 次股东会召集与所作决议符合公司章程和《公司法》的规 - - - - - - - - - - - - - - - - - - - - - 定,所作决议合法有效。与会股东经审议、表决,一致通过以下决议: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1775460 - - - 417830 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 同意本公司在上述合同中提供(反)担保事宜。 - - - - - - - - - - - - - - - - - - - - - - - 股东签字: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 公司(公章) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 月 日 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 0 - 0 - 0 - 0 - 0 - false - false - 0 - WPS Office_12.1.0.15712_F1E327BC-269C-435d-A152-05C5408002CA - 0 - - - - - - - 2023-11-09T06:08:01Z - God - 腾裳壮拙沾 - 2023-11-09T06:18:19Z - - - - - - - - 2052-12.1.0.15712 - - - 472CCC2B11B54AE99C70855AA1739B82_13 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgdhdwdbjy.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgdhdwdbjy.ftl new file mode 100644 index 0000000000..30618f1484 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/gsgdhdwdbjy.ftl @@ -0,0 +1,1719 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 公司股东会对外担保决议 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 一、时间 + + + + + + + + + + + + + + + + + + + ${qdDate!} + + + + + + + + + + + + + + + + + + + + + + + 二、地点: + + + + + + + + + + ${qddd!} + + + + + + + + + + + + + + + + + + + + + + 三、议题:关于是否同意本公司在 + + + + + + + + + + + + + + + + + + + + + ${con1!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 中为 + + + + + + + + + + + + + + + + + + + + + ${yf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 提供(反)担保事宜。 + + + + + + + + + + + + + + + + + + + + + 四、根据《公司法》和公司章程规定,股东会会议应到股东 + + + + + + + + + + + ${gdrs1!} + + + + + + + + + 名,实到 + + + + + + + + + + + ${gdrs2!} + + + + + + + + + 名,所持股份占公司全部股份 + + + + + + + + + +    + + + + + + + + + + 100 + + + + + + + + + +     + + + + + + + + + %。本次股东会召集与所作决议符合公司章程和《公司法》的规定,所作决议合法有效。与会股东经审议、表决,一致通过以下决议: + + + + + + + + + + + + + + + + + + + + + 同意本公司在上述合同中提供(反)担保事宜。 + + + + + + + + + + + + + + + + + + + + + 股东签字 + + + + + + + + + /盖章 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +             公司 + + + + + + + + + (公章) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${y?c} + + + + + + + + + + + + + + + + + + + + + ${m!} + + + + + + + + + + + + + + + + + + + ${d!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CHINA + 1 + 55 + 316 + 2 + 1 + 9 + false + false + 370 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T05:10:00Z + Administrator + WPS_1599826008 + 2024-01-26T02:27:33Z + 4 + + + + + + + + 2052-12.1.0.16120 + + + FDFCFB8A91094E159C7794865BD00C81_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hkxy.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hkxy.ftl index aecf89bff7..3688ea7589 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hkxy.ftl +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/hkxy.ftl @@ -23,60 +23,20 @@ pkg:contentType="application/vnd.openxmlformats-package.relationships+xml"> - - - - - - - - - - - - - - - - - + Target="footer1.xml"/> + @@ -107,213 +67,199 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - - + - + + + + - + 还 款 协 议 - - - + + - + + + - 签订时间: + 签订日期: - - - - + + + + ${date!} - + + + + + + 签订地: + + + + + - + ${address!} + + - 签订地: + 合同编号:H - - - - + + + + - ${address!} + ${con!} - - - - - - - - + + + - - - - - - + + + + + + - + - + - + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - - - + + + + + - - + - + + + + + - + 甲 方 - + - - + + + + + + + + - - - - + + + + + ${partyA!} @@ -324,39 +270,50 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + + - + + + + + 统一社会信用代码 @@ -364,22 +321,33 @@ - + - - + + + + + + + + + - - - - + + + + + + ${registNum!} @@ -390,51 +358,82 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + + + + + + + + + + + - + + + + + - + + + + + @@ -442,22 +441,31 @@ - + - - + + + + + + + + - - - - + + + + + ${parAddress!} @@ -468,72 +476,79 @@ - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - - - + + + + + - - + - + + + + + - + 乙 方 - + - - + + + + + + + + - - - - + + + + + ${partyB!} @@ -542,44 +557,60 @@ - + - - - + + + + + + + - + + + + + - 身份证号 + 证件号码 - + - - - + + + + + + - - - - + + + + + ${idNo!} @@ -588,19 +619,29 @@ - + - - - + + + + + + + - + + + + + 电话 @@ -608,24 +649,33 @@ - + - - + + + + + + + + - - - - + + + + + - ${parBphone!} + ${yfPh!} @@ -633,98 +683,81 @@ - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - + - + + + + + - + 户籍地址/注册地址 - + - - + + + + + + + + - - - - + + + + + ${parBaddress!} @@ -735,62 +768,97 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + - + + + + + 实际居住地址 + + + + + + + + / + + + + + + + + + + 经营地址 + - + - - + + + + + + + + - - - - + + + + + ${parBxaddress!} @@ -801,73 +869,79 @@ - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - - - + + + + + - - + - + + + + + - + 丙 方 - + - - - + + + + + - + + + + + ${partyC!} @@ -876,19 +950,29 @@ - + - - - + + + + + + + - + + + + + 身份证号 @@ -896,21 +980,30 @@ - + - - + + + + + + + + - - - - + + + + + ${parCidNo!} @@ -919,19 +1012,29 @@ - + - - - + + + + + + + - + + + + + 电话 @@ -939,24 +1042,33 @@ - + - - + + + + + + + + - - - - + + + + + - ${parCphone!} + ${bfPh!} @@ -964,75 +1076,115 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + @@ -1040,22 +1192,31 @@ - + - - + + + + + + + + - - - - + + + + + ${parCaddress!} @@ -1066,39 +1227,49 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + 实际居住地址 @@ -1106,22 +1277,31 @@ - + - - + + + + + + + + - - - - + + + + + ${parCxaddress!} @@ -1132,70 +1312,80 @@ - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - - - + + + + + - - + - + + + + + - + 丁 方 - + - - + + + + + + + + - + + + + + ${partyD!} @@ -1206,39 +1396,50 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + + - + + + + + 统一社会信用代码 @@ -1246,19 +1447,33 @@ - + - - + + + + + + + + + - + + + + + + ${partyDregistNum!} @@ -1269,38 +1484,48 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + 负责人 @@ -1308,19 +1533,31 @@ - + - - + + + + + + + + - + + + + + ${partyDfzr!} @@ -1329,19 +1566,29 @@ - + - - - + + + + + + + - + + + + + 电话 @@ -1349,25 +1596,33 @@ - + - - - - + + + + + + - + + + + + - ${partyDphone!} + ${dfPh!} @@ -1375,75 +1630,115 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + @@ -1451,19 +1746,31 @@ - + - - + + + + + + + + - + + + + + ${partyDaddress!} @@ -1474,39 +1781,49 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + 实际经营地址 @@ -1514,19 +1831,30 @@ - + - - + + + + + + + - + + + + + ${partyDxaddress!} @@ -1537,69 +1865,79 @@ - - - - - - + + + + + + - + - + - + - + - - - - - - + + + + + - - + - + + + + + - - - - - - - + 戊 方 - + - - + + + + + + + + - + + + + + ${partyE!} @@ -1608,19 +1946,29 @@ - + - - - + + + + + + + - + + + + + 身份证号 @@ -1628,43 +1976,61 @@ - + - - - - + + + + + + - + + + + + - ${partyEidNo!} + ${parEidNo!} - + - - - + + + + + + + - + + + + + 电话 @@ -1672,25 +2038,33 @@ - + - - - - + + + + + + - + + + + + - ${partyEphone!} + ${mfPh!} @@ -1698,75 +2072,115 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + @@ -1774,19 +2188,31 @@ - + - - + + + + + + + + - + + + + + ${partyEaddress!} @@ -1797,39 +2223,49 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + 实际居住地址 @@ -1837,19 +2273,30 @@ - + - - + + + + + + + - + + + + + ${partyExaddress!} @@ -1860,69 +2307,79 @@ - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - - - + + + + + - - + - + + + + + - + 己 方 - + - - + + + + + + + + - + + + + + ${partyF!} @@ -1931,19 +2388,29 @@ - + - - - + + + + + + + - + + + + + 身份证号 @@ -1951,43 +2418,61 @@ - + - - - - + + + + + + - + + + + + - ${partyFidNo!} + ${parFidNo!} - + - - - + + + + + + + - + + + + + 电话 @@ -1995,25 +2480,33 @@ - + - - - - + + + + + + - + + + + + - ${partyFphone!} + ${jfPh!} @@ -2021,75 +2514,115 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + @@ -2097,19 +2630,31 @@ - + - - + + + + + + + + - + + + + + ${partyFaddress!} @@ -2120,39 +2665,49 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + + + + + - + + + + + 实际居住地址 @@ -2160,19 +2715,30 @@ - + - - + + + + + + + - + + + + + ${partyFxaddress!} @@ -2183,6731 +2749,2669 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + - 根据甲乙双方签订的《车辆买卖合同》、《车辆融资协议》,乙方负有 + 根据甲乙双方签订的 - + + - + 编号为 - + + + + - 向甲方还款的义务。为保证甲方权益,本协议各方当事人本着自愿、平等 + ${contractNo!} - - - - - - + + + - + + - + + - 原则,经充分协商,签订本协议,以共同遵守。 + 《车辆买卖合同》 - - - + + + - + + - 第一条 本协议各方当事人均认可以下事实 + (以下简称《车辆买卖合同》)、 - - - - - - - - - - - - + + - 1、乙方负有按照《车辆买卖合同》的约定偿还甲方车辆价款欠款及 + 编号为 + + + + - + ${rzConNo!} - + + + - 分期利息的义务。如未能办理车辆融资,乙方负有向甲方一次性偿还全部 + - + + - + - + + - 车辆价款的义务。如未能办理车辆融资,甲方为乙方垫付其他费用的,乙 + 《车辆融资协议》(以下简称《车辆融资协议》),乙方负有向甲方还款的义务。为保证甲方权益,本协议各方当事人本着自愿、平等原则,经充分协商,签订本协议,以共同遵守。 - - - + + + - + + - 方负有向甲方一次性偿还全部垫款的义务。 + 第一条 本协议各方当事人均认可以下事实 - - - + + + - - - - - 2、乙方负有按照融资合同的约定向资金提供方还款的义务。甲方对 - - - - + + - + 1、乙方负有按照《车辆买卖合同》的约定偿还甲方车辆价款欠款及分期利息的义务。如未能办理车辆融资,乙方负有向甲方一次性偿还全部车辆价款的义务。如未能办理车辆融资,甲方为乙方垫付其他费用的,乙方负有向甲方一次性偿还全部垫款的义务。 - + + + + - + + - 资金提供方负有连带担保责任。甲方履行担保义务后,乙方负有偿还 - + - + + - 甲方 + 2、乙方负有按照融资合同的约定向资金提供方还款的义务。甲方对资金提供方负有连带担保责任。甲方履行担保义务后,乙方负有偿还甲方履行担保义务垫款的义务。 - - - + + + - + + - 履行担保义务垫款的义务。 + 3、甲方为乙方垫款支付融资车辆次年或以后年度车辆保险费的,乙方负有偿还甲方保险费垫款的义务。 - - - + + + - - + + - 3、甲方为乙方垫款支付融资车辆次年或以后年度车辆保险费的,乙 + 4、各连带还款人均系自愿加入乙方的债务偿还,各连带还款人负有与乙方连带偿还本合同项下所有债务的义务。 - - - + + + - + + - 方负有偿还甲方保险费垫款的义务。 + 5、乙方违约,乙方负有向甲方支付资金占用费或违约金的义务。 - - - + + + - - - - - 4、各连带还款人均系自愿加入乙方的债务偿还, - - - - - + + - 各连带还款人负有 + 第二条 车辆价款欠款偿还 - - - + + + - + + - 与乙方连带偿还本合同项下所有债务的义务。 + 1、如乙方选择车辆价款欠款分期偿还的,乙方应按约定时间、数额偿还车辆价款及分期利息。乙方未及时足额偿还甲方车辆价款及车辆价款分期利息的,乙方应向甲方支付资金占用费。资金占用费按每月欠款数额分别计算,计算期间为每月还款日次日起至实际偿还之日。资金占用费计算方式为:当月欠款金额×天数×千分之一。 - - - + + + - + + - 5、乙方违约,乙方负有向甲方支付资金占用费或违约金的义务。 + 2、无论何种原因,自标的车辆交付之日起60日内甲方未能收到融资款,乙方应一次性偿还全部车辆价款。同时乙方应向甲方支付资金占用费。资金占用费按乙方欠款金额计算,计算期间为标的车辆交付之日起至实际偿还之日。资金占用费计算方式为:车辆价款欠款总金额×天数×千分之一。 - - - + + + - + + - 第二条 车辆价款欠款偿还 + 3、无论何种原因,自甲方垫款之日起60日内甲方未能收到融资款,乙方应一次性偿还全部垫款(包含但不限于挂车垫款、首年保险费垫款、购置税垫款以及融资所需垫款)。同时乙方应向甲方支付资金占用费。资金占用费按乙方欠款金额计算,计算期间为甲方垫款之日起至实际偿还之日,计算方式为:垫款欠款总金额×天数×千分之一。 - - - + + + - + + - 1、如乙方选择车辆价款欠款分期偿还的,乙方应按约定时间、数额 + 第三条 履行担保义务垫款偿还 - + + + + + + - - + - + + - 偿还车辆价款及分期利息。乙方未及时足额偿还甲方车辆价款及车辆价款 + 1、因甲方对资金提供方具有担保义务,乙方未按约定日期、数额偿还资金提供方相关款项的,甲方无须通知乙方即可履行担保责任,垫款偿付资金提供方的相关款项。甲方有权根据自身资金情况选择垫款日期、垫款数额,甲方亦有权选择提前一次性结清资金提供方全部款项。乙方对甲方垫款数额有异议,不影响乙方向甲方的还款义务,乙方应先偿还甲方再向资金提供方申请解决。 - + + + + - + + - - + - + + - 分期利息的,乙方应向甲方支付资金占用费。资金占用费按每月欠款数额 + 2、乙方应在甲方垫款次日偿还甲方履行担保义务垫款。乙方未按约定及时足额偿还甲方履行担保义务垫款的,乙方应向甲方支付资金占用费。资金占用费按每月欠款金额分别计算,计算期间为每月垫款次日起至实际偿还之日。资金占用费计算方式为:当月欠垫款金额×天数×千分之一。 - + + + + - + + - - + - + + - 分别计算,计算期间为每月还款日次日起至实际偿还之日。资金占用费计 + 第四条 融资车辆保险 - - - + + + - + + - 算方式为:当月欠款金额×天数×千分之一。 + 1、因甲方负有担保义务,乙方应按照融资合同的约定办理车辆保险。如资金提供方款项已经还清,但乙方尚欠甲方款项的,在还清甲方欠款前也应参照融资合同约定办理车辆保险,否则视为违约。 - - - - - - - - - - - - - - - - - - - + + + - + + - 2、无论何种原因,自标的车辆交付之日起 + 乙方未购买融资车辆次年或以后年度保险,甲方有权选择垫款为融资车辆购买保险 - + + - + , - + + - 60 日内甲方未能收到融资 + 险种、保额参照上一年度的执行。如甲方未垫款购买融资车辆保险,甲方不承担责任。 - + + + + - + + - 款,乙方应一次性偿还全部车辆价款。同时乙方应向甲方支付资金占用 - + - + + - 费。 + 2、融资车辆保险险种至少包含交强险、车损险、第三者责任险、车上人员责任险、盗抢险、自燃险及不计免赔等。甲方鼓励乙方购买上述险种以外的保险,以降低融资车辆经营风险。乙方购买的融资车辆险种(含首年保险、以后年度保险)、保额以保险单为准,系乙方自行选择购买,乙方自行承担险种不全、保额不足的风险。 - + + + + + + - - + - + + - 资金占用费按乙方欠款金额计算,计算期间为标的车辆交付之日起至实际 + 3、融资车辆发生交通事故,应及时报警,并通知甲方和保险公司。乙方应积极维修车辆,申请保险理赔。如融资车辆不能修复或没有修复必要的,乙方亦应当向保险公司申请理赔。乙方拒不提供理赔资料和申请保险理赔的,乙方承担保险公司未能赔偿的后果和损失。保险公司拒赔、免赔部分由乙方自行承担。 - - - + + + - + + - 偿还之日。资金占用费计算方式为:车辆价款欠款总金额×天数×千分之 + 4、融资车辆因交通事故导致损坏、灭失不影响乙方向甲方、资金提供方的还款义务。乙方同意甲方直接接收融资车辆保险理赔款,该款视为乙方向甲方的还款,甲方退还给乙方部分的除外。如融资车辆不能修复或没有修复必要的,保险理赔款不足以支付甲方和资金提供方的款项的,乙方有义务继续支付。 - - - - - - - - - - - - + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + 5、融资车辆因乙方违约被代管后,为减少乙方的损失,可先办理退保手续,甲方收到的保险公司保费退费视为乙方向甲方的还款。乙方还清欠款继续经营标的车辆的,应重新按照约定购买保险。因退保造成的损失由乙方承担。 - - - - - - - - - - - - + + + - + + - 3、无论何种原因,自甲方垫款之日起 + 第五条 保险费垫款的偿还 - + + + + - + + - - + - + + - 60 日内甲方未能收到融资 + 甲方垫款为乙方购买融资车辆次年或以后年度保险的,乙方应在前一年度保险到期后次日偿还甲方保险费垫款,如逾期,乙方应向甲方支付资金占用费。资金占用费计算期间为自垫款之日起至实际偿还之日。资金占用费计算方式为:保险费垫款金额×天数×千分之一。 - + + + + - + + - 款, - + + + - + 乙方选择分期支付保险费垫款,乙方向甲方支付保险费垫款分期利息。乙方应签署《保险费垫款偿还承诺书》。乙方未按承诺时间、数额偿还保险费垫款及保险费垫款分期利息,乙方应向甲方支付资金占用费。资金占用费按每月欠款金额分别计算,计算期间为每月还款日次日起至实际偿还之日。资金占用费计算方式为:当月欠款金额×天数×千分之一。 - + + + + - + + - 乙方应一次性偿全部垫款(包含但不限于挂车垫款、首年保险费垫款、购 置税垫款以及融资所需垫款)。同时乙方应向甲方支付资金占用费。资金 - 占用费按乙方欠款金额计算,计算期间为甲方垫 - - + - + + - 款之日起至实际偿还之日, + 第六条 乙方偿还甲方款项分配顺序 - - - + + + - + + - 计算方式为:垫款欠款总金额×天数×千分之一。 + 先结算当月履行担保义务垫款,再结算保险费垫款及保险费垫款分期利息(该项先本后息),最后结算所欠车辆价款及车辆价款分期利息(该项先本后息)。当月结清后有剩余款项的,转入上月应还款项,再次按照前述顺序结算,直到结清全部欠款。结清全部欠款后仍有剩余款项的,转入下月应还款项,按照前述顺序结算。乙方书面告知甲方款项用途的除外。 - - - + + + - + + - 第三条 履行担保义务垫款偿还 + 第七条 融资车辆登记 - - - + + + - + + - 1、因甲方对资金提供方具有担保义务,乙方未按约定日期、数额偿 + 1、乙方办理融资的车辆登记在 - - + + + + + - + ${yf!} - + + - 还资金提供方相关款项的,甲方无须通知乙方即可履行担保责任,垫款偿 + 乙方 - - - + + + + + - + ${df!} - + + - 付资金提供方的相关款项。甲方有权根据自身资金情况选择垫款日期、垫 + 丁方名下。 - + + + + - + + - - + - + + - 款数额,甲方亦有权选择提前一次性结清资金提供方全部款项。乙方对甲 + 2、融资车辆登记在丁方名下的,乙方与丁方权利义务由其双方自行约定,但不得损害甲方的利益。如有冲突,以本合同约定为准。 - + + + + - + + - - + - + + - 方垫款数额有异议,不影响乙方向甲方的还款义务,乙方应先偿还甲方再 + 3、融资车辆登记在丁方名下,系准予上路行驶的登记,不是所有权登记。 - - - + + + - + + - 向资金提供方申请解决。 + 4、丁方应履行下列义务:(1)配合办理车辆融资(2)配合办理车辆登记手续(3)配合办理车辆运营相关手续(4)协助办理车辆保险理赔手续。(5)甲方、乙方需要丁方协助办理的其他业务。 - - - + + + - + + - 2、乙方应在甲方垫款次日偿还甲方履行担保义务垫款。乙方未按约 + 5、甲方变卖融资车辆的,丁方应协助甲方办理融资车辆过户手续。丁方不得以乙方欠款或其他的任何理由拒绝协助办理过户手续,否则丁方与乙方连带偿还本协议项下的债务。 - + + + + - + + - - + - + + - 定及时足额偿还甲方履行担保义务垫款的,乙方应向甲方支付资金占用费。 + 第八条 融资车辆使用 - + + + + + + - - + - + + - 资金占用费按每月欠款金额分别计算,计算期间为每月垫款次日起至实际 + 1、乙方应妥善使用融资车辆,按规定保养融资车辆。乙方运营融资车辆所用司机必须具有驾驶融资车辆相应的资质。 - - - + + + + + - 偿还之日。资金占用费计算方式为:当月欠垫款金 - - - - - - - - 额×天数×千分之一。 + 2、乙方须按规定办理融资车辆的登记(含改装、维修后登记)、营运、年检、二级维护等事宜并承担费用。 - - - + + + - + + - 第四条 融资车辆保险 + 3、未经甲方书面同意,乙方不得将融资车辆转让、变卖、或进行债务担保。乙方有义务随时向甲方提供融资车辆位置和使用状况。 - - - - - - - - - - - - - - - - - - + + + + - + + - 1、因甲方负有担保义务,乙方应按照融资合同的约定办理车辆保险。 + 4、乙方自愿在融资车辆上安装定位设备(包括但不限于 - + + - + GPS - + + - 如资金提供方款项已经还清,但乙方尚欠甲方款项的,在还清甲方欠款前 + 定位设备、北斗定位设备等)。乙方发现定位设备工作异常时须通知甲方。如出现定位设备丢失或损坏等情形无法继续使用的,甲方有权在融资车辆上重新安装,相应的费用由乙方承担。 + - - - + + + - + + - 也应参照融资合同约定办理车辆保险,否则视为违约。 + 5、融资车辆交付后,融资车辆毁损、灭失的风险由乙方承担。融资车辆发生毁损,乙方应当自负费用恢复至正常使用状态。毁损情况的发生不影响乙方的还款义务。 - - - + + + - + + - 乙方未购买融资车辆次年或以后年度保险,甲方有权选择垫款为融资 + 第九条 融资车辆故障解决 - + + + + - + + - - + - + + - 车辆购买保险,险种、保额参照上一年度的执行。如甲方未垫款购买融资 + 乙方在使用融资车辆过程中出现车辆故障,乙方应通过合法途径对融资车辆故障进行检测,根据检测结果进行处理。 - - - + + + - + + - 车辆保险,甲方不承担责任。 + 乙方不得以融资车辆出现故障或存在质量问题为由妨碍甲方的正常经营或拒绝偿还甲方和资金提供方的相应款项。 - - - + + + - + + - 2、融资车辆保险险种至少包含交强险、车损险、第三者责任险、车 - - - - - - - - - - - - - - - - 上人员责任险、盗抢险、自燃险及不计免赔等。甲方鼓励乙方购买上述险 - - - - - - - - - - - - - - - - 种以外的保险,以降低融资车辆经营风险。乙方购买的融资车辆险种(含 + 第十条 融资车辆代管、变卖 - + + + + - + + - - + - + + - 首年保险、以后年度保险)、保额以保险单为准,系乙方自行选择购买, + 1、乙方未按约定向甲方和资金提供方还款的,甲方有权代管融资车辆。甲方代管融资车辆应依据乙方出具的《代管车辆授权委托书》中授权及承诺事项进行。乙方未出具委托书的,该条款不适用。 - - - + + + - + + - 乙方自行承担险种不全、保额不足的风险。 + 2、甲方代管融资车辆的行为不免除乙方向甲方、资金提供方的还款义务。甲方代管融资车辆的行为不影响甲方向资金提供方履行担保义务。甲方处置融资车辆所得价款视为乙方向甲方的还款,按照本协议约定进行结算。乙方自行承担融资车辆代管期间的贬值损失。 - - - + + + - + + - 3、融资车辆发生交通事故,应及时报警,并通知甲方和保险公司。 + 3、甲方代管融资标的车辆时,乙方须予以配合(包括但不限于主动将车辆送回、提供车辆所在位置、通知驾驶人员或随乘人员配合等),不得直接或间接采取阻挠手段。甲方代管融资车辆所产生的相关费用由乙方承担,因代管融资车辆所产生的损失(包括但不限于车辆毁损、停运损失以及第三人的损失等)均由乙方承担。 - + + + + - + + - - + - + + - 乙方应积极维修车辆,申请保险理赔。如融资车辆不能修复或没有修复必 + 4、甲方代管融资车辆后,甲方可以选择向乙方追偿欠款,也可以选择变卖融资车辆。 - + + + + - + + - - + - + + - 要的,乙方亦应当向保险公司申请理赔。乙方拒不提供理赔资料和申请保 + 5、甲方代管融资车辆后选择追偿欠款的,乙方还清甲方和资金提供方的所有款项后,甲方将融资车辆归还乙方。甲方代管融资车辆后选择变卖融资车辆的,甲方应委托车辆评估机构对融资车辆价值进行评估,乙方同意按照不低于评估价值80%的价格进行转卖,评估费由乙方承担。融资车辆变卖的,乙方、丁方应协助办理车辆过户手续。 - + + + + - + + - - + - + + - 险理赔的,乙方承担保险公司未能赔偿的后果和损失。保险公司拒赔、免 + 第十一条 违约责任 - - - + + + - + + - 赔部分由乙方自行承担。 + 1、乙方存在任何一项违约行为,甲方收取的履约保证金作为惩罚性违约金不予退还。 - - - + + + + + - 4、融资车辆因交通事故导致损坏、灭失不影响乙 + 2 - + + - 方向甲方、资金提 + 、乙方未按约定及时足额偿还甲方履行担保义务垫款、保险费垫款及保险费垫款分期利息、车辆价款欠款及车辆价款欠款分期利息的,甲方有权要求乙方一次性偿还上述款项项下的欠款。同时,甲方可以选择要求乙方支付资金占用费或选择要求乙方支付违约金。资金占用费按照本协议约定计算。违约金按履行担保义务垫款、保险费垫款、车辆价款欠款等款项项下欠款总额30%计算。 - + + + + + + - - + - + + - 供方的还款义务。乙方同意甲方直接接收融资车辆保险理赔款,该款视为 + 3 - + + - + 、乙方未及时足额向甲方或资金提供方偿还相关款项或有其他违约情形的,甲方有权行使本合同第十条约定的代管、变卖融资车辆的权利。融资车辆变卖价款扣除评估费后的款项视为乙方向甲方的还款。如有剩余退还乙方。如不足,甲方有权就不足部分向乙方追偿。 - + + + + - + + - 乙方向甲方的还款,甲方退还给乙方部分的除外。如融资车辆不能修复或 - + - + + - + 4 - + + - 没有修复必要的,保险理赔款不足以支付甲方和资金提供方的款项的,乙 + 、乙方违约,甲方为实现债权而产生的律师代理费、财产保全责任保险费、保全费、诉讼费、差旅费均由乙方承担。 - - - + + + - + + - 方有义务继续支付。 + 5 - - - - - - - - - - - - + + - 5、融资车辆因乙方违约被代管后,为减少乙方的损失,可先办理退 + 、因乙方未按约定向甲方、资金提供方还款,甲方有权采取下列措施以督促乙方履行还款义务,产生的费用和损失由乙方承担。 - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - 第七条 融资车辆登记 - - - - - - - - + + - 保手续,甲方收到的保险公司保费退费视为乙方向甲方的还款。乙方还清 + (1)甲方工作人员上门催收,每人次5000元。 - + + + + - + + - - + - + + - 欠款继续经营标的车辆的,应重新按照约定购买保险。因退保造成的损失 + (2)通过技术手段锁定车辆,每台次5000元 - - - + + + - + + - 由乙方承担。 + (3)代管车辆,每次10000元。 - - - + + + - + + - 第五条 保险费垫款的偿还 + 第十二条 连带还款责任 - - - + + + - + + - 甲方垫款为乙方购买融资车辆次年或以后年度保险 - - - - - - - - 的,乙方应在前一 + 1、 - - + + + + + - + ${bf!} - + + - 年度保险到期后次日偿还甲方保险费垫款,如逾期,乙方应向甲方支付资 + 丙方、 - - - + + + + + - + ${dfTwo!} - + + - 金占用费。资金占用费计算期间为自垫款之日起至实际偿还之日。资金占 + 丁方、 - - - - - - - - - - - - - - + + + + + - 用费计算方式为:保险费垫款金额×天数×千分之一。 + ${mf!} - - - - - - - - - - - - + + - 乙方选择分期支付保险费垫款,乙方向甲方支付保险费垫款分期利息。 + 戊方、 - - - + + + + + - + ${yfwldhk!} - + + - 乙方应签署《保险费垫款偿还承诺书》。乙方未按承诺时间、数额偿 + 己方为连带还款人。 - + + + + - + + - 还保 - + - + + - 险费垫款及保险费垫款分期利息,乙方应向甲方支付资金占用费。资 + 2、各连带还款人自愿加入乙方债务,与乙方连带偿还本协议项下对甲方的所有债务,承担连带还款责任,连带还款范围包括但不限于(1)车辆价款欠款及分期利息(2)保险垫款及分期利息(3)甲方履行担保义务垫款(4)甲方为实现债权而产生的费用(5)其他乙方应还甲方的款项。 - + + + + - + + - 金占 - + - + + - 用费按每月欠款金额分别计算,计算期间为每月还款日次日起至实际偿还 + 3、甲方有权要求各连带还款人在连带还款范围内与乙方连带偿还甲方债务。甲方要求各连带还款人还款不分份额及先后顺序。 - - - + + + - + + - 之日。资金占用费计算方式为:当月欠款金额×天数×千分之一。 + 4、甲方与乙方签署的补充协议及乙方向甲方作出的任何承诺,各连带还款人均认可并承担连带还款责任。 - - - + + + - + + - 第六条 乙方偿还甲方款项分配顺序 + 5、如丁方为连带还款人,丁方还款责任不受车辆是否过户影响,丁方应无条件的履行连带还款责任。 - - - + + + - - - - - 先结算当月履行担保义务垫款,再结算保险费垫款及 - - - - + + - 保险费垫款分期 + 第十三条 纠纷解决 - + + + + + + - - + - + + - 利息(该项先本后息 + 本协议项下发生的争议协商解决。如果协商不成,各方当事人均可向本协议载明的签订地人民法院提起诉讼解决。实际签订地与本协议载明的签订地不一致的以本协议载明的签订地为准。 + - + + + + - + + - ), - + - + + - 最后结算所欠车辆价款及车辆价款分期利息(该 + 第十四条 送达 - + + + + + + - - + - + + - 项先本后息)。当月结清后有剩余款项的,转入上月应还款项,再次按照 + 本协议各方当事人就本协议中涉及各类通知以及就本协议发生纠纷后管辖法院法律文书送达时的送达地址及法律后果作如下约定: - + + + + - + + - - + - + + - 前述顺序结算,直到结清全部欠款。结清全部欠款后仍有剩余款项的,转 + 1、本协议各方当事人在本协议载明的实际居住地址或实际经营地址、联系方式是真实、准确的。 - - - + + + - + + - 入下月应还款项,按照前述顺序结算。乙方书面告知甲方款项用途的除外。 + 2、各方当事人一致确认本协议载明的实际居住地址或实际经营地址为本合同中各方当事人涉及各类通知以及本协议发生纠纷后管辖法院法律文书送达时的送达地址。 - - - - - - - - + - + + - - - - - - + - + + - + 3、本协议载明的送达地址、联系方式使用期间包括协议履行期间以及诉讼阶段,诉讼阶段包括但不限于一审、二审、再审、执行等。 + - - - + + + - + + - 1、乙方办理融资的车辆登记在 - - - - - - - - - - ${yf!} + 4、本协议任何一方需要变更送达地址或联系方式的,应书面通知其他方。如在诉讼期间变更送达地址,还应书面通知管辖法院。送达地址变更并有效通知法院后,以变更后的地址为新的约定送达地址。 - + + + + - + + - 乙方 - - - - - - - - - - ${df!} - + - + + - 丁方名下。 + 5、如本协议任何一方出现以下情形,导致协议中涉及的各类通知及管辖法院法律文书无法实际送达,应自行承担相应的法律后果。邮寄送达的,以文书退回之日视为送达之日,视为已经有效送达。 - - - + + + - + + - 2、融资车辆登记在丁方名下的,乙方与丁方权利义务由其双方自行 + (1)、确认的送达地址或者联系方式不准确、不真实,导致无法联系受送达人的。 - + + + - - - - - - + + + + + + + + (2)、送达地址变更后未及时书面通知合同其他方和管辖法院。 + - - - + + + - + + - 约定,但不得损害甲方的利益。如有冲突,以本合同约定为准。 + (3)、受送达人拒绝签收。 - - - + + + - - + + - 3、融资车辆登记在丁方名下,系准予上路行驶的登记,不是所有权 + 第十五条 合同生效 - - - + + + - + + - 登记。 + 本协议自各方当事人签字或盖章完毕之日起生效。 - - - + + + + - + + + - 4、丁方应履行下列义务 + 特别提示:本合同系各方当事人协商确定 - - + + + - :( + ,甲方提请 - + + + - 1)配合办理车辆融资(2)配合办理车辆 + 各方当事人 - + + + - + 详细阅读所有条款并充分理解其含义及其法律后果,尤其是关于双方权利义务和管辖条款的约定 - + + + - 登记手续(3)配合办理车辆运营相关手续(4)协助办理车辆保险理赔手 + - - - + + + + - + + + - 续。(5)甲方、乙方需要丁方协助办理的其他业务。 + 如有不明条款或其他约定可在下列补充条款中予以补充约定。 - - - + + + + - - - - - 5、甲方变卖融资车辆的,丁方应协助甲方办理融资车辆过户手续。 - - - - - - - - - - - - + + + - 丁方不得以乙方欠款或其他的任何理由拒绝协助办理过户手续,否则丁方 + 补充条款: - - - + + + + - + + + + - 与乙方连带偿还本协议项下的债务。 + - - - + + + + - + + + + - 第八条 融资车辆使用 + - - - + + + + - - + + + + - 1、乙方应妥善使用融资车辆,按规定保养融资车辆。乙方运营融资 + - - - + + + + - + + + + - 车辆所用司机必须具有驾驶融资车辆相应的资质。 + - - - + + + + - - + + + + - 2、乙方须按规定办理融资车辆的登记(含改装、维修后登记)、营运、 + - - - + + + + - + + + + - 年检、二级维护等事宜并承担费用。 + - - - + + + + - - + + + - 3、未经甲方书面同意,乙方不得将融资车辆转让、变卖、或进行债 + 如对所有条款的含义及相应的法律后果 - - - - - - + + + + - + 全部知晓并充分理解 + - + + + - 务担保。乙方有义务随时向甲方提供融资车辆位置和使用状况。 + 后签署本合同。 - - - - - - - - - - - - - - - - - 4、乙方自愿在融资车辆上安装定位设备(包括但不限于 - - - - - - - - - - - - - - - - GPS - - - - - - - - - - - - - - - - - - - - - - - - 位设 - - - - - - - - - - - - - - - 备、北斗定位设备等)。乙方发现定位设备工作异常时须通知甲方。如出 - - - - - - - - - - - - - - - - 现定位设备丢失或损坏等情形无法继续使用的,甲方有权在融资车辆上重 - - - - - - - - - - - - - - - - - - - 新安装,相应的费用由乙方承担。 - - - - - - - - - - - - - - - - - - - - 5、融资车辆交付后,融资车辆毁损、灭失的风险由乙方承担。融资 - - - - - - - - - - - - - - - - - - - 车辆发生毁损,乙方应当自负费用恢复至正常使用状态。毁损情况的发生 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 不影响乙方的还款义务。 - - - - - - - - - - - - - - - - - - - 第九条 融资车辆故障解决 - - - - - - - - - - - - - - - - - - - - 乙方在使用融资车辆过程中出现车辆故障,乙方应通过合法途径对融 - - - - - - - - - - - - - - - - - - - 资车辆故障进行检测,根据检测结果进行处 - - - - - - - - 理。 - - - - - - - - - - - - - - - - - - - - 乙方不得以融资车辆出现故障或存在质量问题为由妨碍甲方的正常 - - - - - - - - - - - - - - - - - - - 经营或拒绝偿还甲方和资金提供方的相应款项。 - - - - - - - - - - - - - - - - - - - 第十条 融资车辆代管、变卖 - - - - - - - - - - - - - - - - - - - 1、乙方未按约定向甲方和资金提供方还款的,甲方有权代管融资车 - - - - - - - - - - - - - - - 辆。甲方代管融资车辆应依据乙方出具的《代管车辆授权委托书》中授权 - - - - - - - - - - - - - - - - - - - 及承诺事项进行。乙方未出具委托书的,该条款不适用。 - - - - - - - - - - - - - - - - - - - 2、甲方代管融资车辆的行为不免除乙方向甲方、资金提供方的还 - - - - - - - - 款 义务。甲方代管融资车辆的行为不影响甲方向资金提供方履行担保义务。 - - - - - - - - - - - - - - - - 甲方处置融资车辆所得价款视为乙方向甲方的还款,按照本协议约定进行 - - - - - - - - - - - - - - - - - - - 结算。乙方自行承担融资车辆代管期间的贬值损失。 - - - - - - - - - - - - - - - - - - - 3、甲方代管融资标的车辆时,乙方须予以配合(包括但不限于主动 - - - - - - - - - - - - - - - - 将车辆送回、提供车辆所在位置、通知驾驶人员或随乘人员配合等 - - - - - - - - ), - - - - - - - - - - - - - - - - - - - - - - - 得直接或间接采取阻挠手段。甲方代管融资车辆所产生的相关费用由乙方 - - - - - - - - - - - - - - - - 承担,因代管融资车辆所产生的损失(包括但不限于车辆毁损、停运损失 - - - - - - - - - - - - - - - - - - - 以及第三人的损失等)均由乙方承担。 - - - - - - - - - - - - - - - - - - - 4、甲方代管融资车辆后,甲方可以选择向乙方追 - - - - - - - - - 偿欠款,也可以选 - - - - - - - - - - - - - - - - - - - 择变卖融资车辆。 - - - - - - - - - - - - - - - - - - - 5、甲方代管融资车辆后选择追偿欠款的,乙方还清甲方和资金提供 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 方的所有款项后,甲方将融资车辆归还乙方。甲方代管融资车辆后选择变 - - - - - - - - - - - - - - - - 卖融资车辆的,甲方应委托车辆评估机构对融资车辆价值进行评估,乙方 - - - - - - - - - - - - - - - - 同意按照不低于评估价值 - - - - - - - - - - - - - - - - 80%的价格进行转卖,评估费由乙方承担。融资 - - - - - - - - - - - - - - - - - - - 车辆变卖的,乙方、丁方应协助办理车辆过户手续。 - - - - - - - - - - - - - - - - - - - 第十一条 违约责任 - - - - - - - - - - - - - - - - - - - - 1、乙方存在任何一项违约行为,甲方收取的履约保证金作为惩罚性 - - - - - - - - - - - - - - - - - - - 违约金不予退还。 - - - - - - - - - - - - - - - - - - - 2、乙方未按约定及时足额偿还甲方履行担保义务垫款、保险费垫款 - - - - - - - - - - - - - - - - 及保险费垫款分期利息、车辆价款欠款及车辆价款欠款分期利息的,甲方 - - - - - - - - - - - - - - - - 有权要求乙方一次性偿还上述款项项下的欠款。同时,甲方可以选择要求 - - - - - - - - - - - - - - - - 乙方支付资金占用费或选择要求乙方支付违约金。资金占用费按照本协议 - - - - - - - - - - - - - - - - 约定计算。违约金按履行担保义务垫款、保险费垫款、车辆价款欠款等款 - - - - - - - - - - - - - - - - - - - 项项下欠款总额 - - - - - - - - - - - - - - - - 30%计算。 - - - - - - - - - - - - - - - - - - - 3、乙方未及时足额向甲方或资金提供方偿还相关款项或有 - - - - - - - - 其他违约 情形的,甲方有权行使本合同第十条约定的代管、变卖融资车辆的权利。 - - - - - - - - - - - - - - - - 融资车辆变卖价款扣除评估费后的款项视为乙方向甲方的还款。如有剩余 - - - - - - - - - - - - - - - - - - - 退还乙方。如不足,甲方有权就不足部分向乙方追偿。 - - - - - - - - - - - - - - - - - - - 4、乙方违约,甲方为实现债权而产生的律师代理 - - - - - - - - - 费、财产保全责任 - - - - - - - - - - - - - - - - - - - 保险费、保全费、诉讼费、差旅费均由乙方承担。 - - - - - - - - - - - - - - - - - - - - 5、因乙方未按约定向甲方、资金提供方还款,甲方有权采取下列措 - - - - - - - - - - - - - - - - - - - 施以督促乙方履行还款义务,产生的费用和损失由乙方承担。 - - - - - - - - - - - - - - - - - - - (1)甲方工作人员上门催收,每人次 - - - - - - - - - - - - - - - - 500 - - - - - - - - 0 - - - - - - - - - - - - - - - - 元。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (2)通过技术手段锁定车辆,每台次 - - - - - - - - - - - - - - - - - - 5000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (3)代管车辆,每次 - - - - - - - - - - - - - - - - 10000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 第十二条 连带还款责任 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1、 - - - - - - - - - - - - - - - - - - ${bf!} - - - - - - - - 丙方、 - - - - - - - - - - - - - - - - - - ${dfTwo!} - - - - - - - - 丁方、 - - - - - - - - - - - - - - - - ${mf!} - - - - - - - - 戊方、 - - - - - - - - - - - - - - - - ${yfwldhk!} - - - - - - - - 己方为连带还款 - - - - - - - - 人。 - - - - - - - - - - - - - - - - - - - 2、各连带还款人自愿加入乙方债务,与乙方连带偿还本协议项下对 - - - - - - - - - - - - - - - - 甲方的所有债务,承担连带还款责任,连带还款范围包括但不限于( - - - - - - - - 1) - - - - - - - - - - - - - - - 车辆价款欠款及分期利息(2)保险垫款及分期利息(3)甲方履行担保义 - - - - - - - - - - - - - - - - - - - 务垫款(4)甲方为实现债权而产生的费用(5)其他乙方应还甲方的款项。 - - - - - - - - - - - - - - - - - - - - 3、甲方有权要求各连带还款人在连带还款范围内与乙方连带偿还甲 - - - - - - - - - - - - - - - - - - - 方债务。甲方要求各连带还款人还款不分份额及先后顺序。 - - - - - - - - - - - - - - - - - - - 4、甲方与乙方签署的补充协议及乙方向甲方作出 - - - - - - - - - 的任何承诺,各连 - - - - - - - - - - - - - - - - - - - 带还款人均认可并承担连带还款责任。 - - - - - - - - - - - - - - - - - - - 5、如丁方为连带还款人,丁方还款责任不受车辆是否过户影响,丁 - - - - - - - - - - - - - - - - - - - 方应无条件的履行连带还款责任。 - - - - - - - - - - - - - - - - - - - 第十三条 纠纷解决 - - - - - - - - - - - - - - - - - - - 本协议项下发生的争议协商解决。如果协商不成,各方当事人均可向 - - - - - - - - - - - - - - - 本协议载明的签订地人民法院提起诉讼解决。实际签订地与本协议载明的 - - - - - - - - - - - - - - - - - - - 签订地不一致的以本协议载明的签订地为准。 - - - - - - - - - - - - - - - - - - - 第十四条 送达 - - - - - - - - - - - - - - - - - - - - 本协议各方当事人就本协议中涉及各类通知以及就本协议发生纠纷 - - - - - - - - - - - - - - - - - - - 后管辖法院法律文书送达时的送达地址及法律后果作如下约定: - - - - - - - - - - - - - - - - - - - 1、本协议各方当事人在本协议载明的实际居住地址、联系方式是真 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 实、准确的。 - - - - - - - - - - - - - - - - - - - 2、各方当事人一致确认本协议载明的实际居住地址为本合同中各方 - - - - - - - - - - - - - - - - 当事人涉及各类通知以及本协议发生纠纷后管辖法院法律文书送达时的 - - - - - - - - - - - - - - - - - - - 送达地址。 - - - - - - - - - - - - - - - - - - - - 3、本协议载明的送达地址、联系方式使用期间包括协议履行期间以 - - - - - - - - - - - - - - - - - - 及诉讼阶段,诉讼阶段包括但不限于一审、 - - - - - - - - 二审、再审、执行等。 - - - - - - - - - - - - - - - - - - 4、本协议任何一方需要变更送达地址或联系方式 - - - - - - - - 的,应书面通知其 - - - - - - - - - - - - - - - 他方。如在诉讼期间变更送达地址,还应书面通知管辖法院。送达地址变 - - - - - - - - - - - - - - - - - - - 更并有效通知法院后,以变更后的地址为新的约定送达地址。 - - - - - - - - - - - - - - - - - - - 5、如本协议任何一方出现以下情形,导致协议中涉及的各类通知及 - - - - - - - - - - - - - - - - 管辖法院法律文书无法实际送达,应自行承担相应的法律后果。邮寄送达 - - - - - - - - - - - - - - - - - - - 的,以文书退回之日视为送达之日,视为已经有效送达。 - - - - - - - - - - - - - - - - - - - - (1)、确认的送达地址或者联系方式不准确、不真实,导致无法联系 - - - - - - - - - - - - - - - - - - - 受送达人的。 - - - - - - - - - - - - - - - - - - - (2)、送达地址变更后未及时书面通知合同其他方和管辖法院。 - - - - - - - - - - - - - - - - - - - (3)、受送达人拒绝签收。 - - - - - - - - - - - - - - - - - - - 第十五条 合同生效 - - - - - - - - - - - - - - - - - - - 本协议自各方当事人签字或盖章完毕之日起生效。 - - - - - - - - - - - - - - - - - - - - - - - - - - - 特别提示:本合同系各方当事人协商确定,甲方提请各方当事人详 - - - - - - - - - - - - - - - - - - - - - - - 细阅读所有条款并充分理解其含义及其法律后果,尤其是关于双方权利 - - - - - - - - - - - - - - - - - - - - - - - - - - 义务和管辖条款的约定。 - - - - - - - - - - - - - - - - - - - - - - - - - 如有不明条款或其他约定可在下列补充条款中予以补充约定。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 补充条款: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 如对所有条款的含义及相应的法律后果全部知晓并充分理解后签署 - - - - - - - - - - - - - - - - - - - - - - - - - - 本合同。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 授权委托人: - - - - - - - - - - - - - - 附件一 - - - - - - - - - - - - - 代管车辆授权委托书 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 签署时间: - - - - - - - - - - ${date!} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 委托人: - - - - - - - - - - ${partyB!} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 身份证号: - - - - - - - - - - - ${idNo!} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 受委托人: - - - - - - - - - - ${partyA!} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 根据委托人与受委托人签订的《还款协议》,委托人负有向受委托人 - - - - - - - - - - - - - - - - 还款的义务。为维护受委托人的权益,委托人同意并授权受委托人办理以 - - - - - - - - - - - - - - - - - - - 下事项: - - - - - - - - - - - - - - - - - - - - 1、委托人未按《还款协议》约定还款,受委托人可以行使《还款协 - - - - - - - - - - - - - - - - - - - 议》第十条约定的代管融资车辆的权利,依约代管融资车辆。 - - - - - - - - - - - - - - - - - - - - 2、融资车辆被代管,受委托人可以行使《还款协议》第十条第 - - - - - - - - - - - - - - - - - - 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 约定的变卖融资车辆的权利,依约变卖融资车辆,收取融 - - - - - - - - 资车辆变卖价款。 - - - - - - - - - - - - - - - - - - - 3、受委托人变卖融资车辆,受委托人选取有资质的车辆评估公司对 - - - - - - - - - - - - - - - - 融资车辆进行评估,受委托人可以按照不低于评估价值 - - - - - - - - - - - - - - - - 80%的价格变卖融 - - - - - - - - - - - - - - - - - - - 资车辆。 - - - - - - - - - - - - - - - - - - - 委托人向受委托人承诺如下: - - - - - - - - - - - - - - - - - - - 1、委托人自行承担融资车辆代管、变卖的法律后果。 - - - - - - - - - - - - - - - - - - - 2、委托人自行承担融资车辆代管期间的贬值损失。 - - - - - - - - - - - - - - - - - - - - 3、委托人认可评估公司对融资车辆的评估结果,认可融资车辆的变 - - - - - - - - - - - - - - - - - - - 卖价格,委托人承担评估费。 - - - - - - - - - - - - - - - - - - 4、委托人不以任何理由对抗该授权委托书中 - - - - - - - - 委托及承诺事项。 - - - - - - - - - - - - - - - - - - - - 5、本授权委托为不可撤销,有效期自本授权委托书出具之日起至我 - - - - - - - - - - - - - - - 还清所有债务之日止。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - false - false - WPS Office_12.1.0.15712_F1E327BC-269C-435d-A152-05C5408002CA - - - - - - - 2020-08-12T10:45:00Z - Administrator - 腾裳壮拙沾 - 2023-11-08T09:29:50Z - - - - - - - - wqlLaW5nc29mdCBQREYgdG8gV1BTIDkw - - - 2023-11-08T15:28:27Z - - - 2052-12.1.0.15712 - - - 4ECE31FD418B479E84A2101D76B6E7E3_13 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - 11 - - - - - - - - - - - - - - - - - - - - - - - - - - 12 - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 甲 方 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 丁 方 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 乙 方 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 戊 方 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 丙 方 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 己 方 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - 2 - - - + + + - + - - - - - - - - - - - - - - - - - - 3 - - - + - + - - - - - - - - - - - - - - - - - - 4 - - - + + + - + - - - - - - - - - - - - - - - - - - 5 - - - + + + CHINA + 12 + 898 + 5119 + 42 + 12 + 4 + false + false + 6005 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + - + - - - - - - - - - - - - - - - - - - 6 - - - + + 2020-07-29T02:41:00Z + Administrator + WPS_1599826008 + 2024-01-26T08:20:08Z + 6 + - + - - - - - - - - - - - - - - - - - - 7 - - - + + + 2052-12.1.0.16120 + + + 91D12B5A00B14ACFA8226472F4B43FAA_13 + + - + - - - - - - - - - - - - - - - - - - 8 - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + PAGE \* MERGEFORMAT + + + + + + + + + 9 + + + + + + + + + + - - - - - - - + - - - - - - - 9 - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -9006,52 +5486,223 @@ xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData" mc:Ignorable="w14"> - - - - + + + - - - - - - - - - - - - + + + + + + + - - + - + w:val="12"/> - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9068,15 +5719,6 @@ w:accent2="accent2" w:accent3="accent3" w:accent4="accent4" w:accent5="accent5" w:accent6="accent6" w:hyperlink="hyperlink" w:followedHyperlink="followedHyperlink"/> - - - - - - - - - @@ -9096,8 +5738,8 @@ - + @@ -9106,165 +5748,161 @@ w:defUIPriority="99" w:defLockedState="0"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9291,6 +5929,8 @@ w:name="Medium Shading 2 Accent 1"/> + - - - - - - - - + + - - - - + + - - + + - + + - - + + - + + + - + @@ -9493,44 +6129,121 @@ - + + - + + + + + + + + + + + + + + + + + + + + - - - - + + - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + - - - + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + @@ -9539,7 +6252,7 @@ - + @@ -9613,7 +6326,6 @@ - @@ -9648,7 +6360,6 @@ - @@ -9781,8 +6492,8 @@ - + diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclqrs.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclqrs.ftl new file mode 100644 index 0000000000..6002448eac --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclqrs.ftl @@ -0,0 +1,2688 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 接收车辆确认书 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 交 付 人 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 经 办 人 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jbr!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + 合同编号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${htbh!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 购 买 人 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${gmr!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + 证件号码 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${idNo1!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 接 收 人 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jsr!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + 身份证号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${idNo2!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 接收时间 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jssj!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 接收地点 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jsdd!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 接 收 车 辆 信 息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 品 牌 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${brandName!} + + + + + + + + + + + + + + + + + + + + + + + + + + 名 称 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${modelName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 车辆型号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${xh!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 颜 色 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ys!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 序号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 车 架 号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 发动机号 + + + + + <#list list as ls> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.id!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.vinNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.fdjNo!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 经验收,随车工具齐全,车辆状况良好,已接收车辆。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 接收人签字(手印)或盖章: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 联系电话: + + + + + + + + + + + + ${phone!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${y?c} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${m!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${d!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CHINA + 1 + 45 + 258 + 2 + 1 + 5 + false + false + 302 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T03:18:00Z + Administrator + WPS_1599826008 + 2024-01-25T07:49:59Z + 3 + + + + + + + + 2052-12.1.0.16120 + + + E863745B570C4192967D66230B506540_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclwts.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclwts.ftl new file mode 100644 index 0000000000..baa453dfdd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclwts.ftl @@ -0,0 +1,1524 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 接收车辆委托书 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 委托人: + + + + + + + + + + + + + + + + + + + + + ${wtr!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 证件号码: + + + + + + + + + + + + + + + + + + + + + ${idNo1!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 受托人: + + + + + + + + + + + + + + + + + + + + + ${swtr!} + + + + + + + + + + + + + + + + + + + 身份证号: + + + + + + + + + + + + + + + + + + + + + ${idNo2!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 委托人与 + + + + + + + + + + + + + + + + + + + + + ${jf!} + + + + + + + + + + + + + + + + + + + + + 签订了编号为 + + + + + + + + + + + + + + + + + + + + + ${con!} + + + + + + + + + + + + + + + + + + + + 的《车辆买卖合同》。现委托人委托受托人办理提车手续,接收标的车辆,签署《接收车辆确认书》。受托人接收车辆及签署《接收车辆确认书》视为委托人已经接收车辆,法律后果由委托人承担。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 委托人: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 年 月 日 + + + + + + + + + + + + + + + + + + + + + + + + + + + CHINA + 1 + 52 + 300 + 2 + 1 + 0 + false + false + 351 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T02:45:00Z + Administrator + WPS_1599826008 + 2024-01-25T10:09:36Z + 3 + + + + + + + + 2052-12.1.0.16120 + + + 29D989E3959140E092CC457B38A95504_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/kpsqs.ftl b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/kpsqs.ftl new file mode 100644 index 0000000000..d6b7996367 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/kpsqs.ftl @@ -0,0 +1,1903 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 开票申请书 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jf!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 我与你公司签署了《车辆买卖合同》(编号为 + + + + + + + + + + ${con!} + + + + + + + + + + + + + + + + + ),现我申请将车辆发票按照下列金额开具发票,我自行承担相应的法律后果。我承诺按照《车辆买卖合同》约定的价格支付车辆价款。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 车辆名称 + + + + + + + + + + + + + + + + + + + + + + + + + 数量 + + + + + + + + + + + + + + + + + + + + + + + + + + + 合同单价 + + + + + + + + + + + + + + + + + + + + + + + + + + 开票金额 + + + + + + + + + + + + + + + + + + + + + + + + + + 发票类型 + + + + + <#list list as ls> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.id!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.modelName!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.num!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.dj!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.kpje!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${ls.fplx!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 车辆落户单位 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${lhdw!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 申请人: + + + + + + + + + ${sqr!} + + + + + + + + 申请时间: + + + + + + + + + + ${y?c} + + + + + + + + + + + + + + + + + + ${m!} + + + + + + + + + + + + + + + + + + ${d!} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CHINA + 1 + 34 + 195 + 1 + 1 + 10 + false + false + 228 + WPS Office_12.1.0.16120_F1E327BC-269C-435d-A152-05C5408002CA + 0 + + + + + + + 2020-07-29T02:44:00Z + Administrator + WPS_1599826008 + 2024-01-26T03:12:37Z + 21 + + + + + + + + 2052-12.1.0.16120 + + + B3A05ECBDEAD4E119FC2B133B65C7952_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/static/当月资方逾期模板.xls b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/static/当月资方逾期模板.xls new file mode 100644 index 0000000000..d5764cfab1 Binary files /dev/null and b/anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/static/当月资方逾期模板.xls differ diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java index 7455ba5971..9fb5fc19d4 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java @@ -67,6 +67,6 @@ public interface ScmApplyInboundVehQueryMapper extends BaseMapper fetchByMainSid(String cgrkdSid); - @Select("SELECT * FROM scm_apply_inbound_veh_query WHERE vinNo LIKE #{vinNo}") - ScmApplyInboundVehQueryDetailsVo fetchDetailsByVinNo(String vinNo); + @Select("SELECT * FROM scm_apply_inbound_veh_query WHERE vinNo LIKE CONCAT('%',#{vinNo},'%')") + ScmApplyInboundVehQueryDetailsVo fetchDetailsByVinNo(@Param("vinNo") String vinNo); } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleexamine/ScmVehicleExamineService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleexamine/ScmVehicleExamineService.java index c61372099e..b4f1f71ae8 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleexamine/ScmVehicleExamineService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleexamine/ScmVehicleExamineService.java @@ -745,22 +745,22 @@ public class ScmVehicleExamineService extends MybatisBaseService 0) { - finPaymentrecordDto.setCost(price - deposit / num);//付款金额 - finPaymentrecordDto.setAccountsReceive(price - deposit / num);//付款金额 + finPaymentrecordDto.setCost(String.valueOf(price - deposit / num));//付款金额 + finPaymentrecordDto.setAccountsReceive(String.valueOf(price - deposit / num));//付款金额 finPaymentrecordDto.setPayRemark("本车使用订金" + (deposit / num) + "元。"); } else { - finPaymentrecordDto.setCost(price);//付款金额 - finPaymentrecordDto.setAccountsReceive(price);//付款金额 + finPaymentrecordDto.setCost(String.valueOf(price));//付款金额 + finPaymentrecordDto.setAccountsReceive(String.valueOf(price));//付款金额 } } else if (depositUseRuleKey.equals("001")) { int i = baseMapper.selectCountByBusSid(scmVehicleExamine.getBusinessSid()); i = i + 1; if (i > 1) { - finPaymentrecordDto.setCost(price);//付款金额 - finPaymentrecordDto.setAccountsReceive(price);//付款金额 + finPaymentrecordDto.setCost(String.valueOf(price));//付款金额 + finPaymentrecordDto.setAccountsReceive(String.valueOf(price));//付款金额 } else if (i == 1) { - finPaymentrecordDto.setCost(price - deposit); - finPaymentrecordDto.setAccountsReceive(price - deposit); + finPaymentrecordDto.setCost(String.valueOf(price - deposit)); + finPaymentrecordDto.setAccountsReceive(String.valueOf(price - deposit)); finPaymentrecordDto.setPayRemark("本车为末台车,使用订金" + deposit + "元。"); } } diff --git a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue index 4f5579ef80..a87446ca67 100644 --- a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue +++ b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue @@ -123,7 +123,7 @@ import req from '@/api/bikerebate/bicyclerebatecheck' import Pagination from '@/components/pagination' import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar' -import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons' +import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons' import bicyclerebatecheckAdd from './bicyclerebatecheckAdd' import bicyclerebatecheckInfo from './bicyclerebatecheckInfo' import {getStorage} from "@/utils/auth"; @@ -224,7 +224,7 @@ export default { this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params))) }, init() { - getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => { + getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => { if (resp.success) { this.listQuery.params.createOrgSid = resp.data brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => { diff --git a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue index 3b4a97c8b6..51baec0cd1 100644 --- a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue +++ b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue @@ -274,7 +274,7 @@ import Pagination from '@/components/pagination' import ButtonBar from '@/components/ButtonBar' import bicyclerebatecheck from './bicyclerebatecheck' import bicyclerebatecheckAdd from './bicyclerebatecheckAdd' -import { brandDown, getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons' +import { brandDown, getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons' export default { name: 'bicyclerebatetobechecked', @@ -389,7 +389,7 @@ export default { this.rebateType_list = res.data } }) - getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => { + getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => { if (resp.success) { this.listQuery.params.createOrgSid = resp.data brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => { diff --git a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatewithholding/bicyclerebatewithholding.vue b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatewithholding/bicyclerebatewithholding.vue index a34baf6c02..e953cd646d 100644 --- a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatewithholding/bicyclerebatewithholding.vue +++ b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatewithholding/bicyclerebatewithholding.vue @@ -96,7 +96,7 @@ import req from '@/api/bikerebate/bicyclerebatewithholding' import Pagination from '@/components/pagination' import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar' -import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons' +import { brandDown, getOrgSidByPath } from '@/api/cheliang/dictcommons' import bicyclerebatewithholdingAdd from './bicyclerebatewithholdingAdd' import bicyclerebatewithholdingInfo from './bicyclerebatewithholdingInfo' import { getStorage } from '@/utils/auth' @@ -202,7 +202,7 @@ export default { this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params))) }, init() { - getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => { + getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => { if (resp.success) { this.listQuery.params.createOrgSid = resp.data brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => { diff --git a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue index 6f68a5b5ef..7cc1a0a3be 100644 --- a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue +++ b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue @@ -189,7 +189,7 @@ import req from '@/api/bikerebate/bicyclerebatemanagement' import Pagination from '@/components/pagination' import pageye from '@/components/pagination/pageye' import ButtonBar from '@/components/ButtonBar' -import { getPathSidByUserSid, typeValues, brandDown } from '@/api/cheliang/dictcommons' +import { getOrgSidByPath, typeValues, brandDown } from '@/api/cheliang/dictcommons' import bicyclerebatemanagementAdd from './bicyclerebatemanagementAdd' import bicyclerebatemanagementEdit from './bicyclerebatemanagementEdit' import bicyclerebatemanagementInfo from './bicyclerebatemanagementInfo' @@ -295,7 +295,7 @@ export default { this.rebateType_list = res.data } }) - getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => { + getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => { if (resp.success) { this.listQuery.params.createOrgSid = resp.data brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => { diff --git a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue index 5d101104b8..0a47ea1b1e 100644 --- a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue +++ b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementByVehicle.vue @@ -109,7 +109,7 @@