Browse Source

Merge remote-tracking branch 'origin/master'

master
God 1 year ago
parent
commit
a04abd3630
  1. 348
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  2. 14
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  3. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java
  4. 33
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml
  5. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java
  6. 113
      anrui-riskcenter-ui/src/api/caseappeal/caseappeal.js
  7. 37
      anrui-riskcenter-ui/src/router/index.js
  8. 381
      anrui-riskcenter-ui/src/views/caseappeal/caseappeal.vue
  9. 376
      anrui-riskcenter-ui/src/views/caseappeal/caseappealAdd.vue
  10. 322
      anrui-riskcenter-ui/src/views/caseappeal/caseappealInfo.vue
  11. 25
      anrui-riskcenter-ui/src/views/homevisitpreparation/homevisittobeprepared.vue
  12. 558
      anrui-riskcenter-ui/src/views/workFlow/shangsuFlow/caseappealDaiBan.vue
  13. 343
      anrui-riskcenter-ui/src/views/workFlow/shangsuFlow/caseappealEdit.vue
  14. 344
      anrui-riskcenter-ui/src/views/workFlow/shangsuFlow/caseappealYiBan.vue
  15. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java
  16. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java
  17. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  18. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

348
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -688,210 +688,208 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(dto.getOpenTickSid());
if (!dto.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())) {
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
if("1".equals(busSalesOrder.getPayTypeKey()) || ("2".equals(busSalesOrder.getPayTypeKey()) && StringUtils.isNotBlank(loanSolutions.getTypeKey()))) {
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(dto.getOpenTickSid());
if (!dto.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())) {
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
}
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(finBillVehicles.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(finBillVehicles.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
}
billFileVo.setType(busSalesOrder.getBillingType());
list.add(billFileVo);
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
Map<String, Object> carNameMap = new HashMap<>();
if (!finBillTrailers.isEmpty()) {
for (int i = 0; i < finBillTrailers.size(); i++) {
FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
if (carNameMap.containsKey(carName)) {
carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1);
continue;
} else {
billFileVo.setType(busSalesOrder.getBillingType());
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
}
}
billFileVo.setType(busSalesOrder.getBillingType());
list.add(billFileVo);
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
Map<String, Object> carNameMap = new HashMap<>();
if (!finBillTrailers.isEmpty()) {
for (int i = 0; i < finBillTrailers.size(); i++) {
FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
if (carNameMap.containsKey(carName)) {
carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1);
continue;
} else {
billFileVo.setType(busSalesOrder.getBillingType());
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
}
}
billFileVo.setCarName(carName);
if (busSalesOrderModel != null) {
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
carNameMap.put(carName, 1);
list.add(billFileVo);
}
billFileVo.setCarName(carName);
if (busSalesOrderModel != null) {
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
carNameMap.put(carName, 1);
list.add(billFileVo);
}
}
}
}
}
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
BillFileVo billFileVo1 = list.get(i);
String carName = billFileVo1.getCarName();
if (carNameMap.containsKey(carName)) {
billFileVo1.setNum(carNameMap.get(carName).toString());
}
}
}
map.put("list", list);
map.put("name",busSalesOrder.getAffiliatedCompany());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
if (!"02".equals(dto.getOpenTickTypeKey())) {
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
BillFileVo billFileVo1 = list.get(i);
String carName = billFileVo1.getCarName();
if (carNameMap.containsKey(carName)) {
billFileVo1.setNum(carNameMap.get(carName).toString());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (FinBillVehicleDto salesOrderVehicle : finBillVehicles) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
}
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
map.put("list", list);
map.put("name", busSalesOrder.getAffiliatedCompany());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
filemap.put("year", year);
filemap.put("month", month);
filemap.put("day", day);
if (finCompanyInvoicingDetailsVo != null) {
filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址
}else{
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid());
if (crmCustomerTemp != null) {
filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称
filemap.put("customerName", crmCustomerTemp.getName());//开票名称
filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
map.put("year", year);
map.put("month", month);
map.put("day", day);
if (!"02".equals(dto.getOpenTickTypeKey())) {
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (FinBillVehicleDto salesOrderVehicle : finBillVehicles) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks);
filemap.put("busSid",busSalesOrder.getSid());
ResultBean<Map<String,Object>> mapResultBean = commonContractFeign.getModelMap(filemap);
checkMap = mapResultBean.getData();
//生成新车空白合同
checkMap.put("totalPrice", "");
checkMap.put("priceRemarks", "");
checkMap.put("depositTotal", "");
checkMap.put("createOrgName", "");
}
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
filemap.put("year", year);
filemap.put("month", month);
filemap.put("day", day);
if (finCompanyInvoicingDetailsVo != null) {
filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址
} else {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid());
if (crmCustomerTemp != null) {
filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称
filemap.put("customerName", crmCustomerTemp.getName());//开票名称
filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
}
}
filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks);
filemap.put("busSid", busSalesOrder.getSid());
ResultBean<Map<String, Object>> mapResultBean = commonContractFeign.getModelMap(filemap);
checkMap = mapResultBean.getData();
//生成新车空白合同
checkMap.put("totalPrice", "");
checkMap.put("priceRemarks", "");
checkMap.put("depositTotal", "");
checkMap.put("createOrgName", "");
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
List<File> filesList = new ArrayList<>();
if(!map.isEmpty()){
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if(!carMap.isEmpty()){
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
List<File> filesList = new ArrayList<>();
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
}
Map<String, Object> finalCheckMap = checkMap;
if(!finalCheckMap.isEmpty()){
Future<String> future3 = pool.submit(() -> {
return blackFile(finalCheckMap);
});
if (StringUtils.isNotBlank(future3.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get());
filesList.add(file);
if (!carMap.isEmpty()) {
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
Map<String, Object> finalCheckMap = checkMap;
if (!finalCheckMap.isEmpty()) {
Future<String> future3 = pool.submit(() -> {
return blackFile(finalCheckMap);
});
if (StringUtils.isNotBlank(future3.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get());
filesList.add(file);
}
}
}
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl =typeName;
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
return fileUrl;

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

@ -3557,7 +3557,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByCillSid(sid);
List<FinSelectedReceivablesDetailedRsk> rskList = new ArrayList<>();
if (!finSelectedReceivablesDetailedVos.isEmpty()) {
finSelectedReceivablesDetailedVos.stream().forEach(v -> {
for (FinSelectedReceivablesDetailedVo v : finSelectedReceivablesDetailedVos) {
FinSelectedReceivablesDetailedRsk rsk = new FinSelectedReceivablesDetailedRsk();
String receivablesSid = v.getReceivablesSid();
if (v.getReceivablesName().equals("月还")) {
@ -3582,7 +3582,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVinNo(data.getVinNo() + "/" + data.getVehMark());
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid);
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid,v.getReceivablesSid());
if (StringUtils.isNotBlank(noReturnMoney)) {
rsk.setNoReceivableMoney(noReturnMoney);
}
@ -3596,7 +3596,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
rsk.setReceivablesSid(v.getReceivablesSid());
rsk.setAuditState(String.valueOf(v.getAuditState()));
rskList.add(rsk);
});
}
}
finCollectionConfirmationDetailsVo.setFinSelectedReceivablesDetaileds(rskList);
if (finCollectionConfirmation.getAuditState() == 2) {
@ -3820,7 +3820,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData();
SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
@ -3857,7 +3857,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData();
SysUserVo userVo = sysUserFeign.fetchBySid(userSid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
@ -4550,7 +4550,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid);
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid,v.getReceivablesSid());
if (StringUtils.isNotBlank(noReturnMoney)) {
rsk.setNoReceivable(new BigDecimal(noReturnMoney));
}
@ -4788,7 +4788,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid);
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid,v.getReceivablesSid());
if (StringUtils.isNotBlank(noReturnMoney)) {
rsk.setResidueMoney(new BigDecimal(noReturnMoney));
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java

@ -80,7 +80,7 @@ public interface FinUncollectedReceivablesDetailedJRMapper extends BaseMapper<Fi
String selNoReturnMoneyRsk(@Param("planSid") String planSid);
String selNoReturnMoneyJR(@Param("planSid") String planSid);
String selNoReturnMoneyJR(@Param("planSid") String planSid,@Param("sid") String sid);
List<AppFinUncollectedReceivablesDetailedRskVo> getRskPaymentDetailsListForRule( @Param(Constants.WRAPPER) QueryWrapper<AppFinUncollectedReceivablesDetailedRskVo> qw,
@Param("userOrgSid") String userOrgSid,

33
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml

@ -242,16 +242,29 @@
where p.sid = #{planSid}
</select>
<select id="selNoReturnMoneyJR" resultType="java.lang.String">
SELECT jr.reveivableMoney - IFNULL(((
SELECT SUM(IFNULL(se.subscriptionMoney, 0))
FROM fin_selected_receivables_detailed AS se
WHERE se.receivablesSid = jr.sid
AND se.auditState != '2' and se.auditState != '4' )),
0
) AS noReceivable
FROM fin_uncollected_receivables_detailed_jr AS jr
LEFT JOIN anrui_riskcenter.loan_repayment_plan_details AS p ON jr.busSid = p.sid
where p.sid = #{planSid}
SELECT IFNULL(SUM(a.noReceivable),0) FROM
(SELECT
jr.reveivableMoney - IFNULL(((
SELECT
SUM(
IFNULL( se.subscriptionMoney, 0 ))
FROM
fin_selected_receivables_detailed AS se
WHERE
se.receivablesSid = jr.sid
AND se.auditState != '2'
AND se.auditState != '4'
)),
0
) AS noReceivable
FROM
fin_uncollected_receivables_detailed_jr AS jr
LEFT JOIN anrui_riskcenter.loan_repayment_plan_details AS p ON jr.busSid = p.sid
WHERE
p.sid = #{planSid}
AND jr.sid = #{sid}) as a
</select>
<select id="getRskPaymentDetailsListForRule"
resultType="com.yxt.anrui.fin.api.fincollectionconfirmation.rsk.AppFinUncollectedReceivablesDetailedRskVo">

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java

@ -116,8 +116,8 @@ public class FinUncollectedReceivablesDetailedJRService extends MybatisBaseServi
return baseMapper.selNoReturnMoneyRsk(planSid);
}
public String selNoReturnMoneyJR(String planSid) {
return baseMapper.selNoReturnMoneyJR(planSid);
public String selNoReturnMoneyJR(String planSid,String sid) {
return baseMapper.selNoReturnMoneyJR(planSid,sid);
}

113
anrui-riskcenter-ui/src/api/caseappeal/caseappeal.js

@ -0,0 +1,113 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/riskcenter/v1/loancaseappealapply/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
saveOrUpdate: function(data) {
return request({
url: '/riskcenter/v1/loancaseappealapply/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
init: function(data) {
return request({
url: '/riskcenter/v1/loancaseappealapply/details',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/riskcenter/v1/loancaseappealapply/fetchDetailsBySid/' + data,
method: 'get'
})
},
deleteBySids: function(data) {
return request({
url: '/riskcenter/v1/loancaseappealapply/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 提交流程
submit: function(params) {
return request({
url: '/riskcenter/v1/loancaseappealapply/submit',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 流程审批(同意)
complete: function(params) {
return request({
url: '/riskcenter/v1/loancaseappealapply/complete',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 流程审批(加签)
delegate: function(params) {
return request({
url: '/riskcenter/v1/loancaseappealapply/delegate',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 流程审批(驳回)
reject: function(params) {
return request({
url: '/riskcenter/v1/loancaseappealapply/reject',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 流程审批(终止)
breakProcess: function(params) {
return request({
url: '/riskcenter/v1/loancaseappealapply/breakProcess',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 流程审批(撤回)
revokeProcess: function(params) {
return request({
url: '/riskcenter/v1/loancaseappealapply/revokeProcess',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 审批流程(同意)获取下一环节
getNextNodesForSubmit: function(data) {
return request({
url: '/riskcenter/v1/loancaseappealapply/getNextNodesForSubmit',
method: 'get',
params: data
})
},
// 审批流程(驳回)获取上一环节
getPreviousNodesForReject: function(data) {
return request({
url: '/riskcenter/v1/loancaseappealapply/getPreviousNodesForReject',
method: 'get',
params: data
})
}
}

37
anrui-riskcenter-ui/src/router/index.js

@ -759,6 +759,22 @@ export const constantRoutes = [
}
]
},
{
path: '/caseappeal',
component: Layout,
redirect: '/caseappeal',
meta: {
title: '案件上诉管理'
},
children: [
{
path: '/caseappeal/caseappeal',
component: () => import('@/views/caseappeal/caseappeal.vue'),
name: 'CaseAppeal',
meta: { title: '案件上诉管理', noCache: true }
}
]
},
// 流程审批
// 金融产品政策报备--编辑
@ -1288,6 +1304,27 @@ export const constantRoutes = [
component: () =>
import('@/views/workFlow/susongFlow/caseactionYiBan.vue'),
name: 'CaseActionYiBan'
},
// 案件上诉管理--编辑
{
path: '/shangsuFlow/caseappealEdit',
component: () =>
import('@/views/workFlow/shangsuFlow/caseappealEdit.vue'),
name: 'CaseAppealEdit'
},
// 案件上诉管理--待办
{
path: '/shangsuFlow/caseappealDaiBan',
component: () =>
import('@/views/workFlow/shangsuFlow/caseappealDaiBan.vue'),
name: 'CaseAppealDaiBan'
},
// 案件上诉管理--已办
{
path: '/shangsuFlow/caseappealYiBan',
component: () =>
import('@/views/workFlow/shangsuFlow/caseappealYiBan.vue'),
name: 'CaseAppealYiBan'
},
// 404 page must be placed at the end !!!
// { path: '*', redirect: '/404', hidden: true }

381
anrui-riskcenter-ui/src/views/caseappeal/caseappeal.vue

@ -0,0 +1,381 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="案件上/应诉管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.useOrgName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请部门">
<el-input v-model="listQuery.params.deptName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请人">
<el-input v-model="listQuery.params.createByName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker v-model="listQuery.params.createStartTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.createEndTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="办结日期">
<el-date-picker v-model="listQuery.params.modifyStartTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.modifyEndTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="贷款合同编号">
<el-input v-model="listQuery.params.loanContract" placeholder="" clearable/>
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="贷款人">
<el-input v-model="listQuery.params.lenderName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="案件编号">
<el-input v-model="listQuery.params.caseNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="案件阶段">
<el-input v-model="listQuery.params.caseStage" placeholder="" clearable/>
</el-form-item>
<el-form-item label="预上/应诉日期">
<el-date-picker v-model="listQuery.params.expectStartDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.expectEndDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="上诉到期日期">
<el-date-picker v-model="listQuery.params.appealDueStartDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.appealDueEndDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="上/应诉法院">
<el-input v-model="listQuery.params.expectCourt" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">案件上/应诉申请列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="180px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)" :disabled="scope.row.nodeState =='发起申请' ? false : scope.row.nodeState == '待提交' ? false : true">办理</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="状态" width="180px" header-align="center">
<template slot-scope="scope">
<span v-if="scope.row.nodeState=='待提交'" type="primary" size="mini">待提交</span>
<span v-else @click="flowRecord(scope.row)" class="bluezi">{{ scope.row.nodeState }}</span>
</template>
</el-table-column>
<el-table-column prop="useOrgName" label="分公司" align="center" width="130" />
<el-table-column prop="deptName" label="申请部门" align="center" width="130" />
<el-table-column prop="createByName" label="申请人" align="center" width="100" />
<el-table-column prop="createTime" label="申请日期" align="center" width="100" />
<el-table-column prop="modifyTime" label="办结日期" align="center" width="100" />
<el-table-column prop="loanContract" label="贷款合同编号" align="center" width="160" />
<el-table-column prop="customName" label="客户名称" align="center" width="100" />
<el-table-column prop="lenderName" label="贷款人" align="center" min-width="100" />
<el-table-column prop="caseNo" label="案件编号" align="center" width="160" />
<el-table-column prop="priCourtRefer" label="原法院案号" align="center" width="100" />
<el-table-column prop="caseStage" label="案件阶段" align="center" width="100" />
<el-table-column prop="expectDate" label="预上/应诉日期" align="center" width="130" />
<el-table-column prop="appealDueDate" label="上诉到期日期" align="center" width="130" />
<el-table-column prop="expectCourt" label="上/应诉法院" align="center" width="100" />
</el-table>
</div>
<!--End 主页面主要部分-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--End查询列表部分-->
</div>
</div>
<!--新增及修改 -->
<caseappealAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!--详情-->
<caseappealInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" />
<!-- 流程审批记录 -->
<el-dialog title="" :visible.sync="centerDialogVisible" width="78%" height="1%" :before-close="closeIt" center>
<iframe frameborder="0" id="iframe" style="width:100%;" scrolling="no" :src="this.centerDialogVisible === true ? url :''"></iframe>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/caseappeal/caseappeal'
import { getStorage } from '@/utils/auth'
import caseappealAdd from './caseappealAdd'
import caseappealInfo from './caseappealInfo'
export default {
name: 'CaseAppeal',
components: {
Pagination,
pageye,
ButtonBar,
caseappealAdd,
caseappealInfo
},
data() {
return {
url: '',
dialogHeight: '80%',
centerDialogVisible: false,
btndisabled: false,
btnList: [
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
appealDueEndDate: '',
appealDueStartDate: '',
caseNo: '',
caseStage: '',
createByName: '',
createEndTime: '',
createStartTime: '',
customName: '',
deptName: '',
expectCourt: '',
expectEndDate: '',
expectStartDate: '',
lenderName: '',
loanContract: '',
menuSid: '',
menuUrl: '',
modifyEndTime: '',
modifyStartTime: '',
orgPath: '',
useOrgName: '',
userSid: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
// vuewindowpostMessagehandleMessage
window.addEventListener('message', this.handleMessage)
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
async handleMessage(event) {
var code = ''
if (event.data.params !== null && event.data.params !== undefined) {
code = event.data.params.code
}
if (code === 1) {
this.centerDialogVisible = false
} else if (code === 2) {
this.dialogHeight = event.data.params.data
this.setIframeHeight(document.getElementById('iframe'))
}
},
closeIt() {
this.url = ''
this.centerDialogVisible = false
},
setIframeHeight(iframe) {
iframe.height = this.dialogHeight
},
flowRecord(row) {
this.centerDialogVisible = true
var params = {
deployId: row.procDefId,
procInsId: row.procInstSid,
token: getStorage()
}
this.url = '/#/flow/flowRecordForBusiness?data=' + encodeURI((JSON.stringify(params)))
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.menuUrl = this.$route.path
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
appealDueEndDate: '',
appealDueStartDate: '',
caseNo: '',
caseStage: '',
createByName: '',
createEndTime: '',
createStartTime: '',
customName: '',
deptName: '',
expectCourt: '',
expectEndDate: '',
expectStartDate: '',
lenderName: '',
loanContract: '',
menuSid: '',
menuUrl: '',
modifyEndTime: '',
modifyStartTime: '',
orgPath: '',
useOrgName: '',
userSid: ''
}
}
this.getList()
},
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
},
toInfo(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
//
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

376
anrui-riskcenter-ui/src/views/caseappeal/caseappealAdd.vue

@ -0,0 +1,376 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件创建日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseCreateDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">公司负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.compHead }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">法务部门负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.legalDeptHead }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">案件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">贷款人</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款人证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderIdNo }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">贷款人户籍/注册地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderAddress }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户</div>
<el-form-item><span class="addinputInfo">{{ formobj.customName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">欠款合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.arrearsTotal }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否全额诉讼</div>
<el-form-item><span class="addinputInfo">{{ formobj.isFullLitigation }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">起诉金额合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.sueMoneyTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">部分诉讼说明</div>
<el-form-item><span class="addinputInfo">{{ formobj.partProceRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">判决日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判决结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgResult }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判断金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">领取判决书日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivejudgDate }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">判决备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">判决资料</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.pjclFiles" :key="index" :src="item" :preview-src-list="formobj.pjclFiles" /></el-form-item>
</el-col>
</el-row>
<div class="title">车辆信息</div>
<el-table :key="tableKey" :data="formobj.loanCaseAppealVehList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="carNum" label="车牌号" align="center" />
<el-table-column prop="affiliatedCompany" label="挂靠公司" align="center" />
<el-table-column prop="carState" label="车辆状态" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
<el-row>
<el-col :span="8">
<div class="span-sty">案件阶段</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseStage }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">预上/应诉日期</div>
<el-form-item><el-date-picker class="addinputInfo" v-model="formobj.expectDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上诉到期日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.appealDueDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">/应诉材料</div>
<el-form-item>
<uploadImg ref="uploadImg" class="addinputInfo" v-model="formobj.ysclFiles" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/caseappeal/caseappeal'
import uploadImg from '@/components/uploadFile/uploadImg'
export default {
name: 'CaseAppealAdd',
components: {
uploadImg
},
data() {
return {
viewTitle: '',
viewState: 1,
submitdisabled: false,
tableKey: 0,
index: 0,
formobj: {
appealDueDate: '',
arrearsTotal: '',
bankContract: '',
bankName: '',
billNo: '',
caseCreateDate: '',
caseNo: '',
caseStage: '',
caseType: '',
compHead: '',
createByName: '',
createBySid: '',
createTime: '',
customName: '',
deptName: '',
deptSid: '',
expectCourt: '',
expectDate: '',
isFullLitigation: '',
judgDate: '',
judgMoney: '',
judgRemarks: '',
judgResult: '',
legalDeptHead: '',
lenderAddress: '',
lenderIdNo: '',
lenderName: '',
loanCaseAppealVehList: [],
loanContract: '',
nodeSid: '',
nodeState: '',
orgPath: '',
partProceRemarks: '',
pjclFiles: [],
priCourtRefer: '',
procDefId: '',
procInstSid: '',
receivejudgDate: '',
remarks: '',
sid: '',
sueMoneyTotal: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
ysclFiles: []
},
rules: {}
}
},
methods: {
showAdd(sid) {
this.viewTitle = '【新增】案件上/应诉申请'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.init({ sid: sid, userSid: window.sessionStorage.getItem('userSid'), orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
showEdit(row) {
this.viewTitle = '【编辑】案件上/应诉申请'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
submit() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submit(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '操作成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
appealDueDate: '',
arrearsTotal: '',
bankContract: '',
bankName: '',
billNo: '',
caseCreateDate: '',
caseNo: '',
caseStage: '',
caseType: '',
compHead: '',
createByName: '',
createBySid: '',
createTime: '',
customName: '',
deptName: '',
deptSid: '',
expectCourt: '',
expectDate: '',
isFullLitigation: '',
judgDate: '',
judgMoney: '',
judgRemarks: '',
judgResult: '',
legalDeptHead: '',
lenderAddress: '',
lenderIdNo: '',
lenderName: '',
loanCaseAppealVehList: [],
loanContract: '',
nodeSid: '',
nodeState: '',
orgPath: '',
partProceRemarks: '',
pjclFiles: [],
priCourtRefer: '',
procDefId: '',
procInstSid: '',
receivejudgDate: '',
remarks: '',
sid: '',
sueMoneyTotal: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
ysclFiles: []
}
this.submitdisabled = false
this.$emit('doback')
}
}
}
</script>
<style>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

322
anrui-riskcenter-ui/src/views/caseappeal/caseappealInfo.vue

@ -0,0 +1,322 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件创建日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseCreateDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">公司负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.compHead }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">法务部门负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.legalDeptHead }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">案件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">贷款人</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款人证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderIdNo }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">贷款人户籍/注册地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderAddress }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户</div>
<el-form-item><span class="addinputInfo">{{ formobj.customName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">欠款合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.arrearsTotal }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否全额诉讼</div>
<el-form-item><span class="addinputInfo">{{ formobj.isFullLitigation }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">起诉金额合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.sueMoneyTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">部分诉讼说明</div>
<el-form-item><span class="addinputInfo">{{ formobj.partProceRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">判决日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判决结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgResult }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判断金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">领取判决书日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivejudgDate }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">判决备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">判决资料</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.pjclFiles" :key="index" :src="item" :preview-src-list="formobj.pjclFiles" /></el-form-item>
</el-col>
</el-row>
<div class="title">车辆信息</div>
<el-table :key="tableKey" :data="formobj.loanCaseAppealVehList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="carNum" label="车牌号" align="center" />
<el-table-column prop="affiliatedCompany" label="挂靠公司" align="center" />
<el-table-column prop="carState" label="车辆状态" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
<el-row>
<el-col :span="8">
<div class="span-sty">案件阶段</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseStage }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">预上/应诉日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.expectDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上诉到期日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.appealDueDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" class="tlineheightb">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">/应诉材料</div>
<el-form-item>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.ysclFiles" :key="index" :src="item" :preview-src-list="formobj.ysclFiles" /></el-form-item>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/caseappeal/caseappeal'
export default {
name: 'CaseAppealInfo',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
formobj: {
appealDueDate: '',
arrearsTotal: '',
bankContract: '',
bankName: '',
billNo: '',
caseCreateDate: '',
caseNo: '',
caseStage: '',
caseType: '',
compHead: '',
createByName: '',
createBySid: '',
createTime: '',
customName: '',
deptName: '',
deptSid: '',
expectCourt: '',
expectDate: '',
isFullLitigation: '',
judgDate: '',
judgMoney: '',
judgRemarks: '',
judgResult: '',
legalDeptHead: '',
lenderAddress: '',
lenderIdNo: '',
lenderName: '',
loanCaseAppealVehList: [],
loanContract: '',
nodeSid: '',
nodeState: '',
orgPath: '',
partProceRemarks: '',
pjclFiles: [],
priCourtRefer: '',
procDefId: '',
procInstSid: '',
receivejudgDate: '',
remarks: '',
sid: '',
sueMoneyTotal: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
ysclFiles: []
},
rules: {}
}
},
methods: {
showInfo(row) {
this.viewTitle = '案件上/应诉申请详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
handleReturn() {
this.formobj = {
appealDueDate: '',
arrearsTotal: '',
bankContract: '',
bankName: '',
billNo: '',
caseCreateDate: '',
caseNo: '',
caseStage: '',
caseType: '',
compHead: '',
createByName: '',
createBySid: '',
createTime: '',
customName: '',
deptName: '',
deptSid: '',
expectCourt: '',
expectDate: '',
isFullLitigation: '',
judgDate: '',
judgMoney: '',
judgRemarks: '',
judgResult: '',
legalDeptHead: '',
lenderAddress: '',
lenderIdNo: '',
lenderName: '',
loanCaseAppealVehList: [],
loanContract: '',
nodeSid: '',
nodeState: '',
orgPath: '',
partProceRemarks: '',
pjclFiles: [],
priCourtRefer: '',
procDefId: '',
procInstSid: '',
receivejudgDate: '',
remarks: '',
sid: '',
sueMoneyTotal: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
ysclFiles: []
}
this.$emit('doback')
}
}
}
</script>
<style>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

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

@ -115,7 +115,7 @@
</el-table-column>
<el-table-column label="合同" align="center" width="80">
<template slot-scope="scope">
<span class="bluezi">下载</span>
<el-button type="primary" size="mini" @click="toDownLoad(scope.row)">下载</el-button>
</template>
</el-table-column>
</el-table>
@ -144,6 +144,7 @@ import ButtonBar from '@/components/ButtonBar'
import homevisitpreparationAdd from './homevisitpreparationAdd'
import thehomevisitisready from './thehomevisitisready'
import saleOrder from '@/components/publicPage/salesOrder'
import {getStorage} from "@/utils/auth";
export default {
name: 'HomeVisitToBePrepared',
@ -303,6 +304,28 @@ export default {
this.viewState = 2
this.$refs['divSelect'].getList()
},
toDownLoad(row) {
var xhr = new XMLHttpRequest()
xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + row.downUrl + '&outFileName=' + '消贷合同', true)
xhr.setRequestHeader('token', getStorage())
xhr.responseType = 'blob'
xhr.onload = function(e) {
//
var blob = this.response
var filename = '消贷合同.pdf'
var a = document.createElement('a')
// blob.type="application/octet-stream";
// url
var url = URL.createObjectURL(blob)
a.href = url
a.download = filename
a.click()
// URL
window.URL.revokeObjectURL(url)
}
//
xhr.send()
},
//
handleFilter() {
this.listQuery.current = 1

558
anrui-riskcenter-ui/src/views/workFlow/shangsuFlow/caseappealDaiBan.vue

@ -0,0 +1,558 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="openCountersign('加签')"> </el-button>
<el-button type="primary" size="small" @click="openAgree('同意')"> </el-button>
<el-button type="danger" size="small" @click="openReject('驳回')"> </el-button>
<el-button type="danger" size="small" @click="openStop('终止')"> </el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件创建日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseCreateDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">公司负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.compHead }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">法务部门负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.legalDeptHead }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">案件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">贷款人</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款人证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderIdNo }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">贷款人户籍/注册地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderAddress }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户</div>
<el-form-item><span class="addinputInfo">{{ formobj.customName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">欠款合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.arrearsTotal }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否全额诉讼</div>
<el-form-item><span class="addinputInfo">{{ formobj.isFullLitigation }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">起诉金额合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.sueMoneyTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">部分诉讼说明</div>
<el-form-item><span class="addinputInfo">{{ formobj.partProceRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">判决日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判决结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgResult }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判断金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">领取判决书日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivejudgDate }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">判决备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">判决资料</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.pjclFiles" :key="index" :src="item" :preview-src-list="formobj.pjclFiles" /></el-form-item>
</el-col>
</el-row>
<div class="title">车辆信息</div>
<el-table :key="tableKey" :data="formobj.loanCaseAppealVehList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="carNum" label="车牌号" align="center" />
<el-table-column prop="affiliatedCompany" label="挂靠公司" align="center" />
<el-table-column prop="carState" label="车辆状态" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
<el-row>
<el-col :span="8">
<div class="span-sty">案件阶段</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseStage }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">预上/应诉日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.expectDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上诉到期日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.appealDueDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" class="tlineheightb">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">/应诉材料</div>
<el-form-item>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.ysclFiles" :key="index" :src="item" :preview-src-list="formobj.ysclFiles" /></el-form-item>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!-- 选择待办人 的弹出框-->
<el-dialog title="填写审批意见" :visible.sync="nodeDialogVisible" width="80%">
<el-form class="formadd" >
<el-row v-show="countersignLink" style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span class="icon">*</span>加签人员:
</el-col>
<el-col :span="20">
<el-form-item>
<el-select v-model="countersign.assignee" placeholder="请选择" filterable>
<el-option v-for="item in options" :key="item.userSid" :label="item.staffName" :value="item.userSid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="currentLink" style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>当前环节:</span>
</el-col>
<el-col :span="20">
<el-form-item><span>{{ current.taskName }}->{{ nextNode.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row :class="{rowClass:!currentLink}">
<el-col :span="4" class="tleftb">
<span>意见:</span>
</el-col>
<el-col :span="20">
<el-form-item><el-input size="small" v-model="dialogList.comment" placeholder="审批意见" class="addinputw" type="textarea" :autosize="{ minRows: 1, maxRows: 10}" clearable ></el-input></el-form-item>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="reject"> </el-button>
<el-button type="info " size="mini" @click="nodeDialogVisible = false"> </el-button>
</div>
</el-form>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/caseappeal/caseappeal'
import { selectStaffListss } from '@/api/Common/dictcommons'
export default {
name: 'CaseAppealDaiBan',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
formobj: {
appealDueDate: '',
arrearsTotal: '',
bankContract: '',
bankName: '',
billNo: '',
caseCreateDate: '',
caseNo: '',
caseStage: '',
caseType: '',
compHead: '',
createByName: '',
createBySid: '',
createTime: '',
customName: '',
deptName: '',
deptSid: '',
expectCourt: '',
expectDate: '',
isFullLitigation: '',
judgDate: '',
judgMoney: '',
judgRemarks: '',
judgResult: '',
legalDeptHead: '',
lenderAddress: '',
lenderIdNo: '',
lenderName: '',
loanCaseAppealVehList: [],
loanContract: '',
nodeSid: '',
nodeState: '',
orgPath: '',
partProceRemarks: '',
pjclFiles: [],
priCourtRefer: '',
procDefId: '',
procInstSid: '',
receivejudgDate: '',
remarks: '',
sid: '',
sueMoneyTotal: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
ysclFiles: []
},
rules: {},
options: [],
operation: '', //
dialogList: {
comment: ''
},
startTask: true,
current: {
taskDefKey: '',
taskName: '' //
},
nextNode: {}, //
nodeDialogVisible: false,
currentLink: true,
countersignLink: false,
//
linkByParameter: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
},
//
countersign: {
taskId: '',
assignee: '',
userSid: '',
instanceId: '',
views: ''
}
}
},
created() {
console.log('url:' + window.location.href)
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('iframe页面获取的obj:', obj)
//
this.linkByParameter.businessSid = obj.businessSid
this.linkByParameter.instanceId = obj.instanceId
this.linkByParameter.taskId = obj.taskId
this.linkByParameter.taskDefKey = obj.taskDefKey
// this.linkByParameter.orgSidPath = window.sessionStorage.getItem('orgSidPath')
this.linkByParameter.userSid = window.sessionStorage.getItem('userSid')
this.current.taskDefKey = obj.taskDefKey
this.current.taskName = obj.taskName
//
this.countersign.taskId = obj.taskId
this.countersign.userSid = window.sessionStorage.getItem('userSid')
this.countersign.instanceId = obj.instanceId
//
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 400 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.viewTitle = '案件上/应诉申请详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
selectStaffListss().then((res) => {
if (res.success) {
this.options = res.data
}
})
},
//
openCountersign(val) {
this.operation = val
this.currentLink = true
this.countersignLink = true
this.dialogList.comment = ''
req.getNextNodesForSubmit({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openAgree(val) {
this.operation = val
this.currentLink = true
this.countersignLink = false
this.dialogList.comment = '同意'
req.getNextNodesForSubmit({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openReject(val) {
this.operation = val
this.currentLink = true
this.countersignLink = false
this.dialogList.comment = ''
req.getPreviousNodesForReject({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openStop(val) {
this.operation = val
this.currentLink = false
this.countersignLink = false
this.dialogList.comment = ''
this.nodeDialogVisible = true
},
reject() {
if (this.operation === '同意') {
this.handleAgree()
} else if (this.operation === '驳回') {
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
} else {
this.handleReject()
}
} else if (this.operation === '终止') {
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
} else {
this.handleStop()
}
} else if (this.operation === '加签') {
this.handleCountersign()
}
},
/** 加签 */
handleCountersign() {
if (this.countersign.assignee === '') {
this.$message({ showClose: true, type: 'error', message: '请选择加签人员' })
return
}
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
return
}
this.countersign.views = this.dialogList.comment
req.delegate(this.countersign).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 同意任务 */
handleAgree() {
this.linkByParameter.comment = this.dialogList.comment
req.complete(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 驳回任务 */
handleReject() {
this.linkByParameter.comment = this.dialogList.comment
req.reject(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 终止任务 */
handleStop() {
this.linkByParameter.comment = this.dialogList.comment
req.breakProcess(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
}
}
}
</script>
<style>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.rowClass{
border-top: 1px solid #E0E3EB;
}
</style>

343
anrui-riskcenter-ui/src/views/workFlow/shangsuFlow/caseappealEdit.vue

@ -0,0 +1,343 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件创建日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseCreateDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">公司负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.compHead }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">法务部门负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.legalDeptHead }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">案件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">贷款人</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款人证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderIdNo }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">贷款人户籍/注册地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderAddress }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户</div>
<el-form-item><span class="addinputInfo">{{ formobj.customName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">欠款合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.arrearsTotal }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否全额诉讼</div>
<el-form-item><span class="addinputInfo">{{ formobj.isFullLitigation }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">起诉金额合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.sueMoneyTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">部分诉讼说明</div>
<el-form-item><span class="addinputInfo">{{ formobj.partProceRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">判决日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判决结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgResult }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判断金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">领取判决书日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivejudgDate }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">判决备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">判决资料</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.pjclFiles" :key="index" :src="item" :preview-src-list="formobj.pjclFiles" /></el-form-item>
</el-col>
</el-row>
<div class="title">车辆信息</div>
<el-table :key="tableKey" :data="formobj.loanCaseAppealVehList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="carNum" label="车牌号" align="center" />
<el-table-column prop="affiliatedCompany" label="挂靠公司" align="center" />
<el-table-column prop="carState" label="车辆状态" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
<el-row>
<el-col :span="8">
<div class="span-sty">案件阶段</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseStage }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">预上/应诉日期</div>
<el-form-item><el-date-picker class="addinputInfo" v-model="formobj.expectDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上诉到期日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.appealDueDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">/应诉材料</div>
<el-form-item>
<uploadImg ref="uploadImg" class="addinputInfo" v-model="formobj.ysclFiles" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/caseappeal/caseappeal'
import uploadImg from '@/components/uploadFile/uploadImg'
export default {
name: 'CaseAppealEdit',
components: {
uploadImg
},
data() {
return {
viewTitle: '',
viewState: 1,
submitdisabled: false,
tableKey: 0,
index: 0,
formobj: {
appealDueDate: '',
arrearsTotal: '',
bankContract: '',
bankName: '',
billNo: '',
caseCreateDate: '',
caseNo: '',
caseStage: '',
caseType: '',
compHead: '',
createByName: '',
createBySid: '',
createTime: '',
customName: '',
deptName: '',
deptSid: '',
expectCourt: '',
expectDate: '',
isFullLitigation: '',
judgDate: '',
judgMoney: '',
judgRemarks: '',
judgResult: '',
legalDeptHead: '',
lenderAddress: '',
lenderIdNo: '',
lenderName: '',
loanCaseAppealVehList: [],
loanContract: '',
nodeSid: '',
nodeState: '',
orgPath: '',
partProceRemarks: '',
pjclFiles: [],
priCourtRefer: '',
procDefId: '',
procInstSid: '',
receivejudgDate: '',
remarks: '',
sid: '',
sueMoneyTotal: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
ysclFiles: []
},
rules: {}
}
},
created() {
console.log('url:' + window.location.href)
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 400 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.viewTitle = '【编辑】案件上/应诉申请'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
// ()
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
submit() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submit(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '操作成功' })
// ()
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
}
}
}
</script>
<style>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

344
anrui-riskcenter-ui/src/views/workFlow/shangsuFlow/caseappealYiBan.vue

@ -0,0 +1,344 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="danger" size="small" @click="openRevoke()">撤回</el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件创建日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseCreateDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">公司负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.compHead }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">法务部门负责人</div>
<el-form-item><span class="addinputInfo">{{ formobj.legalDeptHead }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">案件编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">案件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.loanContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">贷款人</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">贷款人证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderIdNo }}</span></el-form-item>
</el-col>
<el-col :span="8" class="tlineheightb">
<div class="span-sty">贷款人户籍/注册地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.lenderAddress }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户</div>
<el-form-item><span class="addinputInfo">{{ formobj.customName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">资方合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.bankContract }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">欠款合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.arrearsTotal }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否全额诉讼</div>
<el-form-item><span class="addinputInfo">{{ formobj.isFullLitigation }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">起诉金额合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.sueMoneyTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">部分诉讼说明</div>
<el-form-item><span class="addinputInfo">{{ formobj.partProceRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">判决日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判决结果</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgResult }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">判断金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">领取判决书日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivejudgDate }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">判决备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.judgRemarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">判决资料</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.pjclFiles" :key="index" :src="item" :preview-src-list="formobj.pjclFiles" /></el-form-item>
</el-col>
</el-row>
<div class="title">车辆信息</div>
<el-table :key="tableKey" :data="formobj.loanCaseAppealVehList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="carNum" label="车牌号" align="center" />
<el-table-column prop="affiliatedCompany" label="挂靠公司" align="center" />
<el-table-column prop="carState" label="车辆状态" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
<el-row>
<el-col :span="8">
<div class="span-sty">案件阶段</div>
<el-form-item><span class="addinputInfo">{{ formobj.caseStage }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">预上/应诉日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.expectDate }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上诉到期日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.appealDueDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" class="tlineheightb">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">/应诉材料</div>
<el-form-item>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.ysclFiles" :key="index" :src="item" :preview-src-list="formobj.ysclFiles" /></el-form-item>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/caseappeal/caseappeal'
export default {
name: 'CaseAppealYiBan',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 0,
index: 0,
formobj: {
appealDueDate: '',
arrearsTotal: '',
bankContract: '',
bankName: '',
billNo: '',
caseCreateDate: '',
caseNo: '',
caseStage: '',
caseType: '',
compHead: '',
createByName: '',
createBySid: '',
createTime: '',
customName: '',
deptName: '',
deptSid: '',
expectCourt: '',
expectDate: '',
isFullLitigation: '',
judgDate: '',
judgMoney: '',
judgRemarks: '',
judgResult: '',
legalDeptHead: '',
lenderAddress: '',
lenderIdNo: '',
lenderName: '',
loanCaseAppealVehList: [],
loanContract: '',
nodeSid: '',
nodeState: '',
orgPath: '',
partProceRemarks: '',
pjclFiles: [],
priCourtRefer: '',
procDefId: '',
procInstSid: '',
receivejudgDate: '',
remarks: '',
sid: '',
sueMoneyTotal: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
ysclFiles: []
},
//
linkByParameter: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
},
rules: {}
}
},
created() {
console.log('url:' + window.location.href)
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('iframe页面获取的obj:', obj)
//
this.linkByParameter.businessSid = obj.businessSid
this.linkByParameter.instanceId = obj.instanceId
this.linkByParameter.taskId = obj.taskId
this.linkByParameter.taskDefKey = obj.taskDefKey
this.linkByParameter.userSid = window.sessionStorage.getItem('userSid')
//
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 400 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.viewTitle = '案件上/应诉申请详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 撤回任务 */
handleRevoke() {
req.revokeProcess(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
}
}
}
</script>
<style>
.span-sty {
width: 150px !important;
}
.addinputInfo {
margin-left: 140px !important;
}
.tlineheightb {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .tlineheightb .el-form-item .el-form-item__content .addinputInfo {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

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

@ -54,7 +54,7 @@ public class ScheduledLoanFundDayService {
//截止到当天垫款余额T
BigDecimal paymentMoneyAll = list.get(i).getPaymentMoney();
//当天资金占用费B
BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal(7)).divide(new BigDecimal(10000), BigDecimal.ROUND_CEILING);
BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal(7)).divide(new BigDecimal(10000),2, BigDecimal.ROUND_CEILING);
LoanRepaymentPlanDetails loanRepaymentPlanDetails = list.get(i);
LoanFundDay loanFundDay = new LoanFundDay();
loanFundDay.setBusSid(loanRepaymentPlanDetails.getSid());

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

@ -53,4 +53,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
String getMaxUpdateTimeByBankContractNo(@Param("bankContractNo") String bankContractNo);
TransferRecordVo selTransferRecord(@Param("sid") String sid);
String getUpdateMoneyBySid(@Param("pSid") String pSid,@Param("histories") List<String> histories);
}

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

@ -445,5 +445,17 @@
where r.repaymentHistorySid = #{sid}
and r.state = 1
</select>
<select id="getUpdateMoneyBySid" resultType="java.lang.String">
SELECT
IFNULL(SUM(h.actualMoney),0)
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = #{pSid}
AND h.sid IN
<foreach collection="histories" item="histories" index="index" open="(" close=")" separator=",">
#{histories}
</foreach>
</select>
</mapper>

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

@ -766,14 +766,18 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
if (StringUtils.isNotBlank(difference.getDifference())) {
BigDecimal amount = new BigDecimal(difference.getDifference());
if (amount.compareTo(BigDecimal.ZERO) > 0) {
//查询更新金额
String money = baseMapper.getUpdateMoneyBySid(pSid,histories);
BigDecimal decimalMoney = new BigDecimal(money);
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(pSid);
planDetails.setPaymentMoney(planDetails.getPaymentMoney().subtract(amount));
BigDecimal paymentMoney = planDetails.getPaymentMoney();
planDetails.setPaymentMoney(paymentMoney.subtract(decimalMoney));
loanRepaymentPlanDetailsService.updateById(planDetails);
//生成平台资方退还垫款
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setBusSid(planDetails.getSid());
jr.setCurrentReceivableMoney(amount);
jr.setReveivableMoney(amount);
jr.setCurrentReceivableMoney(decimalMoney);
jr.setReveivableMoney(decimalMoney);
jr.setPayCostTitleKey("007");
jr.setPayCostTitleValue("资方退还垫款");
jr.setOrgSidPath(planDetails.getOrgSidPath());

Loading…
Cancel
Save