Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 1 year ago
parent
commit
c30ca1a867
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java
  2. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  3. 2
      anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl
  4. 2
      anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl
  5. 38
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java
  6. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl
  7. 348
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  8. 14
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  9. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java
  10. 33
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml
  11. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java
  12. 2
      anrui-fin/anrui-fin-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl
  13. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  14. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseapply/LoanCaseCloseApplyDetailsVo.java
  15. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseveh/LoanCaseCloseVehDetailsVo.java
  16. 55
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeign.java
  17. 54
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/LoanLawsuitApplyFeignFallback.java
  18. 40
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppLawsuitDetailsVo.java
  19. 49
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppVehListVo.java
  20. 41
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitCompleteDto.java
  21. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitDelegateQuery.java
  22. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeQuery.java
  23. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeVo.java
  24. 56
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitTaskQuery.java
  25. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/SubmitLawsuitDto.java
  26. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java
  27. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.java
  28. 46
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyMapper.xml
  29. 61
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyRest.java
  30. 533
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitapply/LoanLawsuitApplyService.java
  31. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java
  32. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  33. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  34. 115
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseApplyDetailsVo.java
  35. 64
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseVehDetailsVo.java
  36. 62
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeign.java
  37. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeignFallback.java
  38. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/AppCaseCloseDelegateQuery.java
  39. 17
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseQuery.java
  40. 42
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseTaskQuery.java
  41. 34
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CompleteCaseCloseDto.java
  42. 4
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseexecute/CaseExecuteFeign.java
  43. 43
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitDetailsVo.java
  44. 67
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeign.java
  45. 53
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeignFallback.java
  46. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitVehVo.java
  47. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitDelegateQuery.java
  48. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitTaskQuery.java
  49. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/CompleteLawsuitDto.java
  50. 21
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/LawsuitFlowableQuery.java
  51. 86
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseRest.java
  52. 171
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseService.java
  53. 68
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitRest.java
  54. 164
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitService.java

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java

@ -267,5 +267,5 @@ public interface CommonContractFeign {
@ApiOperation("获取合同中部分信息")
@PostMapping("/getModelMap")
@ResponseBody
ResultBean<Map<String, Object>> getModelMap(Map<String, Object> map);
ResultBean<Map<String, Object>> getModelMap(@RequestBody Map<String, Object> map);
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

@ -389,6 +389,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
if ("1".equals(dto.getIsPay())) {
if (dto.getDetailsPayList().size() > 0) {
payMoney = dto.getDetailsPayList().stream().map(BaseVehicleActualPayDto::getPayAccount).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
}else{
return rb.setMsg("付款明细不能为空");
}
}
if (payMoney.compareTo(salesMoney) > 0) {

2
anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl

@ -1280,7 +1280,7 @@
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>

2
anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl

@ -1224,7 +1224,7 @@
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:color w:val="auto"/>
<w:sz w:val="20"/>

38
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java

@ -686,6 +686,44 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
}
}else{
//生成新车空白合同
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());
filemap.put("contractNo",busSalesOrder.getContractNo());
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()

2
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl

@ -1280,7 +1280,7 @@
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>

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())) {
//生成新车空白合同
filemap.put("totalPrice", "");
filemap.put("priceRemarks", "");
filemap.put("depositTotal", "");
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());//开票类型
filemap.put("createOrgName", "");
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks);
filemap.put("busSid",busSalesOrder.getSid());
ResultBean<Map<String,Object>> mapResultBean = commonContractFeign.getModelMap(filemap);
checkMap = mapResultBean.getData();
}
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);
}

2
anrui-fin/anrui-fin-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl

@ -1280,7 +1280,7 @@
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>

1
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -80,6 +80,7 @@ public enum ProcDefEnum {
LOANCASEAPPEALAPPLY("案件上诉申请", "process_0r2ruoxm:1:8215004"),
LOANCASEEXECUTEAPPLY("案件执行立案申请", "process_aeho48ap:1:8220004"),
LOANCASECLOSEAPPLY("案件结案申请", "process_llaxpwkd:1:8220008"),
LOANLAWSUITAPPLY("诉讼申请", "process_xc4lp97d:1:8380004"),
/******************************测试流程id*********************************************/

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseapply/LoanCaseCloseApplyDetailsVo.java

@ -55,6 +55,12 @@ public class LoanCaseCloseApplyDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("申请日期")
private String createTime;
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("创建人")
private String createByName; // 创建人
@ApiModelProperty("申请编号")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancasecloseveh/LoanCaseCloseVehDetailsVo.java

@ -59,6 +59,8 @@ public class LoanCaseCloseVehDetailsVo implements Vo {
private String affiliatedCompany; // 挂靠公司
@ApiModelProperty("车辆状态")
private String carState; // 车辆状态
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("案件结案申请sid")
private String mainSid; // 案件结案申请sid

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

@ -1,15 +1,24 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyQuery;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @description: 诉讼案件管理
@ -52,5 +61,51 @@ public interface LoanLawsuitApplyFeign {
public ResultBean deleteBySids(@RequestBody String[] sids);
//---------------------------flow------------------------------
@ApiOperation("提交")
@PostMapping("/submit")
public ResultBean submitRecordApplication(@RequestBody @Valid SubmitLawsuitDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody LawsuitCompleteDto dto);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody LawsuitTaskQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody LawsuitTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@RequestBody LawsuitTaskQuery query);
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<LawsuitGetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap LawsuitGetNodeQuery query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<LawsuitGetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap LawsuitGetNodeQuery query);
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody LawsuitDelegateQuery query);
//-----------------------------app----------------------------
@ApiOperation("app详情")
@GetMapping("/appDetail/{sid}")
@ResponseBody
public ResultBean<AppLawsuitDetailsVo> appDetail(@PathVariable("sid") String sid);
}

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

@ -1,10 +1,14 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author Administrator
* @description
@ -43,4 +47,54 @@ public class LoanLawsuitApplyFeignFallback implements LoanLawsuitApplyFeign {
public ResultBean deleteBySids(String[] sids) {
return null;
}
@Override
public ResultBean submitRecordApplication(SubmitLawsuitDto dto) {
return null;
}
@Override
public ResultBean complete(LawsuitCompleteDto dto) {
return null;
}
@Override
public ResultBean revokeProcess(LawsuitTaskQuery query) {
return null;
}
@Override
public ResultBean taskReject(LawsuitTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(LawsuitTaskQuery query) {
return null;
}
@Override
public ResultBean flowRecord(String procInsId) {
return null;
}
@Override
public ResultBean<List<LawsuitGetNodeVo>> getNextNodesForSubmit(LawsuitGetNodeQuery query) {
return null;
}
@Override
public ResultBean<List<LawsuitGetNodeVo>> getPreviousNodesForReject(LawsuitGetNodeQuery query) {
return null;
}
@Override
public ResultBean delegate(LawsuitDelegateQuery query) {
return null;
}
@Override
public ResultBean<AppLawsuitDetailsVo> appDetail(String sid) {
return null;
}
}

40
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppLawsuitDetailsVo.java

@ -0,0 +1,40 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/2/7 11:15
*/
@Data
public class AppLawsuitDetailsVo {
private String sid;
private String publishInfo; // 发起部门-发起人
private String time; //申请日期
private String taskId;
private String procInsId;
@ApiModelProperty("客户名称")
private String custName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("贷款人")
private String borrName;
@ApiModelProperty("贷款合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("风控进展描述")
private String progress;
@ApiModelProperty("欠款合计")
private String amountAll;
private List<AppVehListVo> vehListVos = new ArrayList<>();
}

49
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/app/AppVehListVo.java

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

41
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitCompleteDto.java

@ -0,0 +1,41 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/6/28 9:01
* @Description
*/
@Data
public class LawsuitCompleteDto implements Dto {
private static final long serialVersionUID = 3240453987322803352L;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
@NotBlank(message = "参数错误:comment")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "分支字段及业务字段")
private Map<String, Object> formVariables;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitDelegateQuery.java

@ -0,0 +1,26 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 9:28
*/
@Data
public class LawsuitDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitGetNodeQuery.java

@ -0,0 +1,26 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/6/28 10:42
* @Description
*/
@Data
public class LawsuitGetNodeQuery implements Query {
private static final long serialVersionUID = -5674867230708197611L;
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "分支字段及业务字段")
private Map<String, Object> formVariables;
}

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

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/6/28 11:09
* @Description
*/
@Data
public class LawsuitGetNodeVo implements Vo {
private static final long serialVersionUID = 8802774014747063504L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

56
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/LawsuitTaskQuery.java

@ -0,0 +1,56 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/6/28 17:29
* @Description 终止撤回驳回查询参数
*/
@Data
public class LawsuitTaskQuery implements Query {
private static final long serialVersionUID = -4006020771892400451L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
/*@ApiModelProperty("用户Id")
private String userId;
@ApiModelProperty("节点")
private String targetKey;
@ApiModelProperty("流程变量信息")
private Map<String, Object> values = new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers = new ArrayList<>();
@ApiModelProperty("审批组")
private List<String> candidateGroups = new ArrayList<>();*/
}

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanlawsuitapply/flow/SubmitLawsuitDto.java

@ -0,0 +1,21 @@
package com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitApplyDto;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/6/27 13:38
* @Description
*/
@Data
public class SubmitLawsuitDto extends LoanLawsuitApplyDto {
private static final long serialVersionUID = 378585162071125756L;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

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

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

@ -5,11 +5,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.*;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
@ -40,4 +42,10 @@ public interface LoanLawsuitApplyMapper extends BaseMapper<LoanLawsuitApply> {
int selectBySid(String join);
IPage<LoanLawsuitApplyVo> listPage(IPage<LoanLawsuitApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanLawsuitApply> qw);
int updateFlowFiled(Map<String, Object> map);
int selCountByBusVinSid(@Param("busVinSids") List<String> busVinSids);
AppLawsuitDetailsVo appDetail(@Param("sid") String sid);
}

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

@ -1,6 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanlawsuitapply.LoanLawsuitApplyMapper">
<update id="updateFlowFiled">
UPDATE loan_lawsuit_apply
SET nodeState=#{nodeState}
, nodeSid=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid = #{sid}
</update>
<select id="loanContractListPage"
resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanContractVehList">
@ -111,4 +126,35 @@
${ew.sqlSegment}
</where>
</select>
<select id="selCountByBusVinSid" resultType="java.lang.Integer">
SELECT count(*)
FROM loan_lawsuit_veh AS v
LEFT JOIN loan_lawsuit_apply AS a ON v.mainSid = a.sid
WHERE a.nodeState != '待提交'
AND a.nodeState != '发起申请'
AND a.nodeState != '终止'
and v.busVinSid IN
<foreach collection="busVinSids" item="busVinSids" index="index" open="(" close=")" separator=",">
#{busVinSids}
</foreach>
</select>
<select id="appDetail" resultType="com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo">
SELECT
a.sid,
date_format( a.applyDate, '%Y-%m-%d' ) AS `time`,
CONCAT( a.createDept, '-', a.createByName ) AS publishInfo,
a.taskId,
a.procInstId as procInsId,
a.customerName AS custName,
a.bankContractNo,
a.loanName AS borrName,
a.loanContractNo,
a.bankName,
a.progress,
a.amountAll,
a.salesOrderSid
FROM
loan_lawsuit_apply AS a
</select>
</mapper>

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

@ -1,9 +1,15 @@
package com.yxt.anrui.riskcenter.biz.loanlawsuitapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.*;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -12,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @description:
* @author: fan
@ -59,4 +67,57 @@ public class LoanLawsuitApplyRest implements LoanLawsuitApplyFeign {
public ResultBean deleteBySids(String[] sids) {
return loanLawsuitApplyService.deleteBySids(sids);
}
@Override
public ResultBean submitRecordApplication(SubmitLawsuitDto dto) {
return loanLawsuitApplyService.submitRecordApplication(dto);
}
@Override
public ResultBean complete(LawsuitCompleteDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setModelId(ProcDefEnum.LOANLAWSUITAPPLY.getProDefId());
return loanLawsuitApplyService.complete(bv);
}
@Override
public ResultBean revokeProcess(LawsuitTaskQuery query) {
return loanLawsuitApplyService.revokeProcess(query);
}
@Override
public ResultBean taskReject(LawsuitTaskQuery query) {
return loanLawsuitApplyService.taskReject(query);
}
@Override
public ResultBean breakProcess(LawsuitTaskQuery query) {
return loanLawsuitApplyService.breakProcess(query);
}
@Override
public ResultBean flowRecord(String procInsId) {
return loanLawsuitApplyService.flowRecord(procInsId);
}
@Override
public ResultBean<List<LawsuitGetNodeVo>> getNextNodesForSubmit(LawsuitGetNodeQuery query) {
return loanLawsuitApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean<List<LawsuitGetNodeVo>> getPreviousNodesForReject(LawsuitGetNodeQuery query) {
return loanLawsuitApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean delegate(LawsuitDelegateQuery query) {
return loanLawsuitApplyService.delegate(query);
}
@Override
public ResultBean<AppLawsuitDetailsVo> appDetail(String sid) {
return loanLawsuitApplyService.appDetail(sid);
}
}

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

@ -1,16 +1,34 @@
package com.yxt.anrui.riskcenter.biz.loanlawsuitapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.*;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppVehListVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanlawsuitveh.LoanLawsuitVeh;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApply;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.LoanMonthlyAccrualApplyQuery;
@ -19,6 +37,8 @@ import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanSolutionsDetailsss
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyQuery;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
@ -30,6 +50,9 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -37,9 +60,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -50,6 +73,14 @@ import java.util.List;
@Service
public class LoanLawsuitApplyService extends MybatisBaseService<LoanLawsuitApplyMapper, LoanLawsuitApply> {
@Autowired
private FlowFeign flowFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
@ -270,6 +301,10 @@ public class LoanLawsuitApplyService extends MybatisBaseService<LoanLawsuitApply
public ResultBean<String> saveLawsuit(LoanLawsuitApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
List<LoanLawsuitVehVo> vehList1 = dto.getVehList();
if (vehList1.isEmpty()) {
return rb.setMsg("诉讼车辆列表不能为空!");
}
if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid();
LoanLawsuitApply updateEntity = fetchBySid(sid);
@ -423,4 +458,496 @@ public class LoanLawsuitApplyService extends MybatisBaseService<LoanLawsuitApply
PagerVo<LoanLawsuitApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
//-----------------------------------flow---------------------------------
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitLawsuitDto dto, LoanLawsuitApply loanLawsuitApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanLawsuitApply != null) {
String businessTaskId = loanLawsuitApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean submitRecordApplication(SubmitLawsuitDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanLawsuitApply loanLawsuitApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanLawsuitApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
List<LoanLawsuitVehVo> vehList1 = dto.getVehList();
if (vehList1.isEmpty()) {
return rb.setMsg("诉讼车辆列表不能为空!");
}
List<String> busVinSids = new ArrayList<>();
for (LoanLawsuitVehVo loanLawsuitVehVo : vehList1) {
busVinSids.add(loanLawsuitVehVo.getBusVinSid());
}
//判断当前车辆是否已在审批中
int count = baseMapper.selCountByBusVinSid(busVinSids);
if (count > 0) {
return rb.setMsg("当前所选车辆已经处于诉讼申请审批状态,无法提交!");
}
String businessSid = "";
//新增修改保存
ResultBean<String> resultBean = saveLawsuit(dto);
if (resultBean.getSuccess()) {
businessSid = resultBean.getData();
} else {
return rb.setMsg(resultBean.getMsg());
}
LoanLawsuitApply entity = fetchBySid(businessSid);
String orgSidPath = "";
if (StringUtils.isNotBlank(entity.getOrgSidPath())) {
orgSidPath = entity.getOrgSidPath();
} else {
SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData();
if (null != data) {
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
}
}
List<String> orgPathList = Arrays.asList(orgSidPath.split("/"));
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
if (sysOrganization == null) {
return rb.setMsg("当前所在的组织机构不存在");
}
if (StringUtils.isBlank(sysOrganization.getManagerSid())) {
// return rb.setMsg("当前所在的组织机构未设置主管人员");
sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
}
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值
Map<String, Object> variables = BeanUtil.beanToMap(dto);
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
// boolean isTure = true;
// //去查询是否同意
// if (StringUtils.isNotBlank(entity.getSalesUserSid())) {
// if (!entity.getCreateBySid().equals(entity.getSalesUserSid())) {
// isTure = false;
// }
// }
// variables.put("isTure", isTure);
variables.put("businessSid", businessSid);
appMap.put("sid", businessSid);
variables.put("app", appMap);
// String orderNames = "<" + entity.getCustomer() + ">" + "欠款客户备案";
// variables.put("orderNames", orderNames);
LoanLawsuitApply loanLawsuitApply1 = fetchBySid(businessSid);
String msgBusinessSid = loanLawsuitApply1.getSid();
//用户的部门全路径sid
bv.setOrgSidPath(loanLawsuitApply1.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
// String nextNodeUserSids_ = sysOrganization.getManagerSid();
// bv.setNextNodeUserSids(nextNodeUserSids_);
// if (isTure) {
// bv.setNextNodeUserSids(nextNodeUserSids_);
// } else {
// bv.setNextNodeUserSids(entity.getSalesUserSid());
// }
//流程定义id
bv.setModelId(ProcDefEnum.LOANLAWSUITAPPLY.getProDefId());
if (r == 1) {
//流程定义id
bv.setModelId(ProcDefEnum.LOANLAWSUITAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
int i = updateFlowFiled(BeanUtil.beanToMap(ufVo));
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(msgBusinessSid);
messageFlowableQuery.setModuleName("诉讼申请");
SysUserVo userVo = sysUserFeign.fetchBySid(loanLawsuitApply1.getCreateBySid()).getData();
if (userVo != null) {
if (StringUtils.isNotBlank(userVo.getName())) {
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
}
messageFlowableQuery.setMsgTitle("诉讼申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
LoanLawsuitApply loanLawsuitApply2 = fetchBySid(dto.getSid());
bv.setTaskId(dto.getTaskId());
bv.setTaskDefKey(loanLawsuitApply2.getNodeSid());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanLawsuitApply loanLawsuitApply = this.fetchBySid(businessSid);
if (bv.getTaskId().equals(loanLawsuitApply.getTaskId())) {
bv.setOrgSidPath(loanLawsuitApply.getOrgSidPath());
//流程中的参数赋值
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
// boolean isTure = true;
// //去查询是否同意
// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
// isTure = false;
// }
// }
// variables.put("isTure", isTure);
// if (bv.getTaskDefKey().equals("Activity_1078xxs")) {
// if (StringUtils.isNotBlank(loanCustomerRecord.getManageSid())) {
// bv.setNextNodeUserSids(loanCustomerRecord.getManageSid());
// } else {
// bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
// }
// }
variables.put("businessSid", businessSid);
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
LoanLawsuitApply lawsuitApply = fetchBySid(businessSid);
lawsuitApply.setCloseDate(new DateTime());
baseMapper.updateById(lawsuitApply);
} else {
//极光推送
loanLawsuitApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanLawsuitApply.getProcDefId());
messageFlowVo.setProcInsId(loanLawsuitApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("诉讼申请");
messageFlowableQuery.setMsgContent(loanLawsuitApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("诉讼申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
/**
* 撤回
*
* @param query
* @return
*/
public ResultBean revokeProcess(LawsuitTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanLawsuitApply loanLawsuitApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanLawsuitApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
loanLawsuitApply = fetchBySid(query.getBusinessSid());
String procId = loanLawsuitApply.getProcInstId();
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
String nextName = listResultBean.getData().get(0).getName_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if ("发起申请".equals(nextName)) {
}
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean taskReject(LawsuitTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanLawsuitApply loanLawsuitApply = fetchBySid(businessSid);
if (loanLawsuitApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanLawsuitApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//若有网关,则赋值网关中判断的字段。
// boolean isTure = true;
// //去查询是否同意
// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
// isTure = false;
// }
// }
// variables.put("isTure", isTure);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
loanLawsuitApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanLawsuitApply.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(loanLawsuitApply.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("诉讼申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextName = listResultBean.getData().get(0).getName_();
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) {
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
SysUserVo userVo = sysUserFeign.fetchBySid(loanLawsuitApply.getCreateBySid()).getData();
if (userVo != null) {
if (StringUtils.isNotBlank(userVo.getName())) {
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
}
}
messageFlowableQuery.setMsgTitle("诉讼申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean breakProcess(LawsuitTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
LoanLawsuitApply loanLawsuitApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanLawsuitApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(loanLawsuitApply.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
//终止任务后操作
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
//终止任务后操作
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean flowRecord(String procInsId) {
return flowTaskFeign.businessFlowRecord(procInsId);
}
public ResultBean<List<LawsuitGetNodeVo>> getNextNodesForSubmit(LawsuitGetNodeQuery query) {
ResultBean<List<LawsuitGetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//根据业务sid查询排产信息
LoanLawsuitApply lawsuitApply = fetchBySid(query.getBusinessSid());
//若有网关,则赋值网关中判断的字段。
// boolean isTure = true;
// //去查询是否同意
// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
// isTure = false;
// }
// }
// variables.put("isTure", isTure);
bv.setFormVariables(variables);
bv.setModelId(lawsuitApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LawsuitGetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LawsuitGetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<LawsuitGetNodeVo>> getPreviousNodesForReject(LawsuitGetNodeQuery query) {
ResultBean<List<LawsuitGetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//根据业务sid查询排产信息
LoanLawsuitApply lawsuitApply = fetchBySid(query.getBusinessSid());
// //若有网关,则赋值网关中判断的字段。
// boolean isTure = true;
// //去查询是否同意
// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
// isTure = false;
// }
// }
// variables.put("isTure", isTure);
bv.setFormVariables(variables);
bv.setModelId(lawsuitApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LawsuitGetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LawsuitGetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean delegate(LawsuitDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean<AppLawsuitDetailsVo> appDetail(String sid) {
ResultBean rb = ResultBean.fireFail();
AppLawsuitDetailsVo vo = baseMapper.appDetail(sid);
if (null != vo) {
List<LoanLawsuitVehVo> voList = loanLawsuitVehService.selByMainSid(sid);
List<AppVehListVo> vehListVos = new ArrayList<>();
if (!voList.isEmpty()) {
for (LoanLawsuitVehVo loanLawsuitVehVo : voList) {
AppVehListVo appVehListVo = new AppVehListVo();
BeanUtil.copyProperties(loanLawsuitVehVo, appVehListVo);
vehListVos.add(appVehListVo);
}
vo.setVehListVos(vehListVos);
}
}
return rb.success().setData(vo);
}
}

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

115
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseApplyDetailsVo.java

@ -0,0 +1,115 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.risk.caseclose;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui-riskcenter(案件结案申请) <br/>
* File: LoanCaseCloseApplyVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseApplyVo <br/>
* Description: 案件结案申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-02-08 11:07:38 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "案件结案申请 视图数据详情", description = "案件结案申请 视图数据详情")
public class AppCaseCloseApplyDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("申请部门-申请人")
private String publishInfo;
@ApiModelProperty("申请日期")
private String time;
@ApiModelProperty("案件创建日期")
private String caseCreateDate;
@ApiModelProperty("公司负责人")
private String compHead;
@ApiModelProperty("法务部门负责人")
private String legalDeptHead;
@ApiModelProperty("案件编号")
private String caseNo;
@ApiModelProperty("案件类型")
private String caseType;
@ApiModelProperty("贷款合同编号")
private String loanContract;
@ApiModelProperty("贷款人")
private String lenderName;
@ApiModelProperty("贷款人证件号码")
private String lenderIdNo;
@ApiModelProperty("贷款人户籍/注册地址")
private String lenderAddress;
@ApiModelProperty("客户")
private String customName;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContract;
@ApiModelProperty("欠款合计")
private String arrearsTotal;
@ApiModelProperty("是否全额诉讼")
private String isFullLitigation;
@ApiModelProperty("起诉金额合计")
private String sueMoneyTotal;
@ApiModelProperty("部分诉讼说明")
private String partProceRemarks;
@ApiModelProperty("最终判决金额")
private String finalJudgMoney;
@ApiModelProperty("回款金额")
private String returnMoney;
@ApiModelProperty("未回款金额")
private String notReturnMoney;
@ApiModelProperty("执行措施")
private String executeMeasure;
@ApiModelProperty("执行说明")
private String executeRemarks;
@ApiModelProperty("结案方式value")
private String closeTypeValue;
@ApiModelProperty("结案日期")
private String closeDate;
@ApiModelProperty("结案说明")
private String closeRemarks;
@ApiModelProperty("流程实例的sid")
private String procInsId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty
private List<String> appJaclFiles;
@ApiModelProperty("上诉车辆")
private List<AppCaseCloseVehDetailsVo> appCaseCloseVehList;
}

64
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/AppCaseCloseVehDetailsVo.java

@ -0,0 +1,64 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.risk.caseclose;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-riskcenter(案件结案申请) <br/>
* File: LoanCaseCloseVehVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancasecloseveh.LoanCaseCloseVehVo <br/>
* Description: 案件结案车辆 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-02-08 11:07:38 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "案件结案车辆 视图数据详情", description = "案件结案车辆 视图数据详情")
public class AppCaseCloseVehDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String carNum;
@ApiModelProperty("挂靠公司")
private String affiliatedCompany;
@ApiModelProperty("车辆状态")
private String carState;
@ApiModelProperty("备注")
private String remarks;
}

62
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeign.java

@ -0,0 +1,62 @@
package com.yxt.anrui.terminal.api.risk.caseclose;
import com.yxt.anrui.terminal.api.risk.caseappeal.AppCaseAppealApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.AppCaseCloseDelegateQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseTaskQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CompleteCaseCloseDto;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
/**
* @Author
* @Date
* @Description
*/
@Api(tags = "案件结案管理")
@FeignClient(
contextId = "terminal-CaseClose",
name = "anrui-terminal",
path = "riskcenter/v1/caseclose",
fallback = CaseCloseFeignFallback.class)
public interface CaseCloseFeign {
@ApiOperation("办理")
@PutMapping("/agreeCreditInfo")
@ResponseBody
ResultBean agreeCreditInfo(@RequestBody CompleteCaseCloseDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectCreditInfo")
@ResponseBody
ResultBean rejectCreditInfo(@RequestBody CaseCloseTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallCreditInfo")
@ResponseBody
ResultBean recallCreditInfo(@RequestBody CaseCloseTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopCreditInfo")
@ResponseBody
ResultBean stopCreditInfo(@RequestBody CaseCloseTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap CaseCloseQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppCaseCloseDelegateQuery delegateQuery);
@ApiOperation("案件结案详情")
@GetMapping("/details/{sid}")
@ResponseBody
public ResultBean<AppCaseCloseApplyDetailsVo> collectionDetail(@PathVariable("sid") String sid);
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/CaseCloseFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.terminal.api.risk.caseclose;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/8
**/
@Component
public class CaseCloseFeignFallback {
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/AppCaseCloseDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.risk.caseclose.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 10:16
*/
@Data
public class AppCaseCloseDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

17
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseQuery.java

@ -0,0 +1,17 @@
package com.yxt.anrui.terminal.api.risk.caseclose.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CaseCloseQuery implements Query {
private static final long serialVersionUID = -3563282658560745370L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
private Integer next;
}

42
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CaseCloseTaskQuery.java

@ -0,0 +1,42 @@
package com.yxt.anrui.terminal.api.risk.caseclose.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class CaseCloseTaskQuery implements Query {
private static final long serialVersionUID = -6952737531036706114L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

34
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseclose/flowable/CompleteCaseCloseDto.java

@ -0,0 +1,34 @@
package com.yxt.anrui.terminal.api.risk.caseclose.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class CompleteCaseCloseDto implements Dto {
private static final long serialVersionUID = 7978653524636034916L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
private String orgPath;
}

4
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/caseexecute/CaseExecuteFeign.java

@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*;
* @Date
* @Description
*/
@Api(tags = "案件上诉管理")
@Api(tags = "案件立案管理")
@FeignClient(
contextId = "terminal-CaseExecute",
name = "anrui-terminal",
@ -54,7 +54,7 @@ public interface CaseExecuteFeign {
@ResponseBody
public ResultBean delegate(@RequestBody AppCaseExecuteDelegateQuery delegateQuery);
@ApiOperation("案件上诉详情")
@ApiOperation("案件立案详情")
@GetMapping("/details/{sid}")
@ResponseBody
public ResultBean<AppCaseExecuteApplyDetailsVo> collectionDetail(@PathVariable("sid") String sid);

43
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitDetailsVo.java

@ -0,0 +1,43 @@
package com.yxt.anrui.terminal.api.risk.lawsuit;
import com.yxt.anrui.terminal.api.base.common.CarModelVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/11/13 15:38
*/
@Data
public class LawsuitDetailsVo implements Vo {
private String sid;
private String publishInfo; // 发起部门-发起人
private String time; //申请日期
private String taskId;
private String procInsId;
@ApiModelProperty("客户名称")
private String custName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("贷款人")
private String borrName;
@ApiModelProperty("贷款合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ApiModelProperty("风控进展描述")
private String progress;
@ApiModelProperty("欠款合计")
private String amountAll;
private List<LawsuitVehVo> vehListVos = new ArrayList<>();
private CarModelVo jrfa;//金融方案
}

67
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeign.java

@ -0,0 +1,67 @@
package com.yxt.anrui.terminal.api.risk.lawsuit;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @description:
* @author: fzz
* @date: 2023/8/8
**/
@Api(tags = "诉讼申请")
@FeignClient(
contextId = "terminal-Lawsuit",
name = "anrui-terminal",
path = "/riskcenter/v1/Lawsuit",
fallback = LawsuitFeignFallback.class)
public interface LawsuitFeign {
@ApiOperation("详情")
@GetMapping("/appDetail/{sid}")
@ResponseBody
ResultBean<LawsuitDetailsVo> detail(@PathVariable("sid") String sid);
//-------------------------流程-----------------------------------------
@ApiOperation("办理")
@PutMapping("/agreeCreditInfo")
@ResponseBody
ResultBean agreeCreditInfo(@Valid @RequestBody CompleteLawsuitDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectCreditInfo")
@ResponseBody
ResultBean rejectCreditInfo(@Valid @RequestBody AppLawsuitTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallCreditInfo")
@ResponseBody
ResultBean recallCreditInfo(@Valid @RequestBody AppLawsuitTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopCreditInfo")
@ResponseBody
ResultBean stopCreditInfo(@Valid @RequestBody AppLawsuitTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@Valid @SpringQueryMap LawsuitFlowableQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppLawsuitDelegateQuery delegateQuery);
}

53
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitFeignFallback.java

@ -0,0 +1,53 @@
package com.yxt.anrui.terminal.api.risk.lawsuit;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: fzz
* @date:
**/
@Component
public class LawsuitFeignFallback implements LawsuitFeign {
@Override
public ResultBean<LawsuitDetailsVo> detail(String sid) {
return null;
}
@Override
public ResultBean agreeCreditInfo(CompleteLawsuitDto dto) {
return null;
}
@Override
public ResultBean rejectCreditInfo(AppLawsuitTaskQuery query) {
return null;
}
@Override
public ResultBean recallCreditInfo(AppLawsuitTaskQuery query) {
return null;
}
@Override
public ResultBean stopCreditInfo(AppLawsuitTaskQuery query) {
return null;
}
@Override
public ResultBean<String> getFlowOperateTitle(LawsuitFlowableQuery query) {
return null;
}
@Override
public ResultBean delegate(AppLawsuitDelegateQuery delegateQuery) {
return null;
}
}

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/LawsuitVehVo.java

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

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.risk.lawsuit.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 10:16
*/
@Data
public class AppLawsuitDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/AppLawsuitTaskQuery.java

@ -0,0 +1,46 @@
package com.yxt.anrui.terminal.api.risk.lawsuit.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:14
*/
@Data
public class AppLawsuitTaskQuery implements Query {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

35
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/CompleteLawsuitDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.terminal.api.risk.lawsuit.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:13
*/
@Data
public class CompleteLawsuitDto implements Dto {
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

21
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/lawsuit/flow/LawsuitFlowableQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.terminal.api.risk.lawsuit.flow;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class LawsuitFlowableQuery implements Query {
private static final long serialVersionUID = -5879668616710833830L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

86
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseRest.java

@ -0,0 +1,86 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.risk.caseclose;
import com.yxt.anrui.terminal.api.risk.caseclose.AppCaseCloseApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseclose.CaseCloseFeign;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.AppCaseCloseDelegateQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseTaskQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CompleteCaseCloseDto;
import com.yxt.anrui.terminal.api.risk.caseexecute.AppCaseExecuteApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseexecute.CaseExecuteFeign;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.AppCaseExecuteDelegateQuery;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteQuery;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteTaskQuery;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CompleteCaseExecuteDto;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController("案件结案管理")
@RequestMapping("riskcenter/v1/caseclose")
public class CaseCloseRest implements CaseCloseFeign {
@Autowired
private CaseCloseService caseCloseService;
@Override
public ResultBean agreeCreditInfo(CompleteCaseCloseDto dto) {
return caseCloseService.agreeCreditInfo(dto);
}
@Override
public ResultBean rejectCreditInfo(CaseCloseTaskQuery query) {
return caseCloseService.rejectCreditInfo(query);
}
@Override
public ResultBean recallCreditInfo(CaseCloseTaskQuery query) {
return caseCloseService.recallCreditInfo(query);
}
@Override
public ResultBean stopCreditInfo(CaseCloseTaskQuery query) {
return caseCloseService.stopCreditInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(CaseCloseQuery query) {
return caseCloseService.getFlowOperateTitle(query);
}
@Override
public ResultBean delegate(AppCaseCloseDelegateQuery delegateQuery) {
return caseCloseService.delegate(delegateQuery);
}
@Override
public ResultBean<AppCaseCloseApplyDetailsVo> collectionDetail(String sid) {
return caseCloseService.collectionDetail(sid);
}
}

171
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/caseclose/CaseCloseService.java

@ -0,0 +1,171 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.risk.caseclose;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseApplyFeign;
import com.yxt.anrui.riskcenter.api.loancasecloseapply.LoanCaseCloseFile;
import com.yxt.anrui.riskcenter.api.loancasecloseapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loancasecloseveh.LoanCaseCloseVehDetailsVo;
import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.LoanCaseExecuteApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.LoanCaseExecuteApplyFeign;
import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.LoanCaseExecuteFile;
import com.yxt.anrui.riskcenter.api.loancaseexecuteapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loancaseexecuteveh.LoanCaseExecuteVehDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseclose.AppCaseCloseApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseclose.AppCaseCloseVehDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.AppCaseCloseDelegateQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CaseCloseTaskQuery;
import com.yxt.anrui.terminal.api.risk.caseclose.flowable.CompleteCaseCloseDto;
import com.yxt.anrui.terminal.api.risk.caseexecute.AppCaseExecuteApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseexecute.AppCaseExecuteVehDetailsVo;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.AppCaseExecuteDelegateQuery;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteQuery;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CaseExecuteTaskQuery;
import com.yxt.anrui.terminal.api.risk.caseexecute.flowable.CompleteCaseExecuteDto;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Service
public class CaseCloseService {
@Autowired
private LoanCaseCloseApplyFeign loanCaseCloseApplyFeign;
public ResultBean agreeCreditInfo(CompleteCaseCloseDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanCaseCloseApplyCompleteDto loanCaseCloseApplyCompleteDto = new LoanCaseCloseApplyCompleteDto();
BeanUtil.copyProperties(dto, loanCaseCloseApplyCompleteDto);
loanCaseCloseApplyFeign.complete(loanCaseCloseApplyCompleteDto);
return rb.success();
}
public ResultBean rejectCreditInfo(CaseCloseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LoanCaseCloseApplyTaskQuery taskQuery = new LoanCaseCloseApplyTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanCaseCloseApplyFeign.reject(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallCreditInfo(CaseCloseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LoanCaseCloseApplyTaskQuery taskQuery = new LoanCaseCloseApplyTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanCaseCloseApplyFeign.revokeProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopCreditInfo(CaseCloseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LoanCaseCloseApplyTaskQuery taskQuery = new LoanCaseCloseApplyTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanCaseCloseApplyFeign.breakProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(CaseCloseQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
LoanCaseCloseApplyNodeQuery getNodeQuery = new LoanCaseCloseApplyNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<LoanCaseCloseApplyNodeVo>> previousNodesForReject = loanCaseCloseApplyFeign.getPreviousNodesForReject(getNodeQuery);
if (previousNodesForReject.getSuccess()) {
previousNodesForReject.getData().removeAll(Collections.singleton(null));
data = previousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(previousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<LoanCaseCloseApplyNodeVo>> nextNodesForSubmit = loanCaseCloseApplyFeign.getNextNodesForSubmit(getNodeQuery);
if (nextNodesForSubmit.getSuccess()) {
nextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = nextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(nextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean delegate(AppCaseCloseDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
LoanCaseCloseApplyDelegateQuery delegateQuery1 = new
LoanCaseCloseApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
loanCaseCloseApplyFeign.delegate(delegateQuery1);
return rb.success();
}
public ResultBean<AppCaseCloseApplyDetailsVo> collectionDetail(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanCaseCloseApplyDetailsVo loanCaseCloseApplyDetailsVo = loanCaseCloseApplyFeign.fetchDetailsBySid(sid).getData();
AppCaseCloseApplyDetailsVo appCaseCloseApplyDetailsVo = new AppCaseCloseApplyDetailsVo();
BeanUtil.copyProperties(loanCaseCloseApplyDetailsVo,appCaseCloseApplyDetailsVo);
appCaseCloseApplyDetailsVo.setPublishInfo(loanCaseCloseApplyDetailsVo.getDeptName() + "-" + loanCaseCloseApplyDetailsVo.getCreateByName());
appCaseCloseApplyDetailsVo.setTime(loanCaseCloseApplyDetailsVo.getCreateTime());
appCaseCloseApplyDetailsVo.setProcInsId(loanCaseCloseApplyDetailsVo.getProcInstSid());
List<LoanCaseCloseFile> jaclFiles = loanCaseCloseApplyDetailsVo.getJaclFiles();
List<String> appJacl = new ArrayList<>();
if (jaclFiles != null && jaclFiles.size() > 0){
for (LoanCaseCloseFile file : jaclFiles) {
appJacl.add(file.getUrl());
}
}
appCaseCloseApplyDetailsVo.setAppJaclFiles(appJacl);
List<LoanCaseCloseVehDetailsVo> loanCaseCloseVehList = loanCaseCloseApplyDetailsVo.getLoanCaseCloseVehList();
List<AppCaseCloseVehDetailsVo> appCaseCloseVehDetailsVos = new ArrayList<>();
for (LoanCaseCloseVehDetailsVo loanCaseCloseVehDetailsVo : loanCaseCloseVehList) {
AppCaseCloseVehDetailsVo appCaseCloseVehDetailsVo = new AppCaseCloseVehDetailsVo();
BeanUtil.copyProperties(loanCaseCloseVehDetailsVo,appCaseCloseVehDetailsVo);
appCaseCloseVehDetailsVos.add(appCaseCloseVehDetailsVo);
}
appCaseCloseApplyDetailsVo.setAppCaseCloseVehList(appCaseCloseVehDetailsVos);
return rb.success().setData(appCaseCloseApplyDetailsVo);
}
}

68
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitRest.java

@ -0,0 +1,68 @@
package com.yxt.anrui.terminal.biz.risk.lawsuit;
import com.yxt.anrui.terminal.api.risk.lawsuit.LawsuitDetailsVo;
import com.yxt.anrui.terminal.api.risk.lawsuit.LawsuitFeign;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery;
import com.yxt.anrui.terminal.api.risk.repurchase.RepurchaseDetailsVo;
import com.yxt.anrui.terminal.api.risk.repurchase.RepurchaseFeign;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @description:
* @author: fzz
* @date:
**/
@Controller
@RequestMapping("/riskcenter/v1/Lawsuit")
public class LawsuitRest implements LawsuitFeign {
@Autowired
private LawsuitService lawsuitService;
@Override
public ResultBean<LawsuitDetailsVo> detail(String sid) {
return lawsuitService.detail(sid);
}
@Override
public ResultBean agreeCreditInfo(CompleteLawsuitDto dto) {
return lawsuitService.agreeCreditInfo(dto);
}
@Override
public ResultBean rejectCreditInfo(AppLawsuitTaskQuery query) {
return lawsuitService.rejectCreditInfo(query);
}
@Override
public ResultBean recallCreditInfo(AppLawsuitTaskQuery query) {
return lawsuitService.recallCreditInfo(query);
}
@Override
public ResultBean stopCreditInfo(AppLawsuitTaskQuery query) {
return lawsuitService.stopCreditInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(LawsuitFlowableQuery query) {
return lawsuitService.getFlowOperateTitle(query);
}
@Override
public ResultBean delegate(AppLawsuitDelegateQuery delegateQuery) {
return lawsuitService.delegate(delegateQuery);
}
}

164
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/lawsuit/LawsuitService.java

@ -0,0 +1,164 @@
package com.yxt.anrui.terminal.biz.risk.lawsuit;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.LoanLawsuitApplyFeign;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.app.AppLawsuitDetailsVo;
import com.yxt.anrui.riskcenter.api.loanlawsuitapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApplyFeign;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.app.AppRepurchaseDetailsVo;
import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.flow.*;
import com.yxt.anrui.terminal.api.base.common.CarModelVo;
import com.yxt.anrui.terminal.api.risk.lawsuit.LawsuitDetailsVo;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitDelegateQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.AppLawsuitTaskQuery;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.CompleteLawsuitDto;
import com.yxt.anrui.terminal.api.risk.lawsuit.flow.LawsuitFlowableQuery;
import com.yxt.anrui.terminal.api.risk.repurchase.RepurchaseDetailsVo;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseDelegateQuery;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.AppRepurchaseTaskQuery;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.CompleteRepurchaseDto;
import com.yxt.anrui.terminal.api.risk.repurchase.flow.RepurchaseFlowableQuery;
import com.yxt.anrui.terminal.biz.base.common.CommonService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @description:
* @author: fzz
* @date:
**/
@Service
public class LawsuitService {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private LoanLawsuitApplyFeign loanLawsuitApplyFeign;
@Autowired
private CommonService commonService;
public ResultBean<LawsuitDetailsVo> detail(String sid) {
ResultBean<LawsuitDetailsVo> rb = ResultBean.fireFail();
LawsuitDetailsVo vo = new LawsuitDetailsVo();
AppLawsuitDetailsVo data = loanLawsuitApplyFeign.appDetail(sid).getData();
if (null != data) {
BeanUtil.copyProperties(data, vo);
ResultBean<CarModelVo> getLoanSolution = commonService.getLoanSolution(data.getSalesOrderSid());
CarModelVo carModelVo = getLoanSolution.getData();
vo.setJrfa(carModelVo);
}
return rb.success().setData(vo);
}
public ResultBean agreeCreditInfo(CompleteLawsuitDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
LawsuitCompleteDto completeDto = new
LawsuitCompleteDto();
BeanUtil.copyProperties(dto, completeDto);
completeDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = loanLawsuitApplyFeign.complete(completeDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectCreditInfo(AppLawsuitTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LawsuitTaskQuery taskQuery = new
LawsuitTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanLawsuitApplyFeign.taskReject(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallCreditInfo(AppLawsuitTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LawsuitTaskQuery taskQuery = new
LawsuitTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanLawsuitApplyFeign.revokeProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopCreditInfo(AppLawsuitTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
LawsuitTaskQuery taskQuery = new
LawsuitTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanLawsuitApplyFeign.breakProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(LawsuitFlowableQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
LawsuitGetNodeQuery getNodeQuery = new
LawsuitGetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<LawsuitGetNodeVo>> getPreviousNodesForReject = loanLawsuitApplyFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<LawsuitGetNodeVo>> getNextNodesForSubmit = loanLawsuitApplyFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean delegate(AppLawsuitDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
LawsuitDelegateQuery delegateQuery1 = new
LawsuitDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
ResultBean delegate = loanLawsuitApplyFeign.delegate(delegateQuery1);
return rb.success();
}
}
Loading…
Cancel
Save