Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 2 years ago
parent
commit
4f774c3cce
  1. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java
  2. 9
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  3. 87
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java
  4. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  5. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyMapper.java
  6. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyMapper.xml
  7. 179
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyService.java
  8. 6
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml
  9. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java
  10. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapplydetails/BusDeliveredApplyDetailsMapper.xml
  11. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositfictitious/BusDepositFictitiousMapper.xml
  12. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml
  13. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java
  14. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml
  15. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java
  16. 30
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml
  17. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  18. 11
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyService.java
  19. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java
  20. 492
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml
  21. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java
  22. 175
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.xml
  23. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java
  24. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json
  25. 5
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java
  26. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  27. 12
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java
  28. 228
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java
  29. 81
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApply.java
  30. 92
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDetailsVo.java
  31. 83
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDto.java
  32. 114
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeign.java
  33. 113
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeignFallback.java
  34. 91
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyQuery.java
  35. 108
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyVo.java
  36. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyCompleteDto.java
  37. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeQuery.java
  38. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeVo.java
  39. 48
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyTaskQuery.java
  40. 24
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/SubmitLoanCreditApplyDto.java
  41. 64
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeo.java
  42. 67
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDetailsVo.java
  43. 67
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDto.java
  44. 78
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoFeign.java
  45. 72
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoFeignFallback.java
  46. 63
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoQuery.java
  47. 65
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoVo.java
  48. 70
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.java
  49. 62
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.xml
  50. 142
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyRest.java
  51. 476
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyService.java
  52. 73
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.java
  53. 13
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.xml
  54. 100
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoRest.java
  55. 118
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoService.java
  56. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java

@ -73,6 +73,9 @@ public class BaseVehicleStateEnum {
FIN_WRQ("8", "认款未完成"),
CKTJ("9", "出库提交"),
CKZZ("10", "出库终止、驳回以及撤回到第一环节时"),
QKTCTJ("11", "欠款提车提交"),
QKTCZZ("12", "欠款提车终止"),
QKTCTG("13", "欠款提车审核通过"),
;

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

@ -35,6 +35,7 @@ import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
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;
@ -105,6 +106,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BaseVehicleBrandService baseVehicleBrandService;
@Autowired
private FlowFeign flowFeign;
/**
* 分页列表
@ -779,12 +782,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
String settlementStatusValue = VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks();
updateByVinNo(baseVehicleActualSales.getSid(), settlementStatus, settlementStatusValue);
}
/*if (query.getUserSid().equals(baseVehicleActualSales.getCreateBySid())) {
//更新车辆状态为未买断
String settlementStatus = VehicleState.BuyoutEnum.UN_BUYOUT.getCode();
String settlementStatusValue = VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks();
updateByVinNo(baseVehicleActualSales.getSid(), settlementStatus, settlementStatusValue);
}*/
return rb.success().setData(resultBean.getData());
}
}

87
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java

@ -31,46 +31,59 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.DDBA.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.DDBA.getBusNoValue());
baseMapper.insert(baseVehicleState);
} else if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.getTypeKey().equals(operateType)) {
//销售订单办理通过后更新业务阶段为出库开票、小状态为待出库,款项状态为0
baseVehicleState.setFinState("0");
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.CKKP_PASS.getTypeKey().equals(operateType)) {
//出库通过后更新业务阶段为交车,小状态为待准备501
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JC_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.JC_PASS.getTypeKey().equals(operateType)) {
//交车确认通过后更新业务状态为业务结束,小状态为业务完成601
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.BUS_STOP.getTypeKey().equals(operateType)) {
//如果为终止或作废,则更新小状态为业务终止602
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_2.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_SAVEVIN.getTypeKey().equals(operateType)) {
//销售订单录入车架号
baseVehicleState.setVinNo(dto.getVinNo());
baseVehicleState.setVinSid(dto.getVinSid());
} else if (BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey().equals(operateType)) {
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_JQ.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.FIN_WRQ.getTypeKey().equals(operateType)){
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_WJQ.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.CKTJ.getTypeKey().equals(operateType)){
//出库提交申请后,将小状态修改为出库中402
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_2.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey().equals(operateType)){
//出库申请终止后,将小状态修改为401待出库
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
}
if(baseVehicleState != null){
if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.getTypeKey().equals(operateType)) {
//销售订单办理通过后更新业务阶段为出库开票、小状态为待出库,款项状态为0
baseVehicleState.setFinState("0");
baseVehicleState.setCarryVehicleState("0");
baseVehicleState.setCarryInvoiceState("0");
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.CKKP_PASS.getTypeKey().equals(operateType)) {
//出库通过后更新业务阶段为交车,小状态为待准备501
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JC_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.JC_PASS.getTypeKey().equals(operateType)) {
//交车确认通过后更新业务状态为业务结束,小状态为业务完成601
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.BUS_STOP.getTypeKey().equals(operateType)) {
//如果为终止或作废,则更新小状态为业务终止602
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_2.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_SAVEVIN.getTypeKey().equals(operateType)) {
//销售订单录入车架号
baseVehicleState.setVinNo(dto.getVinNo());
baseVehicleState.setVinSid(dto.getVinSid());
} else if (BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey().equals(operateType)) {
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_JQ.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.FIN_WRQ.getTypeKey().equals(operateType)){
//认款办理确认以及结转审核通过的更新款项状态为1 已交清,否则为0
baseVehicleState.setFinState(BaseVehicleStateEnum.BusStateEnum.FIN_STATE_WJQ.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.CKTJ.getTypeKey().equals(operateType)){
//出库提交申请后,将小状态修改为出库中402
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_2.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey().equals(operateType)){
//出库申请终止后,将小状态修改为401待出库
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKTCTJ.getTypeKey().equals(operateType)){
//欠款提车提交后,将提车状态修改为1,0为未提交过,1为审核通过,2为审核中
baseVehicleState.setCarryVehicleState("2");
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKTCZZ.getTypeKey().equals(operateType)){
//欠款提车终止,将提车状态修改为0,0为未提交过,1为审核通过,2为审核中
baseVehicleState.setCarryVehicleState("0");
}else if(BaseVehicleStateEnum.OperateTypeEnum.QKTCTG.getTypeKey().equals(operateType)){
//欠款提车审核通过,将提车状态修改为1,0为未提交过,1为审核通过,2为审核中
baseVehicleState.setCarryVehicleState("1");
}
baseMapper.updateById(baseVehicleState);
}
baseMapper.updateById(baseVehicleState);
});

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

@ -58,6 +58,7 @@ import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
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;
@ -171,6 +172,8 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@ -1540,7 +1543,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
//流程定义id
bv.setModelId(ProcDefEnum.CONTRACTAPPLY.getProDefId());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
if (!voResultBean.getSuccess()) {
@ -2298,7 +2301,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
variables.put("app", appMap);
bv.setFormVariables(variables);
if (bv.getTaskId().equals(commonContract.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyMapper.java

@ -84,4 +84,6 @@ public interface BusArrearsCarryVehicleApplyMapper extends BaseMapper<BusArrears
BusArrearsCarryVehicleApply selSubmitLc(String vehSid);
BusArrearsCarryVehicleApplyVo selComByVehSid(String vehSid);
List<String> selectByNo(String sid);
}

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyMapper.xml

@ -143,4 +143,13 @@
WHERE bacva.`nodeState` = "已办结"
AND bacvd.`vinSid` = #{vehSid}
</select>
<select id="selectByNo" resultType="java.lang.String">
select bv.sid
from bus_arrears_carry_vehicle_details bd
LEFT JOIN bus_arrears_carry_vehicle_apply ba on ba.sid = bd.applySid
left join bus_sales_order_vehicle bv on bv.linkSid = bd.vinSid
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
where bd.applySid = #{sid} and bo.contractNo = ba.contractNo
</select>
</mapper>

179
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyService.java

@ -7,6 +7,7 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfigFeign;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfigSelectVo;
import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign;
@ -15,6 +16,9 @@ import com.yxt.anrui.base.api.basetrailer.TraliveredVo;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelFeign;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstate;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateDto;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign;
@ -87,6 +91,7 @@ import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.collections4.comparators.NullComparator;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -100,6 +105,7 @@ import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -203,6 +209,8 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
private com.yxt.anrui.portal.api.flow.FlowableFeign flowableFeignPro;
@Autowired
private MessageListFeign messageListFeign;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
private static final NullComparator<String> nullComparator = new NullComparator<>();
/**
@ -1738,6 +1746,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
appMap.put("sid", businessSid);
appMap.put("contractNO",busArrearsCarryVehicleApply.getContractNo());
variables.put("app", appMap);
if (StringUtils.isNotBlank(dto.getIsFinance())) {
variables.put("jinrong", "1".equals(dto.getIsFinance()));
@ -1759,6 +1768,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
busArrearsCarryVehicleApply = fetchBySid(businessSid);
BaseVehicleTempstateDto baseVehicleTempstateDto = new BaseVehicleTempstateDto();
baseVehicleTempstateDto.setBusSid(businessSid);
baseVehicleTempstateDto.setTempStateKey(VehicleStateTempOrLast.PaymentEnum.ARREARS_CARRY_VEHICLE.getCode());
@ -1772,18 +1782,54 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
baseVehicleTempstateFeign.save(baseVehicleTempstateDto);
}
baseMapper.updateType(businessSid);
//极光推送
busArrearsCarryVehicleApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("欠款提车申请");
messageFlowableQuery.setMsgContent(busArrearsCarryVehicleApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("欠款提车申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
//==============================修改车辆的持久状态组装数据
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());
BusArrearsCarryVehicleApply finalBusArrearsCarryVehicleApply = busArrearsCarryVehicleApply;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectByNo(finalBusArrearsCarryVehicleApply.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.QKTCTJ.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
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());
BusArrearsCarryVehicleApply finalBusArrearsCarryVehicleApply1 = busArrearsCarryVehicleApply;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("欠款提车申请");
messageFlowableQuery.setMsgContent(finalBusArrearsCarryVehicleApply1.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("欠款提车申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
return voResultBean;
}
if (r == 2) {
@ -1857,6 +1903,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", bv.getBusinessSid());
appMap.put("contractNO",busArrearsCarryVehicleApply.getContractNo());
variables.put("app", appMap);
if (StringUtils.isNotBlank(busArrearsCarryVehicleApply.getIsFinance())) {
variables.put("jinrong", "1".equals(busArrearsCarryVehicleApply.getIsFinance()));
@ -1926,8 +1973,33 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
//修改状态
baseMapper.updateType(bv.getBusinessSid());
//==============================修改车辆的持久状态组装数据
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());
BusArrearsCarryVehicleApply finalBusArrearsCarryVehicleApply = busArrearsCarryVehicleApply;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectByNo(finalBusArrearsCarryVehicleApply.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.QKTCTG.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
//推送出库申请
List<BusArrearsCarryVehicleDetailsVo> vehicleDetailsVos = busArrearsCarryVehicleDetailsService.selByArrearsSid(busArrearsCarryVehicleApply.getSid());
/*List<BusArrearsCarryVehicleDetailsVo> vehicleDetailsVos = busArrearsCarryVehicleDetailsService.selByArrearsSid(busArrearsCarryVehicleApply.getSid());
if (vehicleDetailsVos.size() > 0) {
for (BusArrearsCarryVehicleDetailsVo vehicleDetailsVo : vehicleDetailsVos) {
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectByNoAndVinSid(busArrearsCarryVehicleApply.getContractNo(),vehicleDetailsVo.getVinSid());
@ -1961,7 +2033,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
busDeliveredService.saveOrUpdateDto(busDeliveredDto);
}
}
}
}*/
}
return rb.success().setData(resultBean.getData());
} else {
@ -1976,6 +2048,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", bv.getBusinessSid());
appMap.put("contractNO",busArrearsCarryVehicleApply.getContractNo());
variables.put("app", appMap);
//=================================
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
@ -2046,6 +2119,31 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
//修改状态
baseMapper.updateType(bv.getBusinessSid());
//==============================修改车辆的持久状态组装数据
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());
BusArrearsCarryVehicleApply finalBusArrearsCarryVehicleApply = busArrearsCarryVehicleApply;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectByNo(finalBusArrearsCarryVehicleApply.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.QKTCTG.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
return rb.success().setData(resultBean1.getData());
@ -2133,6 +2231,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", query.getBusinessSid());
appMap.put("contractNO",busArrearsCarryVehicleApply.getContractNo());
variables.put("app", appMap);
//=================================
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
@ -2196,6 +2295,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", query.getBusinessSid());
appMap.put("contractNO",busArrearsCarryVehicleApply.getContractNo());
variables.put("app", appMap);
//=================================
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
@ -2246,6 +2346,31 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
baseVehicleTempstateFeign.delByBusSid(busArrearsCarryVehicleApply.getSid());
//==============================修改车辆的持久状态组装数据
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());
BusArrearsCarryVehicleApply finalBusArrearsCarryVehicleApply = busArrearsCarryVehicleApply;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectByNo(finalBusArrearsCarryVehicleApply.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.QKTCZZ.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
@ -2257,10 +2382,36 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
baseVehicleTempstateFeign.delByBusSid(busArrearsCarryVehicleApply.getSid());
//==============================修改车辆的持久状态组装数据
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());
BusArrearsCarryVehicleApply finalBusArrearsCarryVehicleApply = busArrearsCarryVehicleApply;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectByNo(finalBusArrearsCarryVehicleApply.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.QKTCZZ.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}

6
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml

@ -287,7 +287,7 @@
RIGHT(bv.linkNo, 8) as vinNo,
bv.linkSid vinSid,
bv.sid busVinSid
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and finState = '1') as bs
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and (finState = '1' or carryVehicleState = '1')) as bs
left join bus_sales_order_vehicle bv on bs.busSid = bv.sid
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_base.base_vehicle bbv on bbv.sid = bv.linkSid
@ -304,7 +304,7 @@
bo.contractNo,
bo.customerName as name,
bo.payType paymentMethod
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and finState = '1') as bs
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and (finState = '1' or carryVehicleState = 1)) as bs
left join bus_sales_order_vehicle bv on bs.busSid = bv.sid
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
left join anrui_base.base_vehicle bbv on bbv.sid = bv.linkSid
@ -326,7 +326,7 @@
</resultMap>
<select id="vinLists" resultType="com.yxt.anrui.buscenter.api.busdelivered.AppVinListVo">
select bv.linkSid vinSid,bv.sid busVinSid,RIGHT(bv.linkNo, 8) as vin
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and finState = '1') as bs
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and (finState = '1' or carryVehicleState = 1)) as bs
left join bus_sales_order_vehicle bv on bs.busSid = bv.sid
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
where length(bv.linkSid)>0 and bo.contractNo = #{contractNo}

1
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java

@ -749,7 +749,6 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
appMap.put("contractId", busDeliveredApply.getContractNo());
appMap.put("contract_id", busDeliveredApply.getContractNo());
variables.put("app", appMap);
// variables.put("isDanBao","2".equals(busDeliveredApply.getPaymentMethodKey()));
//根据合同号查询销售订单
if (!"2".equals(busDeliveredApply.getPaymentMethodKey())) {
BusSalesOrder busSalesOrder = busSalesOrderService.selectByContractNos(busDeliveredApply.getContractNo());

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapplydetails/BusDeliveredApplyDetailsMapper.xml

@ -70,7 +70,9 @@
<select id="selectVinSidByApplySid" resultType="java.lang.String">
select bv.sid
from bus_delivered_apply_details bd
left join bus_delivered_apply ba on ba.sid = bd.applySid
left join bus_sales_order_vehicle bv on bv.linkSid = bd.vinSid
where bd.applySid = #{sid}
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
where bd.applySid = #{sid} and bo.contractNo = ba.contractNo
</select>
</mapper>

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositfictitious/BusDepositFictitiousMapper.xml

@ -61,7 +61,7 @@
and fc.busSid = #{depositBillNo}
group by f.selectSid
having usePrice>0
union all
<!-- union all
SELECT
COALESCE ( bf.price, 0 ) as usePrice,bso.billNo as contractId,bso.customerName as customer,'简易订单转订金' as purpose,bso.sid as salesOrderSid
FROM
@ -70,7 +70,7 @@
LEFT JOIN bus_sales_order bso ON bso.sid = bsod.salesOrderSid
where depositBillSid =#{depositBillNo}
group by bso.billNo
having usePrice>0
having usePrice>0-->
</select>
<select id="getList"

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml

@ -404,11 +404,11 @@
and fc.busSid = #{busMainSid}
GROUP BY
d.`sid`
union all
<!-- union all
SELECT
COALESCE ( SUM(bf.price), 0 ) as useDeposit
FROM
bus_deposit_fictitious bf where depositBillSid = #{busMainSid}) d
bus_deposit_fictitious bf where depositBillSid = #{busMainSid}-->) d
</select>

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java

@ -664,7 +664,7 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
record.setReason(finCollectionConfirmation.getReason());
} else {
record.setPaymentState("已确认");
if (StringUtils.isNotBlank(record.getUsedDeposit())) {
if (StringUtils.isNotBlank(useDepositMoney)) {
record.setDescribe("订金: " + vo.getDeposit() + "元 已用:" + useDepositMoney + "元");
} else {
record.setDescribe("订金: " + vo.getDeposit() + "元 已用:" + "0" + "元");

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml

@ -101,7 +101,7 @@
<select id="selectByNoAndVinSidsNew"
resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select bv.linkSid,bv.sid,bv.linkNo
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and finState = '1') as bs
from (select busSid from anrui_base.base_vehicle_state where busState = '401' and (finState = '1' or carryVehicleState = 1)) as bs
left join bus_sales_order_vehicle bv on bs.busSid = bv.sid
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
where length(bv.linkSid)>0 and bo.contractNo = #{contractNo}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java

@ -125,4 +125,6 @@ public interface FinCollectionConfirmationMapper extends BaseMapper<FinCollectio
@Update("update fin_collection_confirmation set balance = #{balance} where sid = #{busSid}")
void updateYeBySid(@Param("balance") String balance,@Param("busSid") String busSid);
String getBalance(String busSid);
}

30
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml

@ -219,13 +219,39 @@
FROM
fin_selected_receivables_detailed fsrd
JOIN fin_collection_confirmation fcc
ON fcc.`sid` = fsrd.`collSid` AND fcc.`pushMessgae` = 1
ON fcc.`sid` = fsrd.`collSid`
AND fcc.`pushMessgae` = 1
LEFT JOIN anrui_buscenter.`bus_deposit` bd
ON fcc.`busSid` = bd.`billSid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
LEFT JOIN
(SELECT
ffc.busSid,
ffc.thisUseMoney
FROM
fin_funds_carried_forward_veh ffc
JOIN `fin_funds_carried_forward_apply` fa
ON ffc.mainSid = fa.sid
WHERE fa.`nodeState` != '终止') ffc
ON ffc.`busSid` = fsrd.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getBalance" resultType="java.lang.String">
SELECT (
fcc.collectionMoney - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS balance
FROM fin_selected_receivables_detailed fsrd
JOIN fin_collection_confirmation fcc
ON fcc.`sid` = fsrd.`collSid` AND fcc.`pushMessgae` = 1
LEFT JOIN (SELECT ffc.busSid,
ffc.thisUseMoney
FROM fin_funds_carried_forward_veh ffc
JOIN `fin_funds_carried_forward_apply` fa
ON ffc.mainSid = fa.sid
WHERE fa.`nodeState` != '终止') ffc
ON ffc.`busSid` = fsrd.`sid`
WHERE fsrd.sid = #{busSid}
</select>
</mapper>

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

@ -2829,6 +2829,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
}
qw.eq("fsrd.auditState", 3);
qw.eq("fsrd.kxState","01");
if (StringUtils.isNotBlank(query.getStaffDeptName())) {
qw.like("fcc.staffDeptName", query.getStaffDeptName());
}
@ -2873,4 +2874,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
public void updateYeBySid(String balance, String busSid) {
baseMapper.updateYeBySid(balance, busSid);
}
public String getBalance(String busSid) {
return baseMapper.getBalance(busSid);
}
}

11
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyService.java

@ -587,6 +587,17 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
if (StringUtils.isBlank(thisUseMoney)) {
return rb.setMsg("请填写本次使用金额");
}
String busSid = finFundsCarriedForwardVehDto.getBusSid();
String balance = "";
if ("简易订单订金".equals(dto.getSource())){
balance = finCollectionConfirmationService.getBalance(busSid);
}else {
balance = finSelectedReceivablesDetailedService.getBalance(busSid);
}
int i = new BigDecimal(balance).compareTo(new BigDecimal(thisUseMoney));
if (i == -1){
return rb.setMsg("本次使用金额不能大于剩余金额");
}
jzjehj = jzjehj.add(new BigDecimal(thisUseMoney));
}
for (AppFinFundsCarriedForwardYXYSKXDto yxysFinFundsCarriedForwardYXYSKXVo : yxysFinFundsCarriedForwardYXYSKXVos) {

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java

@ -164,4 +164,6 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper<FinSele
FinSelectedReceivablesDetailed fetchYeBySid(String busSid);
List<FinSelectedReceivablesDetailed> selectByOneCollSid(String sid);
String getBalance(String busSid);
}

492
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml

@ -25,58 +25,58 @@
<select id="getPaymentDetailsList"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo">
SELECT distinct furd.sid,
furd.contractNo AS contractId,
furd.receivablesName AS projectName,
furd.customerPhone AS mobile,
furd.customerName AS `name`,
furd.customerSid,
furd.useOrgSid,
COALESCE(SUM(df.dbalance), 0) AS realMoney,
cast((furd.`reveivableMoney` - COALESCE(SUM(df.dbalance), 0)) AS DECIMAL(10, 2)) AS receivable,
furd.contractSid,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
0 as subscribedOf,
furd.sid as receivablesSid,
CURRENT_DATE() as confirmDate,
furd.purchaseSystemSid
furd.contractNo AS contractId,
furd.receivablesName AS projectName,
furd.customerPhone AS mobile,
furd.customerName AS `name`,
furd.customerSid,
furd.useOrgSid,
COALESCE(SUM(df.dbalance), 0) AS realMoney,
cast((furd.`reveivableMoney` - COALESCE(SUM(df.dbalance), 0)) AS DECIMAL(10, 2)) AS receivable,
furd.contractSid,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
0 as subscribedOf,
furd.sid as receivablesSid,
CURRENT_DATE() as confirmDate,
furd.purchaseSystemSid
FROM fin_uncollected_receivables_detailed furd
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (
SELECT d.sid,
d.`receivablesSid`,
(
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.`auditState` = 3
or d.auditState = 1
GROUP BY d.`sid`
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (
SELECT d.sid,
d.`receivablesSid`,
(
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.`auditState` = 3
or d.auditState = 1
GROUP BY d.`sid`
) df ON df.receivablesSid = furd.`sid`
<where>
${ew.sqlSegment}
<if test="name != null and name != ''">
and concat(IFNULL(furd.customerName
, '')
, ifnull(furd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(furd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
and length(furd.busVinSid)
>0
>0
</where>
group by furd.sid,furd.contractNo
having receivable>0
@ -86,32 +86,32 @@
<select id="getPaymentList"
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo">
SELECT sid,
contractNo AS contractId,
receivablesName AS projectName,
customerPhone AS mobile,
customerName AS `name`,
currentReceivableMoney AS receivable,
contractSid,
VIN AS vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
furd.customerSid,
furd.useOrgSid,
furd.reveivableMoney
contractNo AS contractId,
receivablesName AS projectName,
customerPhone AS mobile,
customerName AS `name`,
currentReceivableMoney AS receivable,
contractSid,
VIN AS vin,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
furd.customerSid,
furd.useOrgSid,
furd.reveivableMoney
FROM fin_uncollected_receivables_detailed furd
<where>
${ew.sqlSegment}
<if test="name != null and name != ''">
and concat(IFNULL(furd.customerName
, '')
, ifnull(furd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(furd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
and length(furd.busVinSid)
>0
>0
</where>
order by furd.contractNo desc
</select>
@ -163,7 +163,7 @@
resultType="com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo">
SELECT fsrd.subscriptionMoney
FROM fin_selected_receivables_detailed fsrd
LEFT JOIN fin_collection_confirmation fcc ON fcc.sid = fsrd.collSid
LEFT JOIN fin_collection_confirmation fcc ON fcc.sid = fsrd.collSid
WHERE fcc.paymentState = 1
</select>
@ -179,16 +179,16 @@
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = #{state}
and ff.busVinSid = #{busVinSid}
and d.contractNo = #{contractNo}
@ -303,16 +303,16 @@
<select id="selectByVinSid" resultType="java.lang.String">
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = 3
and ff.busVinSid = #{busVinSid}
GROUP BY d.`sid`) d
@ -330,8 +330,7 @@
FROM fin_selected_receivables_detailed
WHERE receivablesSid = #{ysSid}
AND auditState = 3
ORDER BY createTime DESC
LIMIT 1
ORDER BY createTime DESC LIMIT 1
</select>
<select id="selectUnSelectList" resultType="java.lang.String">
@ -346,98 +345,130 @@
<select id="selectPageList"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectReceivablesDetailedVo">
select fd.sid,
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
<where>
${ew.sqlSegment}
and fd.receivablesName not like '%订金%'
and fd.auditState = 3
and fd.receivablesName not like '%订金%'
and fd.auditState = 3
<if test="name != null and name != ''">
and concat(IFNULL(fd.customerName
, '')
, ifnull(fd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(fd.contractNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
</where>
</select>
<select id="noOutVehRecPageList"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectReceivablesDetailedWCKCLRKVo">
SELECT ferd.sid,
fcc.createBySid AS createBySid,
fcc.`useOrgSid`,
fcc.`staffDeptName`,
fcc.staffUserSid AS staffSid,
fcc.`staffName`,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
ferd.purchaseSystemSid,
ferd.purchaseSystemName,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM fin_selected_receivables_detailed ferd
LEFT JOIN fin_collection_confirmation fcc
ON ferd.`collSid` = fcc.`sid`
LEFT JOIN anrui_base.`base_vehicle` bv
ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8)
AND fcc.`useOrgSid` = bv.`createOrgSid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = ferd.`sid`
SELECT
ferd.sid,
fcc.createBySid AS createBySid,
fcc.`useOrgSid`,
fcc.`staffDeptName` AS staffDeptName,
su.staffSid AS staffSid,
fcc.`staffName` AS staffName,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
ferd.purchaseSystemSid,
ferd.purchaseSystemName,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM
fin_selected_receivables_detailed ferd
LEFT JOIN fin_collection_confirmation fcc
ON ferd.`collSid` = fcc.`sid`
JOIN
(SELECT
ffc.busSid,
ffc.thisUseMoney
FROM
fin_funds_carried_forward_veh ffc
JOIN `fin_funds_carried_forward_apply` fa
ON ffc.mainSid = fa.sid
WHERE fa.`nodeState` != '终止') ffc
ON ffc.`busSid` = ferd.`sid`
JOIN anrui_portal.`sys_user` su
ON fcc.`staffUserSid` = su.sid
JOIN fin_uncollected_receivables_detailed furd
ON ferd.`receivablesSid` = furd.`sid`
JOIN anrui_base.`base_vehicle_state` bvs
ON furd.busVinSid = bvs.busSid
AND (
bvs.`busNo` = "200"
OR bvs.`busState` = "401"
)
<where>
${ew.SqlSegment}
${ew.sqlSegment}
</where>
UNION
SELECT ferd.sid,
ffcfa.createBySid AS createBySid,
ffcfa.useOrgSid,
ffcfa.saleDeptName AS staffDeptName,
ffcfa.staffSid,
ffcfa.`staffName`,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
ferd.purchaseSystemSid,
ferd.purchaseSystemName,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM fin_selected_receivables_detailed ferd
LEFT JOIN fin_funds_carried_forward_apply ffcfa
ON ferd.`collSid` = ffcfa.`sid`
LEFT JOIN anrui_base.`base_vehicle` bv
ON RIGHT(ferd.`VIN`, 8) = RIGHT(bv.`vinNo`, 8)
AND ffcfa.`useOrgSid` = bv.`createOrgSid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = ferd.`sid`
SELECT
ferd.sid,
ffcfa.createBySid AS createBySid,
ffcfa.useOrgSid,
ffcfa.saleDeptName AS staffDeptName,
ffcfa.staffSid,
ffcfa.`staffName` AS staffName,
ferd.`contractNo`,
ferd.`payType`,
ferd.`customerName`,
ferd.`customerPhone`,
ferd.`VIN` AS vinNo,
ferd.`receivablesName`,
ferd.`auditDate`,
ferd.`subscriptionMoney`,
ferd.purchaseSystemSid,
ferd.purchaseSystemName,
(
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney,
ferd.kxState AS state
FROM
fin_selected_receivables_detailed ferd
LEFT JOIN fin_funds_carried_forward_apply ffcfa
ON ferd.`collSid` = ffcfa.`sid`
JOIN
(SELECT
ffc.busSid,
ffc.thisUseMoney
FROM
fin_funds_carried_forward_veh ffc
JOIN `fin_funds_carried_forward_apply` ffcfa
ON ffc.mainSid = ffcfa.sid
WHERE ffcfa.`nodeState` != '终止') ffc
ON ffc.`busSid` = ferd.`sid`
JOIN fin_uncollected_receivables_detailed furd
ON ferd.`receivablesSid` = furd.`sid`
JOIN anrui_base.`base_vehicle_state` bvs
ON furd.busVinSid = bvs.busSid
AND (
bvs.`busNo` = "200"
OR bvs.`busState` = "401"
)
<where>
${ew.sqlSegment}
</where>
@ -454,61 +485,61 @@
<select id="selectPageLists"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectReceivablesDetailedVo">
select distinct fd.sid,
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL(10, 2)) AS dbalance,
if(fd.currentReceivableMoney &lt;= 0, 0,
if(cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)) &lt;= 0, 0,
cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)))) as reveivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as VIN,
CURRENT_DATE() as confirmDate,
1 as subscribedOf
fd.receivablesSid,
fd.contractNo,
fd.customerSid,
fd.customerName,
fd.customerPhone,
fd.receivablesName,
fd.currentReceivableMoney,
cast((furd.`reveivableMoney` - COALESCE(df.dbalance, 0)) AS DECIMAL(10, 2)) AS dbalance,
if(fd.currentReceivableMoney &lt;= 0, 0,
if(cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)) &lt;= 0, 0,
cast((fd.currentReceivableMoney - fd.subscriptionMoney) AS DECIMAL(10, 2)))) as reveivableMoney,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid,
fd.subscriptionDate,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as VIN,
CURRENT_DATE() as confirmDate,
1 as subscribedOf
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (select sum(dbalance) as dbalance, d.receivablesSid
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE (d.auditState = 1 OR d.auditState = 3)
GROUP BY d.`sid`) d
group by d.receivablesSid
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (select sum(dbalance) as dbalance, d.receivablesSid
from (SELECT d.sid,
d.receivablesSid,
d.`collSid`,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) +
COALESCE(ffa.`useMoney`, 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN `fin_funds_carried_forward_veh` f ON f.`busSid` = d.`sid`
LEFT JOIN (SELECT fa.sid, ff.busSid, ff.thisUseMoney as useMoney
FROM fin_funds_carried_forward_apply fa
LEFT JOIN fin_funds_carried_forward_veh ff ON ff.mainSid = fa.sid
WHERE fa.nodeState = '终止') ffa on ffa.busSid = d.sid
WHERE (d.auditState = 1 OR d.auditState = 3)
GROUP BY d.`sid`) d
group by d.receivablesSid
) df ON df.receivablesSid = furd.`sid`
<where>
${ew.sqlSegment}
and fd.receivablesName not like '%订金%'
and fd.auditState = 3
and fd.receivablesName not like '%订金%'
and fd.auditState = 3
<if test="name != null and name != ''">
and concat(IFNULL(fd.customerName
, '')
, ifnull(fd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
, '')
, ifnull(fd.contractNo
, '')
, ifnull(bv.linkNo
, '')) LIKE concat('%'
, #{name}
, '%')
</if>
</where>
having dbalance &lt;= 0
@ -532,11 +563,11 @@
fsrd.purchaseSystemSid,
fsrd.purchaseSystemName,
(
fsrd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS balance
fsrd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS balance
FROM fin_selected_receivables_detailed fsrd
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = fsrd.`sid`
LEFT JOIN `fin_funds_carried_forward_veh` ffc
ON ffc.`busSid` = fsrd.`sid`
WHERE fsrd.`sid` = #{busSid}
GROUP BY fsrd.sid
</select>
@ -546,15 +577,15 @@
select ifnull(sum(dbalance), 0) as subscriptionMoney, d.receivablesSid
from (SELECT d.receivablesSid,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = 3
GROUP BY d.`sid`) d
WHERE d.receivablesSid = #{receivablesSid}
@ -566,4 +597,19 @@
from fin_selected_receivables_detailed
where collSid = #{sid}
</select>
<select id="getBalance" resultType="java.lang.String">
SELECT (
ferd.`subscriptionMoney` - COALESCE(SUM(ffc.`thisUseMoney`), 0)
) AS reveivableMoney
FROM fin_selected_receivables_detailed ferd
LEFT JOIN (SELECT ffc.busSid,
ffc.thisUseMoney
FROM fin_funds_carried_forward_veh ffc
JOIN `fin_funds_carried_forward_apply` fa
ON ffc.mainSid = fa.sid
WHERE fa.`nodeState` != '终止') ffc
ON ffc.`busSid` = ferd.`sid`
WHERE ferd.sid = #{busSid}
</select>
</mapper>

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java

@ -570,7 +570,7 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
}
}
qw.eq("ferd.auditState", 3);
qw.ne("bv.vehicleState", VehicleState.StockEnum.OUT_STOCK.getCode());
qw.eq("ferd.kxState","01");
if (StringUtils.isNotBlank(query.getStaffDeptName())) {
qw.and(wrapper -> wrapper.like("fcc.staffDeptName", query.getStaffDeptName()).or().like("ffcfa.saleDeptName", query.getStaffDeptName()));
}
@ -590,7 +590,7 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
qw.like("ferd.VIN", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("ferd.contractNo", query.getName()).or().like("fcc.staffDeptName", query.getName()).or().like("ffcfa.saleDeptName",query.getName()).or().like("ffcfa.staffName",query.getName()).or().like("fcc.staffName", query.getName()).or().like("ferd.customerName", query.getName()).or().like("ferd.customerPhone", query.getName()).or().like("ferd.VIN", query.getName()));
qw.and(wrapper -> wrapper.like("ferd.contractNo", query.getName()).or().like("ferd.customerName", query.getName()).or().like("ferd.customerPhone", query.getName()).or().like("ferd.VIN", query.getName()));
}
qw.groupBy("ferd.sid");
if (StringUtils.isNotBlank(query.getBalanceSmallMoney()) && StringUtils.isNotBlank(query.getBalanceBigMoney()) && !"5".equals(orgLevelKey)){
@ -641,4 +641,8 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
public List<FinSelectedReceivablesDetailed> selectByOneCollSid(String sid) {
return baseMapper.selectByOneCollSid(sid);
}
public String getBalance(String busSid) {
return baseMapper.getBalance(busSid);
}
}

175
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedMapper.xml

@ -52,24 +52,24 @@
</where>
order by id asc-->
SELECT distinct furd.sid,
furd.contractNo AS contractNo,
furd.receivablesName AS receivablesName,
furd.customerPhone AS customerPhone,
furd.customerName AS `customerName`,
furd.contractNo AS contractNo,
furd.receivablesName AS receivablesName,
furd.customerPhone AS customerPhone,
furd.customerName AS `customerName`,
furd.customerSid,
furd.useOrgSid,
COALESCE ( SUM( df.dbalance ), 0 ) AS realMoney,
cast((furd.`reveivableMoney` - COALESCE(SUM( df.dbalance ), 0)) AS DECIMAL(10, 2)) AS currentReceivableMoney,
COALESCE(SUM(df.dbalance), 0) AS realMoney,
cast((furd.`reveivableMoney` - COALESCE(SUM(df.dbalance), 0)) AS DECIMAL(10, 2)) AS currentReceivableMoney,
furd.reveivableMoney,
furd.contractSid,
if(bv.linkNo is null or LENGTH(trim(bv.linkNo)) &lt; 1,
if(furd.payTypeKey = 2, RIGHT(bv.temporaryNo, 2), bv.temporaryNo),
RIGHT(bv.linkNo, 8)) as VIN,
RIGHT(bv.linkNo, 8)) as VIN,
furd.busVinSid,
furd.payType,
furd.payTypeKey,
0 as subscribedOf,
furd.sid as receivablesSid
0 as subscribedOf,
furd.sid as receivablesSid
FROM fin_uncollected_receivables_detailed furd
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = furd.busVinSid
LEFT JOIN (
@ -93,7 +93,7 @@
${ew.sqlSegment}
and length(furd.busVinSid) > 0
</where>
group by furd.sid,currentReceivableMoney>0,furd.contractNo
group by furd.sid, currentReceivableMoney>0, furd.contractNo
having currentReceivableMoney>0
order by furd.contractNo desc
</select>
@ -170,53 +170,142 @@
<select id="receivedSelect" resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveSeleteVo">
SELECT furd.receivablesName,
furd.reveivableMoney,
furd.sid as receivablesSid,
furd.sid as receivablesSid,
(
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT d.receivablesSid,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = 3
GROUP BY d.`sid`) d
WHERE d.receivablesSid = furd.sid) as subscriptionMoneyAll,
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT d.receivablesSid,
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = 3
GROUP BY d.`sid`) d
WHERE d.receivablesSid = furd.sid) as subscriptionMoneyAll,
(
SELECT group_concat(length(remarks) > 0, ',')
FROM fin_selected_receivables_detailed
WHERE receivablesSid = furd.sid
AND auditState = 3
) AS remarks
) AS remarks
FROM fin_uncollected_receivables_detailed furd
WHERE furd.busVinSid = #{busVinSid}
</select>
<select id="selectByContractNoOne" resultType="java.lang.String">
select fun.busVinSid
from fin_uncollected_receivables_detailed fun
left join fin_uncollected_receivables_detailed fun1 on fun.busVinSid = fun1.busVinSid
where fun.contractNo = #{contractNo}
and (fun.currentReceivableMoney &lt; 0 or fun.currentReceivableMoney = 0)
and fun.receivablesName = '订金'
and (fun1.currentReceivableMoney &lt; 0 or fun1.currentReceivableMoney = 0)
and (fun1.receivablesName = '首付款及费用' or fun1.receivablesName = '车款')
<!-- select fun.busVinSid
from fin_uncollected_receivables_detailed fun
left join fin_uncollected_receivables_detailed fun1 on fun.busVinSid = fun1.busVinSid
where fun.contractNo = #{contractNo}
and (fun.currentReceivableMoney &lt; 0 or fun.currentReceivableMoney = 0)
and fun.receivablesName = '订金'
and (fun1.currentReceivableMoney &lt; 0 or fun1.currentReceivableMoney = 0)
and (fun1.receivablesName = '首付款及费用' or fun1.receivablesName = '车款')-->
select d.busVinSid
from (SELECT fun.busVinSid,
(
fun.`reveivableMoney` - COALESCE(SUM(df.dbalance), 0)) AS dblance,
(
fun1.`reveivableMoney` - COALESCE(SUM(df1.dbalance), 0)) AS dblance1
FROM fin_uncollected_receivables_detailed fun
LEFT JOIN (
SELECT d.sid,
d.`receivablesSid`,
(
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.`auditState` = 3
GROUP BY d.`sid`
) df ON df.receivablesSid = fun.`sid`
LEFT JOIN fin_uncollected_receivables_detailed fun1 ON fun1.busVinSid = fun.busVinSid
LEFT JOIN (
SELECT d.sid,
d.`receivablesSid`,
(
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.`auditState` = 3
GROUP BY d.`sid`
) df1 ON df1.receivablesSid = fun1.`sid`
WHERE fun.contractNo = #{contractNo}
AND (fun1.receivablesName = '首付款及费用' OR fun1.receivablesName = '车款')
and (fun.receivablesName = '订金')
GROUP BY fun.sid,
fun1.sid
HAVING dblance &lt;= 0
AND dblance1 &lt;= 0) d
group by d.busVinSid
</select>
<select id="selectByCreateBySidOne" resultType="java.lang.String">
select fun.busVinSid
from fin_uncollected_receivables_detailed fun
left join fin_uncollected_receivables_detailed fun1 on fun.busVinSid = fun1.busVinSid
where fun.createBySid = #{userSid}
and (fun.currentReceivableMoney &lt; 0 or fun.currentReceivableMoney = 0)
and fun.receivablesName = '订金'
and (fun1.currentReceivableMoney &lt; 0 or fun1.currentReceivableMoney = 0)
and (fun1.receivablesName = '首付款及费用' or fun1.receivablesName = '车款')
select d.busVinSid
from (SELECT fun.busVinSid,
(
fun.`reveivableMoney` - COALESCE(SUM(df.dbalance), 0)) AS dblance,
(
fun1.`reveivableMoney` - COALESCE(SUM(df1.dbalance), 0)) AS dblance1
FROM fin_uncollected_receivables_detailed fun
LEFT JOIN (
SELECT d.sid,
d.`receivablesSid`,
(
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.`auditState` = 3
GROUP BY d.`sid`
) df ON df.receivablesSid = fun.`sid`
LEFT JOIN fin_uncollected_receivables_detailed fun1 ON fun1.busVinSid = fun.busVinSid
LEFT JOIN (
SELECT d.sid,
d.`receivablesSid`,
(
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS dbalance
FROM fin_selected_receivables_detailed d
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.`auditState` = 3
GROUP BY d.`sid`
) df1 ON df1.receivablesSid = fun1.`sid`
WHERE fun.createBySid = #{userSid}
AND (fun1.receivablesName = '首付款及费用' OR fun1.receivablesName = '车款')
and (fun.receivablesName = '订金')
GROUP BY fun.sid,
fun1.sid
HAVING dblance &lt;= 0
AND dblance1 &lt;= 0) d
group by d.busVinSid
</select>
<select id="selectSidBybusVinSidAndConNo" resultType="java.lang.String">
SELECT sid

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/OtherReceivableBillService.java

@ -72,7 +72,8 @@ public class OtherReceivableBillService extends FinKingDeeService {
return rb.setMsg("其他应收单保存失败!");
}
log.info("其他应收单保存成功!");
ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), kingDeeData, KingDeeBillUrl.SUBMIT_URL.getURL());
String submitKD = getSubmitKD(resultBean1.getData(),KingDeeBillId.AR_OTHERRECEIVABLE.getID());
ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), submitKD, KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("其他应收单提交失败!");
return rb.setMsg("其他应收单提交失败!");

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/otherreceivablebill/data_model.json

@ -41,12 +41,12 @@
"FNumber": ""
},
"FMAINBOOKSTDCURRID": {
"FNumber": ""
"FNumber": "PRE001"
},
"FEXCHANGETYPE": {
"FNumber": ""
"FNumber": "HLTX01_SYS"
},
"FExchangeRate": "0",
"FExchangeRate": "1",
"FNOTAXAMOUNT": "0",
"FTAXAMOUNT": "0",
"FCancelStatus": "",

5
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow2/FlowFeign.java

@ -31,4 +31,9 @@ public interface FlowFeign {
@PostMapping(value = "/handleProsess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> revokeProcess(@RequestBody com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl);
}

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

@ -54,6 +54,7 @@ public enum ProcDefEnum {
BUSHANDOVER("交车确认", "process_e8feloik:6:2675004"),
LOANFINPOLICYRECORDAPPLY("金融产品政策备案", "process_u45lo7qc:1:2272516"),
LOANOTHERPOLICYRECORDAPPLY("其它融产品备案", "process_7pptyzfc:1:2272524"),
LOANCREDITAPPEALAPPLY("信用审核申诉", "process_gygvxw8k:1:2847504"),
DEALERFILINGAPPLY("经销商备案", "process_jdu35cog:3:2577504"),
/******************************测试流程id*********************************************/

12
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowRest.java

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.feign.MessageFeign;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
@ -102,5 +103,16 @@ public class FlowRest implements FlowFeign {
return updateFlowFieldVoResultBean;
}
@Override
public ResultBean<UpdateFlowFieldVo> revokeProcess(FlowTaskVo fl) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
//获取表单中的参数
Map<String, Object> formVariables = fl.getValues();
formVariables = formVariables == null ? new HashMap<>() : formVariables;
formVariables.put("businessSid", fl.getBusinessSid());
ResultBean<UpdateFlowFieldVo> updateFlowFieldVoResultBean = flowService.revokeProcess(fl);
return null;
}
}

228
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

@ -1,6 +1,7 @@
package com.yxt.anrui.flowable.biz.flow2;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -8,18 +9,22 @@ import com.yxt.anrui.flowable.api.flow.Flowable;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.FlowTask;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskMapper;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService;
import com.yxt.anrui.flowable.biz.process.ExpressionCmd;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService;
import com.yxt.anrui.flowable.common.ProcessConstants;
import com.yxt.anrui.flowable.exception.CustomException;
import com.yxt.anrui.flowable.feign.MessageFeign;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.flowable.utils.FlowableUtils;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo;
@ -31,9 +36,15 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.*;
import org.flowable.bpmn.model.Process;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.engine.*;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.Execution;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
@ -85,6 +96,8 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
private MessageFeign messageFeign;
@Autowired
private SysFlowccFeign sysFlowccFeign;
@Autowired
private FlowTaskMapper flowTaskMapper;
public ResultBean<String> getNextNodeUser(BusinessVariables bv) {
ResultBean<String> rb = ResultBean.fireFail();
@ -121,6 +134,11 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
}
/**
* 根据业务参数取流程流转的环节 信息
* @param bv
* @return
*/
public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
ResultBean<List<Map<String, Object>>> rb = new ResultBean<List<Map<String, Object>>>();
String modelId = bv.getModelId();
@ -255,6 +273,11 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
return managementService.executeCommand(new ExpressionCmd(runtimeService, processEngineConfiguration, null, exp, variableMap));
}
/**
* 启动流程
* @param bv
* @return
*/
public ResultBean<UpdateFlowFieldVo> businessStartProcessInstanceById(BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
UpdateFlowFieldVo updateFlowFieldVo = new UpdateFlowFieldVo();
@ -402,6 +425,12 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
return nextNodeUserSids;
}
/**
* 办理
* @param bv
* @param b
* @return
*/
public ResultBean<UpdateFlowFieldVo> handleProsess(BusinessVariables bv, boolean b) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
@ -716,4 +745,203 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
}
return rb.success().setMsg("抄送" + userName.toString() + "成功!");
}
public ResultBean<UpdateFlowFieldVo> revokeProcess(FlowTaskVo flowTaskVo) {
ResultBean<UpdateFlowFieldVo> rb =ResultBean.fireFail();
String userSid = flowTaskVo.getUserSid();
//获取当前环节信息
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(flowTaskVo.getTaskId()).singleResult();
Execution execution = runtimeService.createExecutionQuery().executionId(historicTaskInstance.getExecutionId()).singleResult();
DelegateExecution delegateExecution = (DelegateExecution) execution;
if (delegateExecution == null) {
return rb.setMsg("流程已办结或终止,不能撤回");
}
// 获取当前节点的activityId,即xml中每个标签的ID
String currentActivityId = delegateExecution.getCurrentActivityId();
String taskId = getTaskId(currentActivityId, historicTaskInstance.getProcessInstanceId(), historicTaskInstance.getProcessDefinitionId());
if (StringUtils.isBlank(taskId)) {
return rb.setMsg("流程找不到上一环节,撤回操作失败!");
}
//获取上一环节操作信息
HistoricTaskInstance historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult();
//上一环节操作人
String assignee = historicTaskInstance1.getAssignee();
return null;
}
private String getTaskId(String currentActivityId, String processInstanceId, String processDefinitionId) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(currentActivityId);
List<SequenceFlow> list=flowNode.getIncomingFlows();
if(list.size()==0){
return "";
}
List<HistoricActivityInstance> list1=new ArrayList<>();
for( SequenceFlow sequenceFlow:list){
String sourceRef = sequenceFlow.getSourceRef();
list1= historyService.createHistoricActivityInstanceQuery().activityId(sourceRef)
.processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().desc().list();
if(list1.size()>0){
break;
}
}
// 获取上一个节点的activityId
HistoricActivityInstance historicActivityInstance = list1.get(0);
String activityType = historicActivityInstance.getActivityType();
String historicActivityInstanceActivityId = historicActivityInstance.getActivityId();
if (!"userTask".equals(activityType)) {
return getTaskId(historicActivityInstanceActivityId, processInstanceId, processDefinitionId);
}
return historicActivityInstance.getTaskId();
}
private ResultBean<List<LatestTaskVo>> revokeProcess_( String processInstanceId,
String assignee ) {
// 流程回退到上一个节点,审批人继续审批
// 获取流程定义信息
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
ProcessDefinition processDefinition = repositoryService
.createProcessDefinitionQuery()
.processDefinitionId(task.getProcessDefinitionId()).singleResult();
// 获取所有节点信息
Process process = repositoryService.getBpmnModel(processDefinition.getId()).getProcesses().get(0);
// 获取全部节点列表,包含子节点
Collection<FlowElement> allElements =
FlowableUtils.getAllElements(process.getFlowElements(), null);
// 获取当前任务节点元素
FlowElement source = null;
if (allElements != null) {
for (FlowElement flowElement : allElements) {
//类型为用户节点
if (flowElement.getId().equals(task.getTaskDefinitionKey())) {
//获取节点信息
source = flowElement;
}
}
}
// 目的获取所有跳转到的节点 targetIds
// 获取当前节点的所有父级用户任务节点
// 深度优先算法思想:延边迭代深入
//申请人申请后,销售经理审批同意,随后销售经理再撤回,申请人再撤回。 申请人->网关->销售经理->销售支持部经理
List<UserTask> parentUserTaskList = FlowableUtils.iteratorFindParentUserTasks(source, null, null);
if (parentUserTaskList == null || parentUserTaskList.size() == 0) {
// throw new CustomException("当前节点为");
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("当前节点为").setData(new ArrayList<>());
}
// 如果流程已经结束,则得到结束节点
if (historyService.createHistoricProcessInstanceQuery().finished()
.processInstanceId(processInstanceId).count() > 0) {
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("当前已经结束不能撤回").setData(new ArrayList<>());
}
// 获取活动 ID 即节点 Key
List<String> parentUserTaskKeyList = new ArrayList<>();
parentUserTaskList.forEach(item -> parentUserTaskKeyList.add(item.getId()));
// 获取全部历史节点活动实例,即已经走过的节点历史,数据采用开始时间升序
List<HistoricTaskInstance> historicTaskInstanceList = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.orderByHistoricTaskInstanceStartTime().asc().list();
HistoricTaskInstance historicTaskInstance = historicTaskInstanceList.get(historicTaskInstanceList.size() - 1);
Map<String, Object> actHiVarinstForOrgPath = flowTaskMapper.getActHiVarinstForOrgPath(historicTaskInstance.getId());
String orgPath = MapUtil.getStr(actHiVarinstForOrgPath,"TEXT_");
// 数据清洗,将回滚导致的脏数据清洗掉
List<String> lastHistoricTaskInstanceList = FlowableUtils.historicTaskInstanceClean(allElements, historicTaskInstanceList);
// 此时历史任务实例为倒序,获取最后走的节点
List<String> targetIds = new ArrayList<>();
int number = 0;
StringBuilder parentHistoricTaskKey = new StringBuilder();
for (String historicTaskInstanceKey : lastHistoricTaskInstanceList) {
// 当会签时候会出现特殊的,连续都是同一个节点历史数据的情况,这种时候跳过
if (parentHistoricTaskKey.toString().equals(historicTaskInstanceKey)) {
continue;
}
parentHistoricTaskKey = new StringBuilder(historicTaskInstanceKey);
if (historicTaskInstanceKey.equals(task.getTaskDefinitionKey())) {
number++;
}
// 在数据清洗后,历史节点就是唯一一条从起始到当前节点的历史记录,理论上每个点只会出现一次
// 在流程中如果出现循环,那么每次循环中间的点也只会出现一次,再出现就是下次循环
// number == 1,第一次遇到当前节点
// number == 2,第二次遇到,代表最后一次的循环范围
if (number == 2) {
break;
}
// 如果当前历史节点,属于父级的节点,说明最后一次经过了这个点,需要退回这个点
if (parentUserTaskKeyList.contains(historicTaskInstanceKey)) {
targetIds.add(historicTaskInstanceKey);
}
}
// 目的获取所有需要被跳转的节点 currentIds
// 取其中一个父级任务,因为后续要么存在公共网关,要么就是串行公共线路
UserTask oneUserTask = parentUserTaskList.get(0);
// 获取所有正常进行的任务节点 Key,这些任务不能直接使用,需要找出其中需要撤回的任务
List<Task> runTaskList = taskService.createTaskQuery()
.processInstanceId(processInstanceId).list();
List<String> runTaskKeyList = new ArrayList<>();
runTaskList.forEach(item -> runTaskKeyList.add(item.getTaskDefinitionKey()));
// 需驳回任务列表
List<String> currentIds = new ArrayList<>();
// 通过父级网关的出口连线,结合 runTaskList 比对,获取需要撤回的任务
List<UserTask> currentUserTaskList = FlowableUtils.iteratorFindChildUserTasks(oneUserTask, runTaskKeyList, null, null);
currentUserTaskList.forEach(item -> currentIds.add(item.getId()));
// 规定:并行网关之前节点必须需存在唯一用户任务节点,
// 如果出现多个任务节点,则并行网关节点默认为结束节点,原因为不考虑多对多情况
if (targetIds.size() > 1 && currentIds.size() > 1) {
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("任务出现多对多情况,无法撤回").setData(new ArrayList<>());
}
// 循环获取那些需要被撤回的节点的ID,用来设置驳回原因
List<String> currentTaskIds = new ArrayList<>();
currentIds.forEach(currentId -> runTaskList.forEach(runTask -> {
if (currentId.equals(runTask.getTaskDefinitionKey())) {
currentTaskIds.add(runTask.getId());
}
}));
// 设置撤回意见
currentTaskIds.forEach(item -> {
taskService.addComment(item, processInstanceId,FlowComment.RECALL.getType(), "撤回办理");
// 设置实际办理人
taskService.setAssignee(item, assignee);
});
// 最近环节
List<LatestTaskVo> latestTaskList = new ArrayList<>();
try {
// 如果父级任务多于 1 个,说明当前节点不是并行节点,原因为不考虑多对多情况
if (targetIds.size() > 1) {
// 1 对 多任务跳转,currentIds 当前节点(1),targetIds 跳转到的节点(多)
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(processInstanceId).
moveSingleActivityIdToActivityIds(currentIds.get(0), targetIds).changeState();
}
// 如果父级任务只有一个,因此当前任务可能为网关中的任务
if (targetIds.size() == 1) {
// 1 对 1 或 多 对 1 情况,currentIds 当前要跳转的节点列表(1或多),targetIds.get(0) 跳转到的节点(1)
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(processInstanceId)
.moveActivityIdsToSingleActivityId(currentIds, targetIds.get(0)).changeState();
}
// 最近环节
parentUserTaskList.forEach(item -> {
LatestTaskVo latestTaskVo = new LatestTaskVo();
latestTaskVo.setASSIGNEE_(item.getAssignee());
latestTaskVo.setName_(item.getName());
latestTaskVo.setTask_def_key_(item.getId());
latestTaskVo.setIncomingSourceRef(item.getIncomingFlows().get(0).getSourceRef());
latestTaskVo.setOrgPath(orgPath);
Map<String, Object> task_map = flowTaskMapper.getTaskByDefKey(processInstanceId, item.getId());
if(task_map!=null){
taskService.setAssignee(task_map.get("id_").toString(), assignee);
latestTaskVo.setId_(task_map.get("id_").toString());
latestTaskList.add(latestTaskVo);
}
});
} catch (FlowableObjectNotFoundException e) {
throw new CustomException("未找到流程实例,流程可能已发生变化");
} catch (FlowableException e) {
throw new CustomException("无法取消或开始活动");
}
return new ResultBean<List<LatestTaskVo>>().success().setData(latestTaskList);
}
}

81
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApply.java

@ -0,0 +1,81 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealapply;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApply.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply <br/>
* Description: 信用审核申诉表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉表", description = "信用审核申诉表")
@TableName("loan_credit_appeal_apply")
public class LoanCreditAppealApply extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("创建人接口")
private String createByName;
@ApiModelProperty("申诉原因")
private String appealReason;
@ApiModelProperty("贷前信用审核sid")
private String creditApplySid;
@ApiModelProperty("申请编号")
private String billNo;
@ApiModelProperty("流程定义的id")
private String procDefId;
@ApiModelProperty("环节定义的sid")
private String nodeSid;
@ApiModelProperty("流程实例的sid")
private String procInstSid;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("申请部门sid")
private String applyDeptSid;
@ApiModelProperty("申请部门名称")
private String applyDeptName;
}

92
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDetailsVo.java

@ -0,0 +1,92 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealapply;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto;
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo <br/>
* Description: 信用审核申诉表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉表 视图数据详情", description = "信用审核申诉表 视图数据详情")
public class LoanCreditAppealApplyDetailsVo implements Vo {
private String sid;
@ApiModelProperty("贷前信用审核")
private LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo;
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("创建人接口")
private String createByName;
@ApiModelProperty("申诉原因")
private String appealReason;
@ApiModelProperty("贷前信用审核sid")
private String creditApplySid;
@ApiModelProperty("申请编号")
private String billNo;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("申请部门sid")
private String applyDeptSid;
@ApiModelProperty("申请部门名称")
private String applyDeptName;
@ApiModelProperty("销售订单sid")
private String saleOrderSid = "1b54fcc7-9909-436d-a134-03c3f5a7f7ff";
@ApiModelProperty("流程定义的id")
private String procDefId;
@ApiModelProperty("流程实例的sid")
private String procInstSid;
@ApiModelProperty("信用申诉人员列表")
private List<LoanCreditAppealPeoDetailsVo> loanCreditAppealPeos = new ArrayList<>();
@ApiModelProperty("申诉附件")
private List<String> ssImages = new ArrayList<>();
}

83
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyDto.java

@ -0,0 +1,83 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealapply;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyDto.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDto <br/>
* Description: 信用审核申诉表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉表 数据传输对象", description = "信用审核申诉表 数据传输对象")
public class LoanCreditAppealApplyDto implements Dto {
private String sid;
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("创建人接口")
private String createByName;
@ApiModelProperty("申诉原因")
private String appealReason;
@ApiModelProperty("贷前信用审核sid")
private String creditApplySid;
@ApiModelProperty("申请编号")
private String billNo;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("申请部门sid")
private String applyDeptSid;
@ApiModelProperty("申请部门名称")
private String applyDeptName;
@ApiModelProperty("信用申诉人员列表")
private List<LoanCreditAppealPeoDto> loanCreditAppealPeos = new ArrayList<>();
@ApiModelProperty("申诉附件")
private List<String> ssImages = new ArrayList<>();
}

114
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeign.java

@ -0,0 +1,114 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealapply;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
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;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyFeign.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyFeign <br/>
* Description: 信用审核申诉表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "信用审核申诉表")
@FeignClient(
contextId = "anrui-riskcenter-LoanCreditAppealApply",
name = "anrui-riskcenter",
path = "v1/loancreditappealapply",
fallback = LoanCreditAppealApplyFeignFallback.class)
public interface LoanCreditAppealApplyFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
public ResultBean<PagerVo<LoanCreditAppealApplyVo>> listPage(@RequestBody PagerQuery<LoanCreditAppealApplyQuery> pq);
@ApiOperation("新增或修改")
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody LoanCreditAppealApplyDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<LoanCreditAppealApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("初始化申诉申请")
@GetMapping("/init/{sid}")
@ResponseBody
public ResultBean<LoanCreditAppealApplyDetailsVo> init(@PathVariable("sid") String sid);
@ApiOperation("信用审核申诉审批流程")
@PostMapping("/submitLoanCreditApply")
public ResultBean submitLoanCreditApply(@RequestBody @Valid SubmitLoanCreditApplyDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody LoanCreditApplyCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<LoanCreditApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap LoanCreditApplyNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<LoanCreditApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap LoanCreditApplyNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody LoanCreditApplyTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody LoanCreditApplyTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody LoanCreditApplyTaskQuery query);
}

113
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyFeignFallback.java

@ -0,0 +1,113 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealapply;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.*;
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;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyFeignFallback.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyFeignFallback <br/>
* Description: 信用审核申诉表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class LoanCreditAppealApplyFeignFallback implements LoanCreditAppealApplyFeign {
@Override
public ResultBean<PagerVo<LoanCreditAppealApplyVo>> listPage(PagerQuery<LoanCreditAppealApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-riskcenter/loancreditappealapply/listPage无法访问");
}
@Override
public ResultBean save(LoanCreditAppealApplyDto dto){
return ResultBean.fireFail().setMsg("接口anrui-riskcenter/loancreditappealapply/save无法访问");
}
@Override
public ResultBean delBySids( String[] sids){
return ResultBean.fireFail().setMsg("接口anrui-riskcenter/loancreditappealapply/delBySids无法访问");
}
@Override
public ResultBean<LoanCreditAppealApplyDetailsVo> fetchDetailsBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-riskcenter/loancreditappealapply/fetchDetailsBySid无法访问");
}
@Override
public ResultBean<LoanCreditAppealApplyDetailsVo> init(String sid) {
return null;
}
@Override
public ResultBean submitLoanCreditApply(SubmitLoanCreditApplyDto dto) {
return null;
}
@Override
public ResultBean complete(LoanCreditApplyCompleteDto query) {
return null;
}
@Override
public ResultBean<List<LoanCreditApplyNodeVo>> getPreviousNodesForReject(LoanCreditApplyNodeQuery query) {
return null;
}
@Override
public ResultBean<List<LoanCreditApplyNodeVo>> getNextNodesForSubmit(LoanCreditApplyNodeQuery query) {
return null;
}
@Override
public ResultBean reject(LoanCreditApplyTaskQuery query) {
return null;
}
@Override
public ResultBean revokeProcess(LoanCreditApplyTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(LoanCreditApplyTaskQuery query) {
return null;
}
}

91
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyQuery.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealapply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyQuery.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyQuery <br/>
* Description: 信用审核申诉表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉表 查询条件", description = "信用审核申诉表 查询条件")
public class LoanCreditAppealApplyQuery implements Query {
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("申请部门名称")
private String applyDeptName;
@ApiModelProperty("创建人接口")
private String createByName;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("客户类型value")
private String custTypeValue;
@ApiModelProperty("客户(企业)名称")
private String khqyName;
@ApiModelProperty("身份证号码")
private String idCard;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("申请开始日期")
private String createStartTime;
@ApiModelProperty("申请结束日期")
private String createEndTime;
@ApiModelProperty("公司风控结果")
private String gsfkjg;
@ApiModelProperty("资方风控结果")
private String zffkjg;
@ApiModelProperty("申诉结果")
private String ssjg;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgSidPath;
private String menuUrl;
private String menuSid;
@ApiModelProperty("移动端查询条件")
private String name;
@ApiModelProperty("PC审核状态(1提交,0审核)")
private String state;
@ApiModelProperty("移动审核状态(1未审核 2已审核)")
private String type;
}

108
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/LoanCreditAppealApplyVo.java

@ -0,0 +1,108 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo <br/>
* Description: 信用审核申诉表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉表 视图数据对象", description = "信用审核申诉表 视图数据对象")
public class LoanCreditAppealApplyVo implements Vo {
private String sid;
@ApiModelProperty("申请人+部门")
private String publishInfo;
@ApiModelProperty("审核状态")
private String state;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("申请部门名称")
private String applyDeptName;
@ApiModelProperty("创建人接口")
private String createByName;
@ApiModelProperty("申请日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("客户类型key")
private String custTypeKey;
@ApiModelProperty("客户类型value")
private String custTypeValue;
@ApiModelProperty("客户(企业)名称")
private String khqyName;
@ApiModelProperty("资方名称")
private String capitalName;
@ApiModelProperty("身份证号码")
private String idCard;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("公司审核日期")
private String gsshDate;
@ApiModelProperty("公司风控结果key")
private String gsfkjgKey;
@ApiModelProperty("公司风控结果")
private String gsfkjg;
@ApiModelProperty("资方风控结果")
private String zffkjg;
@ApiModelProperty("申诉结果")
private String ssjg;
@ApiModelProperty("是否可以办理")
private Boolean isEdit;
@ApiModelProperty("是否可以删除")
private Boolean isDelete;
@ApiModelProperty("是否可以申诉")
private Boolean isHandle;
@ApiModelProperty("是否显示修改审核后显示")
private Boolean showUpdateBtn;
@ApiModelProperty("是否显示删除 审核后不显示")
private Boolean showDeleteBtn;
@ApiModelProperty("是否显示申诉 审核后显示")
private Boolean showHandleBtn;
@ApiModelProperty("流程状态")
private String nodeState;
}

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyCompleteDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:57
* @Description
*/
@Data
public class LoanCreditApplyCompleteDto implements Dto {
private static final long serialVersionUID = 6378752532534735663L;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "下载类型")
private String pdfType;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id(PC)")
private String instanceId;
@ApiModelProperty(value = "流程id(移动)")
private String procInsId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:04
* @Description
*/
@Data
public class LoanCreditApplyNodeQuery implements Query {
private static final long serialVersionUID = 9117613683840483366L;
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
private Integer next;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyNodeVo.java

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

48
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/LoanCreditApplyTaskQuery.java

@ -0,0 +1,48 @@
package com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:06
* @Description
*/
@Data
public class LoanCreditApplyTaskQuery implements Query {
private static final long serialVersionUID = 1288615499873178778L;
/**
* 终止驳回撤回
*/
@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(PC)")
private String instanceId;
@ApiModelProperty("流程实例Id(移动)")
private String procInsId;
}

24
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealapply/flowable/SubmitLoanCreditApplyDto.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/04/13
*/
@ApiModel("提交")
@Data
public class SubmitLoanCreditApplyDto extends LoanCreditAppealApplyDto {
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

64
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeo.java

@ -0,0 +1,64 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealpeo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeo <br/>
* Description: 信用审核申诉人员表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉人员表", description = "信用审核申诉人员表")
@TableName("loan_credit_appeal_peo")
public class LoanCreditAppealPeo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("创建人接口")
private String createByName; // 创建人接口
@ApiModelProperty("姓名")
private String name; // 姓名
@ApiModelProperty("身份证号码")
private String idCard; // 身份证号码
@ApiModelProperty("手机号码")
private String phone; // 手机号码
@ApiModelProperty("主表sid")
private String mainSid; // 主表sid
}

67
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDetailsVo.java

@ -0,0 +1,67 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealpeo;
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: LoanCreditAppealPeoVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoVo <br/>
* Description: 信用审核申诉人员表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:36 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉人员表 视图数据详情", description = "信用审核申诉人员表 视图数据详情")
public class LoanCreditAppealPeoDetailsVo implements Vo {
private String sid;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("创建人接口")
private String createByName;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("身份证号码")
private String idCard;
@ApiModelProperty("手机号码")
private String phone;
@ApiModelProperty("主表sid")
private String mainSid;
}

67
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoDto.java

@ -0,0 +1,67 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealpeo;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeoDto.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto <br/>
* Description: 信用审核申诉人员表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉人员表 数据传输对象", description = "信用审核申诉人员表 数据传输对象")
public class LoanCreditAppealPeoDto implements Dto {
private String sid; // sid
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("创建人接口")
private String createByName; // 创建人接口
@ApiModelProperty("姓名")
private String name; // 姓名
@ApiModelProperty("身份证号码")
private String idCard; // 身份证号码
@ApiModelProperty("手机号码")
private String phone; // 手机号码
@ApiModelProperty("主表sid")
private String mainSid; // 主表sid
}

78
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoFeign.java

@ -0,0 +1,78 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealpeo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeoFeign.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoFeign <br/>
* Description: 信用审核申诉人员表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "信用审核申诉人员表")
@FeignClient(
contextId = "anrui-riskcenter-LoanCreditAppealPeo",
name = "anrui-riskcenter",
path = "v1/loancreditappealpeo",
fallback = LoanCreditAppealPeoFeignFallback.class)
public interface LoanCreditAppealPeoFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
public ResultBean<PagerVo<LoanCreditAppealPeoVo>> listPage(@RequestBody PagerQuery<LoanCreditAppealPeoQuery> pq);
@ApiOperation("新增或修改")
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody LoanCreditAppealPeoDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<LoanCreditAppealPeoDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
}

72
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoFeignFallback.java

@ -0,0 +1,72 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealpeo;
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;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeoFeignFallback.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoFeignFallback <br/>
* Description: 信用审核申诉人员表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class LoanCreditAppealPeoFeignFallback implements LoanCreditAppealPeoFeign {
@Override
public ResultBean<PagerVo<LoanCreditAppealPeoVo>> listPage(PagerQuery<LoanCreditAppealPeoQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-riskcenter/loancreditappealpeo/listPage无法访问");
}
@Override
public ResultBean save(LoanCreditAppealPeoDto dto){
return ResultBean.fireFail().setMsg("接口anrui-riskcenter/loancreditappealpeo/save无法访问");
}
@Override
public ResultBean delBySids( String[] sids){
return ResultBean.fireFail().setMsg("接口anrui-riskcenter/loancreditappealpeo/delBySids无法访问");
}
@Override
public ResultBean<LoanCreditAppealPeoDetailsVo> fetchDetailsBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-riskcenter/loancreditappealpeo/fetchDetailsBySid无法访问");
}
}

63
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoQuery.java

@ -0,0 +1,63 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealpeo;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeoQuery.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoQuery <br/>
* Description: 信用审核申诉人员表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉人员表 查询条件", description = "信用审核申诉人员表 查询条件")
public class LoanCreditAppealPeoQuery implements Query {
@ApiModelProperty("创建人接口")
private String createByName; // 创建人接口
@ApiModelProperty("姓名")
private String name; // 姓名
@ApiModelProperty("身份证号码")
private String idCard; // 身份证号码
@ApiModelProperty("手机号码")
private String phone; // 手机号码
@ApiModelProperty("主表sid")
private String mainSid; // 主表sid
}

65
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancreditappealpeo/LoanCreditAppealPeoVo.java

@ -0,0 +1,65 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.api.loancreditappealpeo;
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: LoanCreditAppealPeoVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoVo <br/>
* Description: 信用审核申诉人员表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "信用审核申诉人员表 视图数据对象", description = "信用审核申诉人员表 视图数据对象")
public class LoanCreditAppealPeoVo implements Vo {
private String sid; // sid
@ApiModelProperty("创建人接口")
private String createByName; // 创建人接口
@ApiModelProperty("姓名")
private String name; // 姓名
@ApiModelProperty("身份证号码")
private String idCard; // 身份证号码
@ApiModelProperty("手机号码")
private String phone; // 手机号码
@ApiModelProperty("主表sid")
private String mainSid; // 主表sid
}

70
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.java

@ -0,0 +1,70 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loancreditappealapply;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyMapper.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loancreditappealapply.LoanCreditAppealApplyMapper <br/>
* Description: 信用审核申诉表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface LoanCreditAppealApplyMapper extends BaseMapper<LoanCreditAppealApply> {
//@Update("update loan_credit_appeal_apply set name=#{msg} where id=#{id}")
//IPage<LoanCreditAppealApplyVo> voPage(IPage<LoanCreditAppealApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanCreditAppealApply> qw);
IPage<LoanCreditAppealApplyVo> selectPageVo(IPage<LoanCreditAppealApply> page, @Param(Constants.WRAPPER) Wrapper<LoanCreditAppealApply> qw);
List<LoanCreditAppealApplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<LoanCreditAppealApply> qw);
@Select("select * from loan_credit_appeal_apply")
List<LoanCreditAppealApplyVo> selectListVo();
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> map);
}

62
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyMapper.xml

@ -0,0 +1,62 @@
<?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.loancreditappealapply.LoanCreditAppealApplyMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo">
SELECT
lc.sid,
lc.`nodeState`,
lc.`useOrgName`,
lc.`applyDeptName`,
lc.`createByName`,
lc.`createTime`,
lp.`modelName`,
lp.`custTypeValue`,
IF(lp.custTypeValue = '个人',lp.custName,lp.qyName) AS khqyName,
lp.`idCard`,
lp.`phone`,
lp.`gsfkjg`,
lp.`zffkjg`,
lp.`ssjg`,
lc.`procDefId`,
lc.`procInstSid`
FROM
loan_credit_appeal_apply lc
LEFT JOIN loan_preloan_credit_apply lp
ON lc.`creditApplySid` = lp.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo"
resultType="com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo">
SELECT * FROM loan_credit_appeal_apply
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectBySid" resultType="int">
SELECT COUNT(*)
FROM loan_credit_appeal_apply
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE loan_credit_appeal_apply
SET nodeState=#{nodeState}, nodeSid=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstSid=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
</mapper>

142
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyRest.java

@ -0,0 +1,142 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loancreditappealapply;
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.loancreditappealapply.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyQuery;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDto;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyFeign;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyFeignFallback.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loancreditappealapply.LoanCreditAppealApplyRest <br/>
* Description: 信用审核申诉表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "信用审核申诉表")
@RestController("com.yxt.anrui.riskcenter.biz.loancreditappealapply.LoanCreditAppealApplyRest")
@RequestMapping("v1/loancreditappealapply")
public class LoanCreditAppealApplyRest implements LoanCreditAppealApplyFeign {
@Autowired
private LoanCreditAppealApplyService loanCreditAppealApplyService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanCreditAppealApplyVo>> listPage(@RequestBody PagerQuery<LoanCreditAppealApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<LoanCreditAppealApplyVo> pv = loanCreditAppealApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody LoanCreditAppealApplyDto dto){
return loanCreditAppealApplyService.saveOrUpdateDto(dto);
}
@Override
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
return loanCreditAppealApplyService.delAll(sids);
}
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<LoanCreditAppealApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
return loanCreditAppealApplyService.fetchDetailsVoBySid(sid);
}
@Override
public ResultBean<LoanCreditAppealApplyDetailsVo> init(String sid) {
return loanCreditAppealApplyService.init(sid);
}
@Override
public ResultBean submitLoanCreditApply(SubmitLoanCreditApplyDto dto) {
return loanCreditAppealApplyService.submitLoanCreditApply(dto);
}
@Override
public ResultBean complete(LoanCreditApplyCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.LOANCREDITAPPEALAPPLY.getProDefId());
return loanCreditAppealApplyService.complete(bv);
}
@Override
public ResultBean<List<LoanCreditApplyNodeVo>> getPreviousNodesForReject(LoanCreditApplyNodeQuery query) {
return loanCreditAppealApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<LoanCreditApplyNodeVo>> getNextNodesForSubmit(LoanCreditApplyNodeQuery query) {
return loanCreditAppealApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean reject(LoanCreditApplyTaskQuery query) {
return loanCreditAppealApplyService.reject(query);
}
@Override
public ResultBean revokeProcess(LoanCreditApplyTaskQuery query) {
return loanCreditAppealApplyService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(LoanCreditApplyTaskQuery query) {
return loanCreditAppealApplyService.breakProcess(query);
}
}

476
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealapply/LoanCreditAppealApplyService.java

@ -0,0 +1,476 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loancreditappealapply;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
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.loancreditappealapply.flowable.LoanCreditApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyTaskQuery;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.SubmitLoanCreditApplyDto;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto;
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loanpreloancreditapply.LoanPreloanCreditApplyVo;
import com.yxt.anrui.riskcenter.biz.loancreditappealpeo.LoanCreditAppealPeoService;
import com.yxt.anrui.riskcenter.biz.loanpreloancreditapply.LoanPreloanCreditApplyService;
import com.yxt.common.base.config.component.FileUploadComponent;
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 com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyQuery;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyVo;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyDto;
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApplyFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealApplyService.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loancreditappealapply.LoanCreditAppealApplyService <br/>
* Description: 信用审核申诉表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class LoanCreditAppealApplyService extends MybatisBaseService<LoanCreditAppealApplyMapper, LoanCreditAppealApply> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private LoanCreditAppealPeoService loanCreditAppealPeoService;
@Autowired
private CommonAppendixFeign commonAppendixFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanPreloanCreditApplyService loanPreloanCreditApplyService;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
public PagerVo<LoanCreditAppealApplyVo> listPageVo(PagerQuery<LoanCreditAppealApplyQuery> pq) {
LoanCreditAppealApplyQuery query = pq.getParams();
QueryWrapper<LoanCreditAppealApply> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) {
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgSidPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgSidPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("lc.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("lc.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("lc.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("lc.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("lc.createBySid", query.getUserSid());
} else {
PagerVo<LoanCreditAppealApplyVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<LoanCreditAppealApplyVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("lc.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getApplyDeptName())) {
qw.like("lc.applyDeptName", query.getApplyDeptName());
}
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("lc.createByName", query.getCreateByName());
}
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("lp.modelName", query.getModelName());
}
if (StringUtils.isNotBlank(query.getCustTypeValue())) {
qw.like("lp.custTypeValue", query.getCustTypeValue());
}
if (StringUtils.isNotBlank(query.getKhqyName())) {
qw.and(wrapper -> wrapper.like("lp.custName", query.getKhqyName()).or().like("lp.qyName", query.getKhqyName()));
}
if (StringUtils.isNotBlank(query.getIdCard())) {
qw.like("lp.idCard", query.getIdCard());
}
if (StringUtils.isNotBlank(query.getPhone())) {
qw.like("lp.phone", query.getPhone());
}
if (StringUtils.isNotBlank(query.getGsfkjg())) {
qw.like("lp.gsfkjg", query.getGsfkjg());
}
if (StringUtils.isNotBlank(query.getZffkjg())) {
qw.like("lp.zffkjg", query.getZffkjg());
}
if (StringUtils.isNotBlank(query.getSsjg())) {
qw.like("lp.ssjg", query.getSsjg());
}
if (StringUtils.isNotBlank(query.getName())) {
}
IPage<LoanCreditAppealApply> page = PagerUtil.queryToPage(pq);
IPage<LoanCreditAppealApplyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<LoanCreditAppealApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> saveOrUpdateDto(LoanCreditAppealApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
String dtoSid = dto.getSid();
List<LoanCreditAppealPeoDto> loanCreditAppealPeos = dto.getLoanCreditAppealPeos();
List<String> ssImages = dto.getSsImages();
if (StringUtils.isBlank(dtoSid)) {
String sid = this.insertByDto(dto);
for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) {
loanCreditAppealPeo.setMainSid(sid);
loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo);
}
for (String ssImage : ssImages) {
CommonAppendixDto commonAppendixDto = new CommonAppendixDto();
if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), "");
}
commonAppendixDto.setLinkSid(sid);
commonAppendixDto.setFilePath(ssImage);
commonAppendixFeign.save(commonAppendixDto);
}
return rb.success().setData(sid);
}
this.updateByDto(dto);
loanCreditAppealPeoService.delByMainSid(dtoSid);
for (LoanCreditAppealPeoDto loanCreditAppealPeo : loanCreditAppealPeos) {
loanCreditAppealPeo.setMainSid(dtoSid);
loanCreditAppealPeoService.insertByDto(loanCreditAppealPeo);
}
commonAppendixFeign.deleteFiles(dtoSid);
for (String ssImage : ssImages) {
CommonAppendixDto commonAppendixDto = new CommonAppendixDto();
if (ssImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
ssImage = ssImage.replace(fileUploadComponent.getUrlPrefix(), "");
}
commonAppendixDto.setLinkSid(dtoSid);
commonAppendixDto.setFilePath(ssImage);
commonAppendixFeign.save(commonAppendixDto);
}
return rb.success().setData(dtoSid);
}
public String insertByDto(LoanCreditAppealApplyDto dto) {
LoanCreditAppealApply entity = new LoanCreditAppealApply();
BeanUtil.copyProperties(dto, entity, "id", "sid");
entity.setNodeState("待提交");
baseMapper.insert(entity);
return entity.getSid();
}
public void updateByDto(LoanCreditAppealApplyDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
LoanCreditAppealApply entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public ResultBean<LoanCreditAppealApplyDetailsVo> fetchDetailsVoBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanCreditAppealApply entity = fetchBySid(sid);
LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo();
BeanUtil.copyProperties(entity, vo);
String creditApplySid = entity.getCreditApplySid();
LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo = loanPreloanCreditApplyService.fetchDetailsVoBySid(creditApplySid);
vo.setLoanPreloanCreditApplyDetailsVo(loanPreloanCreditApplyDetailsVo);
List<LoanCreditAppealPeoDetailsVo> loanCreditAppealPeoDetailsVos = loanCreditAppealPeoService.fetchByMainSid(sid);
vo.setLoanCreditAppealPeos(loanCreditAppealPeoDetailsVos);
List<CommonAppendixVo> data = commonAppendixFeign.selByLinkSid(sid).getData();
List<String> ssImages = new ArrayList<>();
for (CommonAppendixVo datum : data) {
ssImages.add(datum.getFilePath());
}
vo.setSsImages(ssImages);
return rb.success().setData(vo);
}
public ResultBean<LoanCreditAppealApplyDetailsVo> init(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanCreditAppealApplyDetailsVo vo = new LoanCreditAppealApplyDetailsVo();
LoanPreloanCreditApplyDetailsVo loanPreloanCreditApplyDetailsVo = loanPreloanCreditApplyService.fetchDetailsVoBySid(sid);
vo.setLoanPreloanCreditApplyDetailsVo(loanPreloanCreditApplyDetailsVo);
return rb.success().setData(vo);
}
public ResultBean delAll(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
delBySids(sids);
for (String sid : sids) {
commonAppendixFeign.deleteFiles(sid);
loanCreditAppealPeoService.delByMainSid(sid);
}
return rb.success().setMsg("删除成功");
}
public ResultBean submitLoanCreditApply(SubmitLoanCreditApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanCreditAppealApply loanCreditAppealApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanCreditAppealApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
ResultBean<String> resultBean = saveOrUpdateDto(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//用户的部门全路径sid
bv.setOrgSidPath(dto.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
appMap.put("sid", businessSid);
variables.put("app", appMap);
//流程定义id
bv.setModelId(ProcDefEnum.LOANCREDITAPPEALAPPLY.getProDefId());
bv.setFormVariables(variables);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
loanCreditAppealApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("信用审核申诉");
messageFlowableQuery.setMsgContent(loanCreditAppealApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("信用审核申诉");
messageFeign.pushMessage(messageFlowableQuery);
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(loanCreditAppealApply.getTaskId());
bv.setTaskDefKey(loanCreditAppealApply.getNodeSid());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
private synchronized int submitBusinessData(SubmitLoanCreditApplyDto dto, LoanCreditAppealApply loanCreditAppealApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanCreditAppealApply != null) {
String businessTaskId = loanCreditAppealApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanCreditAppealApply loanCreditAppealApply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
if (StringUtils.isBlank(loanCreditAppealApply.getProcDefId())){
flowProcessMapQuery.setProDefKey(bv.getModelId());
}else {
flowProcessMapQuery.setProDefKey(loanCreditAppealApply.getProcDefId());
}
flowProcessMapQuery.setVariables(variables);
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
//=======================================
bv.setFormVariables(variables);
bv.setOrgSidPath(loanCreditAppealApply.getOrgSidPath());
if (bv.getTaskId().equals(loanCreditAppealApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
loanCreditAppealApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(loanCreditAppealApply.getProcDefId());
ufVo.setProcInsId(loanCreditAppealApply.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("信用审核申诉");
messageFlowableQuery.setMsgContent(loanCreditAppealApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("信用审核申诉");
messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<LoanCreditApplyNodeVo>> getPreviousNodesForReject(LoanCreditApplyNodeQuery query) {
ResultBean<List<LoanCreditApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LoanCreditApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanCreditApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<LoanCreditApplyNodeVo>> getNextNodesForSubmit(LoanCreditApplyNodeQuery query) {
ResultBean<List<LoanCreditApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<LoanCreditApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanCreditApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean reject(LoanCreditApplyTaskQuery query) {
return null;
}
public ResultBean revokeProcess(LoanCreditApplyTaskQuery query) {
return null;
}
public ResultBean breakProcess(LoanCreditApplyTaskQuery query) {
return null;
}
}

73
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.java

@ -0,0 +1,73 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loancreditappealpeo;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoVo;
import java.util.List;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeoMapper.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loancreditappealpeo.LoanCreditAppealPeoMapper <br/>
* Description: 信用审核申诉人员表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface LoanCreditAppealPeoMapper extends BaseMapper<LoanCreditAppealPeo> {
//@Update("update loan_credit_appeal_peo set name=#{msg} where id=#{id}")
//IPage<LoanCreditAppealPeoVo> voPage(IPage<LoanCreditAppealPeo> page, @Param(Constants.WRAPPER) QueryWrapper<LoanCreditAppealPeo> qw);
IPage<LoanCreditAppealPeoVo> selectPageVo(IPage<LoanCreditAppealPeo> page, @Param(Constants.WRAPPER) Wrapper<LoanCreditAppealPeo> qw);
List<LoanCreditAppealPeoVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<LoanCreditAppealPeo> qw);
@Select("select * from loan_credit_appeal_peo")
List<LoanCreditAppealPeoVo> selectListVo();
@Delete("delete from loan_credit_appeal_peo where mainSid = #{dtoSid}")
void delByMainSid(String dtoSid);
@Select("select * from loan_credit_appeal_peo where mainSid = #{sid}")
List<LoanCreditAppealPeoDetailsVo> fetchByMainSid(String sid);
}

13
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoMapper.xml

@ -0,0 +1,13 @@
<?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.loancreditappealpeo.LoanCreditAppealPeoMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoVo">
SELECT * FROM loan_credit_appeal_peo <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoVo">
SELECT * FROM loan_credit_appeal_peo <where> ${ew.sqlSegment} </where>
</select>
</mapper>

100
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoRest.java

@ -0,0 +1,100 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loancreditappealpeo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoQuery;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoVo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoFeign;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeoFeignFallback.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loancreditappealpeo.LoanCreditAppealPeoRest <br/>
* Description: 信用审核申诉人员表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "信用审核申诉人员表")
@RestController("com.yxt.anrui.riskcenter.biz.loancreditappealpeo.LoanCreditAppealPeoRest")
@RequestMapping("v1/loancreditappealpeo")
public class LoanCreditAppealPeoRest implements LoanCreditAppealPeoFeign {
@Autowired
private LoanCreditAppealPeoService loanCreditAppealPeoService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanCreditAppealPeoVo>> listPage(@RequestBody PagerQuery<LoanCreditAppealPeoQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<LoanCreditAppealPeoVo> pv = loanCreditAppealPeoService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody LoanCreditAppealPeoDto dto){
ResultBean rb = ResultBean.fireFail();
loanCreditAppealPeoService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
loanCreditAppealPeoService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<LoanCreditAppealPeoDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
LoanCreditAppealPeoDetailsVo vo = loanCreditAppealPeoService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
}

118
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancreditappealpeo/LoanCreditAppealPeoService.java

@ -0,0 +1,118 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loancreditappealpeo;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoQuery;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoVo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDetailsVo;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoDto;
import com.yxt.anrui.riskcenter.api.loancreditappealpeo.LoanCreditAppealPeoFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: anrui-riskcenter(信用审核申诉) <br/>
* File: LoanCreditAppealPeoService.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loancreditappealpeo.LoanCreditAppealPeoService <br/>
* Description: 信用审核申诉人员表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-07-27 15:40:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class LoanCreditAppealPeoService extends MybatisBaseService<LoanCreditAppealPeoMapper, LoanCreditAppealPeo> {
private QueryWrapper<LoanCreditAppealPeo> createQueryWrapper(LoanCreditAppealPeoQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<LoanCreditAppealPeo> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<LoanCreditAppealPeoVo> listPageVo(PagerQuery<LoanCreditAppealPeoQuery> pq) {
LoanCreditAppealPeoQuery query = pq.getParams();
QueryWrapper<LoanCreditAppealPeo> qw = createQueryWrapper(query);
IPage<LoanCreditAppealPeo> page = PagerUtil.queryToPage(pq);
IPage<LoanCreditAppealPeoVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<LoanCreditAppealPeoVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(LoanCreditAppealPeoDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(LoanCreditAppealPeoDto dto){
LoanCreditAppealPeo entity = new LoanCreditAppealPeo();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(LoanCreditAppealPeoDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
LoanCreditAppealPeo entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public LoanCreditAppealPeoDetailsVo fetchDetailsVoBySid(String sid){
LoanCreditAppealPeo entity = fetchBySid(sid);
LoanCreditAppealPeoDetailsVo vo = new LoanCreditAppealPeoDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public void delByMainSid(String dtoSid) {
baseMapper.delByMainSid(dtoSid);
}
public List<LoanCreditAppealPeoDetailsVo> fetchByMainSid(String sid) {
return baseMapper.fetchByMainSid(sid);
}
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/creditreview/CreditReviewFeign.java

@ -21,7 +21,7 @@ import java.util.List;
* @Date
* @Description
*/
@Api(tags = "贷前信用审核")
@Api(tags = "贷前信用审核/信用申诉")
@FeignClient(
contextId = "terminal-CreditReview",
name = "anrui-terminal",

Loading…
Cancel
Save