Browse Source

交回车辆出库模块开发

master
fanzongzhe 1 year ago
parent
commit
3f25b0c4e1
  1. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 80
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java
  3. 53
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyDto.java
  4. 101
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java
  5. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFile.java
  6. 69
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyInit.java
  7. 49
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyQuery.java
  8. 50
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyVo.java
  9. 87
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java
  10. 16
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanUpdateApplyDto.java
  11. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinList.java
  12. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinListDto.java
  13. 72
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundDetailsVo.java
  14. 28
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundVinListVo.java
  15. 41
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundCompleteDto.java
  16. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundDelegateQuery.java
  17. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeQuery.java
  18. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeVo.java
  19. 56
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundTaskQuery.java
  20. 21
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/SubmitOutboundDto.java
  21. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVeh.java
  22. 22
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeign.java
  23. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeignFallback.java
  24. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java
  25. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java
  26. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java
  27. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java
  28. 14
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/OtherPolicyVo.java
  29. 34
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/CustomerListVo.java
  30. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java
  31. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java
  32. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeign.java
  33. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeignFallback.java
  34. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java
  35. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletInitVo.java
  36. 43
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.java
  37. 187
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.xml
  38. 107
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyRest.java
  39. 969
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java
  40. 19
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.java
  41. 22
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.xml
  42. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehRest.java
  43. 27
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehService.java
  44. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml
  45. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java
  46. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml
  47. 22
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java
  48. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java
  49. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml
  50. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java
  51. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java

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

@ -73,6 +73,7 @@ public enum ProcDefEnum {
LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"),
LOANRETUENINBOUNDAPPLY("交回车辆入库申请", "process_h0i1vnn8:1:7945004"),
LOANSUBLETAPPLY("交回车辆二次转租申请", "process_lu7pdwzs:1:7940004"),
LOANOUTBOUNDVEHAPPLY("交回车辆出库申请", ""),
/******************************测试流程id*********************************************/

80
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java

@ -0,0 +1,80 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "交回车辆出库申请", description = "交回车辆出库申请")
@TableName("loan_out_bound_apply")
@Data
public class LoanOutboundApply extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("申请人Sid")
private String applyUserSid; // 申请人
@ApiModelProperty("申请人")
private String applyName; // 申请人
@ApiModelProperty("申请日期")
private Date applyDate; // 申请日期
@ApiModelProperty("申请部门")
private String dept;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid")
private String nodeSid; // 环节定义的sid
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("taskId")
private String taskId; // taskId
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("使用组织名称")
private String useOrgName; // 使用组织名称
@ApiModelProperty("申请人组织路径")
private String orgSidPath; // 申请人组织路径
@ApiModelProperty("办结日期")
private Date closingDate;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
private String customerSid;
private String borrowerSid;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("出库价格")
private BigDecimal amount;
@ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)")
private String disposal;
@ApiModelProperty("处置方式key")
private String disposalKey;
@ApiModelProperty("新车主名称")
private String newCustomer;
@ApiModelProperty("新客户sid")
private String newCustomerSid;
@ApiModelProperty("处置申请sid")
private String applySid;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("出库日期")
private Date outboundDate;
}

53
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyDto.java

@ -0,0 +1,53 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/11/13 14:11
*/
@Data
public class LoanOutboundApplyDto implements Dto {
private String createBySid;
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("使用组织名称")
private String useOrgName; // 使用组织名称
@ApiModelProperty("组织全路径")
private String orgSidPath; // 申请人组织路径
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("原客户sid")
private String customerSid;
@ApiModelProperty("原贷款人sid")
private String borrowerSid;
@ApiModelProperty("原客户名称")
private String customer;
@ApiModelProperty("原贷款人")
private String borrowerName;
@ApiModelProperty("处置方式key")
private String disposalKey;
@ApiModelProperty("处置方式")
private String disposal;
@ApiModelProperty("处置申请sid")
private String applySid;
@ApiModelProperty("新车主名称")
private String newCustomer;
@ApiModelProperty("新客户sid")
private String newCustomerSid;
@ApiModelProperty("新客户联系电话")
private String phoneNum;
@ApiModelProperty("处置车辆列表")
private List<OutboundVinListDto> vinList = new ArrayList<>();
}

101
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFeign.java

@ -0,0 +1,101 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListQuery;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "交回车辆出库申请")
@FeignClient(
contextId = "anrui-riskcenter-LoanOutboundApply",
name = "anrui-riskcenter",
path = "v1/loanoutboundapply",
fallback = LoanOutboundFeignFallback.class)
public interface LoanOutboundApplyFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanOutboundApplyVo>> listPage(@RequestBody PagerQuery<LoanOutboundApplyQuery> pq);
@ApiOperation("保存")
@PostMapping("/saveOutbound")
@ResponseBody
public ResultBean<String> saveOutbound(@RequestBody LoanOutboundApplyDto dto);
@ApiOperation("修改")
@PostMapping("/updateOutbound")
@ResponseBody
public ResultBean<String> updateOutbound(@RequestBody LoanUpdateApplyDto dto);
@ApiOperation("详情查看")
@GetMapping("outboundDetails")
@ResponseBody
public ResultBean<LoanOutboundApplyInit> outboundDetails(@RequestParam("sid") String sid);
//------------------------------流程接口----------------------------------------------
@ApiOperation("提交")
@PostMapping("/submit")
public ResultBean submitRecordApplication(@RequestBody @Valid SubmitOutboundDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody OutboundCompleteDto dto);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody OutboundTaskQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody OutboundTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@RequestBody OutboundTaskQuery query);
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<OutboundGetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap OutboundGetNodeQuery query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<OutboundGetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap OutboundGetNodeQuery query);
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody OutboundDelegateQuery query);
//-------------------------app------------------------
@ApiOperation("详情查看")
@GetMapping("/appDetails")
@ResponseBody
public ResultBean<AppOutboundDetailsVo> appDetail(@RequestParam("sid") String sid);
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyFile.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/11/17 9:18
*/
@Data
public class LoanOutboundApplyFile {
private String filePath;
private String name;
private String size;
private String status;
private String uid;
private String url;
}

69
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyInit.java

@ -0,0 +1,69 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/11/13 13:43
*/
@Data
public class LoanOutboundApplyInit implements Vo {
private String sid;
private String userSid;
private String dept;
private String deptSid;
private String applyName;
private String applyDate;
private String orgPath;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("实例id")
private String instanceId;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("二次转租价格")
private String amount;
@ApiModelProperty("转租方案说明")
private String plan;
@ApiModelProperty("原车主是否同意")
private String agree;
@ApiModelProperty("新车主名称")
private String vinOwner;
@ApiModelProperty("客户类型key")
private String customerTypeKey;
@ApiModelProperty("客户类型")
private String customerType;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("证件地址")
private String cardAddress;
@ApiModelProperty("有效期")
private String endDate;
@ApiModelProperty("证件号码")
private String idNumber;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("新车主客户sid")
private String newCustomerSid;
private List<LoanOutboundApplyFile> files = new ArrayList<>();
private List<OutboundVinList> vinList = new ArrayList<>();
}

49
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyQuery.java

@ -0,0 +1,49 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/11/13 13:32
*/
@Data
public class LoanOutboundApplyQuery implements Query {
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("菜单url")
private String menuUrl;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("分公司")
private String company; // 使用组织名称
@ApiModelProperty("申请人")
private String applyName; // 申请人
private String applyStartDate;
private String applyEndDate;
private String closingStartDate;
private String closingEndDate;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("申请部门")
private String dept;
@ApiModelProperty("原车主是否同意0是1否")
private String agree;
}

50
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyVo.java

@ -0,0 +1,50 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/11/13 13:32
*/
@Data
public class LoanOutboundApplyVo implements Vo {
private String sid;
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("分公司")
private String company; // 使用组织名称
@ApiModelProperty("申请人")
private String applyName; // 申请人
@ApiModelProperty("申请部门")
private String dept;
@ApiModelProperty("申请日期")
private String applyDate; // 申请日期
@ApiModelProperty("办结日期")
private String closingDate;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("二次转租价格")
private String amount;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("原车主是否同意0是1否")
private String agree;
}

87
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundFeignFallback.java

@ -0,0 +1,87 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class LoanOutboundFeignFallback implements LoanOutboundApplyFeign {
@Override
public ResultBean<PagerVo<LoanOutboundApplyVo>> listPage(PagerQuery<LoanOutboundApplyQuery> pq) {
return null;
}
@Override
public ResultBean<String> saveOutbound(LoanOutboundApplyDto dto) {
return null;
}
@Override
public ResultBean<String> updateOutbound(LoanUpdateApplyDto dto) {
return null;
}
@Override
public ResultBean<LoanOutboundApplyInit> outboundDetails(String sid) {
return null;
}
@Override
public ResultBean submitRecordApplication(SubmitOutboundDto dto) {
return null;
}
@Override
public ResultBean complete(OutboundCompleteDto dto) {
return null;
}
@Override
public ResultBean revokeProcess(OutboundTaskQuery query) {
return null;
}
@Override
public ResultBean taskReject(OutboundTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(OutboundTaskQuery query) {
return null;
}
@Override
public ResultBean flowRecord(String procInsId) {
return null;
}
@Override
public ResultBean<List<OutboundGetNodeVo>> getNextNodesForSubmit(OutboundGetNodeQuery query) {
return null;
}
@Override
public ResultBean<List<OutboundGetNodeVo>> getPreviousNodesForReject(OutboundGetNodeQuery query) {
return null;
}
@Override
public ResultBean delegate(OutboundDelegateQuery query) {
return null;
}
@Override
public ResultBean<AppOutboundDetailsVo> appDetail(String sid) {
return null;
}
}

16
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanUpdateApplyDto.java

@ -0,0 +1,16 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/19 9:55
*/
@Data
public class LoanUpdateApplyDto implements Dto {
private String sid;
}

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinList.java

@ -0,0 +1,19 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/19 9:42
*/
@Data
public class OutboundVinList {
private String ledgerSid;
private String vinSid;
private String vinNo;
private String vehMark;
private String vehType;
private String vehModel;
private String busVinSid;
}

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinListDto.java

@ -0,0 +1,20 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/19 10:02
*/
@Data
public class OutboundVinListDto {
private String ledgerSid; //交回车辆台账sid
private String vinSid; //车辆sid
private String vinNo; //车架号
private String vehMark; //车牌号
private String vehType; // 车辆类型(主车/挂车)
private String vehModel; //车型
private String busVinSid; //销售订单车辆sid
private String location; //存放地点
}

72
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundDetailsVo.java

@ -0,0 +1,72 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/1/11 17:22
*/
@Data
public class AppOutboundDetailsVo {
private String sid;
private String publishInfo;
private String time; //申请日期
private List<String> files = new ArrayList<>();
private String taskId;
private String procInsId;
/**
* 本次转租金额
*/
private String amount;
/**
* 资方合同号
*/
private String bankContractNo;
/**
* 资方
*/
private String bankName;
/**
* 贷款人
*/
private String borrName;
/**
* 原车主是否同意 0是 1否
*/
private String agree;
/**
* 客户名称
*/
private String custName;
/**
* 贷款合同号
*/
private String loanContractNo;
/**
* 转租方案说明
*/
private String plan;
/**
* 车辆列表
*/
private List<AppOutboundVinListVo> vinList = new ArrayList<>();
@ApiModelProperty("新车主名称")
private String vinOwner;
@ApiModelProperty("客户类型")
private String customerType;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("证件地址")
private String cardAddress;
@ApiModelProperty("有效期")
private String endDate;
@ApiModelProperty("证件号码")
private String idNumber;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
}

28
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundVinListVo.java

@ -0,0 +1,28 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply.app;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/11 17:35
*/
@Data
public class AppOutboundVinListVo {
/**
* 车型
*/
private String model;
/**
* 车牌号
*/
private String vehMark;
/**
* 车辆类型
*/
private String vehType;
/**
* 车架号
*/
private String vinNo;
}

41
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundCompleteDto.java

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

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundDelegateQuery.java

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

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeQuery.java

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

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundGetNodeVo.java

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

56
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/OutboundTaskQuery.java

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

21
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/flow/SubmitOutboundDto.java

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

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVeh.java

@ -0,0 +1,37 @@
package com.yxt.anrui.riskcenter.api.loanoutboundveh;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "车辆二次转租车辆列表", description = "车辆二次转租车辆列表")
@TableName("loan_sublet_veh")
@Data
public class LoanOutboundVeh extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("申请表sid")
private String mainSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车辆订单业务sid")
private String busVinSid;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("主车/挂车")
private String vehType;
@ApiModelProperty("车型")
private String vehModel;
@ApiModelProperty("交回车辆台账sid")
private String ledgerSid;
}

22
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeign.java

@ -0,0 +1,22 @@
package com.yxt.anrui.riskcenter.api.loanoutboundveh;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "交车车辆出库车辆列表")
@FeignClient(
contextId = "anrui-riskcenter-LoanOutboundVeh",
name = "anrui-riskcenter",
path = "v1/loanoutboundveh",
fallback = LoanOutboundVehFeignFallback.class)
public interface LoanOutboundVehFeign {
}

11
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVehFeignFallback.java

@ -0,0 +1,11 @@
package com.yxt.anrui.riskcenter.api.loanoutboundveh;
import org.springframework.stereotype.Component;
@Component
public class LoanOutboundVehFeignFallback implements LoanOutboundVehFeign {
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApply.java

@ -52,6 +52,8 @@ public class LoanRedemptionApply extends BaseEntity {
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
private String customerSid;
private String borrowerSid;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyDto.java

@ -24,6 +24,8 @@ public class LoanRedemptionApplyDto implements Dto {
private String applyName;
private String applyDate;
private String orgPath;
private String customerSid;
private String borrowerSid;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/LoanRedemptionApplyInit.java

@ -68,6 +68,8 @@ public class LoanRedemptionApplyInit implements Vo {
private String beOverdueMoneyAndPeriod; // 逾期金额换算期数
private String busVinSid; //催收记录
private String rksqSid; //入库申请sid
private String customerSid;
private String borrowerSid;
private List<LoanRedemptionApplyFile> files = new ArrayList<>();
private List<RedemptionVinList> vinList = new ArrayList<>();

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanredemptionapply/RedemptionInitVo.java

@ -29,4 +29,6 @@ public class RedemptionInitVo {
private String vehMark;
private String vehType;
private String vehModel;
private String customerSid;
private String borrowerSid;
}

14
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/OtherPolicyVo.java

@ -0,0 +1,14 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/19 15:18
*/
@Data
public class OtherPolicyVo {
private String otherBankName;
private String otherPolicyName;
}

34
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/CustomerListVo.java

@ -0,0 +1,34 @@
package com.yxt.anrui.riskcenter.api.loansubletapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/19 10:46
*/
@Data
public class CustomerListVo {
@ApiModelProperty("名称")
private String vinOwner;
@ApiModelProperty("客户类型key")
private String customerTypeKey;
@ApiModelProperty("客户类型")
private String customerType;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("证件地址")
private String cardAddress;
@ApiModelProperty("有效期")
private String endDate;
@ApiModelProperty("证件号码")
private String idNumber;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("新车主客户sid")
private String newCustomerSid;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java

@ -82,5 +82,7 @@ public class LoanSubletApply extends BaseEntity {
private String certificateType;
@ApiModelProperty("新车主客户sid")
private String newCustomerSid;
private String customerSid;
private String borrowerSid;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java

@ -23,6 +23,8 @@ public class LoanSubletApplyDto implements Dto {
private String applyName;
private String applyDate;
private String orgPath;
private String customerSid;
private String borrowerSid;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeign.java

@ -38,6 +38,12 @@ public interface LoanSubletApplyFeign {
@PostMapping("/getVinList")
public ResultBean<PagerVo<SubletVinListVo>> getVinList(@RequestBody PagerQuery<SubletVinListQuery> pq);
@ApiOperation("获取客户列表")
@GetMapping("/pickCustomer")
@ResponseBody
public ResultBean<List<CustomerListVo>> pickCustomer(@RequestParam("orgPath") String orgPath);
@ApiOperation("新增初始化")
@GetMapping("/subletInit")
@ResponseBody

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyFeignFallback.java

@ -25,6 +25,11 @@ public class LoanSubletApplyFeignFallback implements LoanSubletApplyFeign {
return null;
}
@Override
public ResultBean<List<CustomerListVo>> pickCustomer(String orgPath) {
return null;
}
@Override
public ResultBean<LoanSubletApplyInit> subletInit(String ledgerSid) {
return null;

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java

@ -23,6 +23,8 @@ public class LoanSubletApplyInit implements Vo {
private String applyName;
private String applyDate;
private String orgPath;
private String customerSid;
private String borrowerSid;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("实例id")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/SubletInitVo.java

@ -28,4 +28,6 @@ public class SubletInitVo {
private String vehType;
private String vehModel;
private String pSid;
private String customerSid;
private String borrowerSid;
}

43
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.java

@ -0,0 +1,43 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundapply;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApply;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList;
import com.yxt.anrui.riskcenter.api.loansubletapply.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
@Mapper
public interface LoanOutboundApplyMapper extends BaseMapper<LoanOutboundApply> {
IPage<LoanSubletApplyVo> listPage(IPage<LoanSubletApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanSubletApply> qw);
IPage<SubletVinListVo> getVinList(IPage<SubletVinListVo> page, @Param(Constants.WRAPPER) QueryWrapper<SubletVinListQuery> qw);
RedemptionInitVo redemptionInit(@Param("ledgerSid") String ledgerSid);
RedemptionVinList selTrailerByLedgerSid(@Param("ledgerSid") String ledgerSid);
int updateFlowFiled(Map<String, Object> map);
SubletInitVo selReturnLegerBySid(@Param("ledgerSid") String ledgerSid);
SubletInitVo selLoanInfoByMainVeh(@Param("busVinSid") String busVinSid);
SubletVinList selReturnVinLegerBySid(@Param("ledgerSid") String ledgerSid);
SubletVinList selReturnTrVinLegerByPSid(@Param("ledgerSid")String ledgerSid);
SubletInitVo selLoanInfoByTrVeh(@Param("ledgerSid")String ledgerSid);
SubletVinList selReturnTrVinLegerBySid(@Param("ledgerSid")String ledgerSid);
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
}

187
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.xml

@ -0,0 +1,187 @@
<?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.loanoutboundapply.LoanOutboundApplyMapper">
<update id="updateFlowFiled">
UPDATE loan_out_bound_apply
SET nodeState=#{nodeState}
, nodeSid=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid = #{sid}
</update>
<select id="listPage" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyVo">
SELECT
*
FROM
(
SELECT
sa.sid,
sa.isDelete,
sa.nodeState,
sa.agree,
sa.useOrgSid,
sa.createBySid,
sa.orgSidPath,
sa.useOrgName AS company,
sa.dept,
sa.applyName,
date_format( sa.applyDate, '%Y-%m-%d' ) AS applyDate,
sa.procDefId,
sa.procInstId,
date_format( sa.closingDate, '%Y-%m-%d' ) AS closingDate,
sa.loanContractNo,
sa.bankName,
sa.bankContractNo,
sa.borrowerName,
sa.customer,
sa.amount,
( SELECT count(*) FROM loan_sublet_veh h WHERE mainSid = sa.sid ) AS `count`,
v.vehType,
v.vinNo,
v.vehMark
FROM
loan_sublet_apply AS sa
LEFT JOIN loan_sublet_veh AS v ON sa.sid = v.mainSid
) a
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getVinList" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinListVo">
SELECT
v.sid ledgerSid,
v.vinNo,
v.vehMark,
v.vehModel,
v.customer,
v.borrowerName,
v.vehType,
l.bankName
FROM
loan_return_veh_ledger AS v
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as b ON v.busVinSid = b.sid
LEFT JOIN anrui_buscenter.bus_sales_order_loancontract as l ON b.loanContractSid = l.sid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="redemptionInit" resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo">
SELECT a.*,
c.bankName,
c.bankContractNo,
c.loanContractNo
FROM (SELECT v.sid ledgerSid,
v.vinNo,
v.vinSid,
v.vehMark,
v.vehModel,
v.customer,
v.vehType,
v.location,
v.borrowerName,
(SELECT b.sid
FROM anrui_buscenter.bus_sales_order_vehicle as b
WHERE b.linkSid = v.vinSid
and b.borrowerSid = v.borrowerSid) as busVinSid,
(SELECT b.loanContractSid
FROM anrui_buscenter.bus_sales_order_vehicle as b
WHERE b.linkSid = v.vinSid
and b.borrowerSid = v.borrowerSid) as loanContractSid
FROM loan_return_veh_ledger as v) a
LEFT JOIN anrui_buscenter.bus_sales_order_loancontract as c ON c.sid = a.loanContractSid
WHERE a.ledgerSid = #{ledgerSid}
</select>
<select id="selTrailerByLedgerSid"
resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList">
SELECT vinSid,
vinNo,
vehMark,
vehType,
vehModel
FROM loan_return_trailer_ledger as t
WHERE t.mainSid = #{ledgerSid}
</select>
<select id="selReturnLegerBySid" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletInitVo">
SELECT sid legerSid,
customer,
borrowerName,
busVinSid,
vehType,
pSid
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
<select id="selLoanInfoByMainVeh" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletInitVo">
SELECT l.bankName,
l.bankContractNo,
l.loanContractNo
FROM anrui_buscenter.bus_sales_order_loancontract as l
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as b
ON l.sid = b.loanContractSid
WHERE b.sid = #{busVinSid}
</select>
<select id="selReturnVinLegerBySid"
resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList">
SELECT sid ledgerSid,
vinSid,
vinNo,
vehMark,
vehType,
vehModel,
busVinSid
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
<select id="selReturnTrVinLegerByPSid"
resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList">
SELECT sid ledgerSid,
vinSid,
vinNo,
vehMark,
vehType,
vehModel,
busVinSid
FROM loan_return_veh_ledger
WHERE pSid = #{ledgerSid}
and disposal = '未处置'
and stockState = '库存'
</select>
<select id="selLoanInfoByTrVeh" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletInitVo">
SELECT l.bankName,
l.bankContractNo,
l.loanContractNo
FROM anrui_buscenter.bus_sales_order_loancontract as l
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as b
ON l.sid = b.loanContractSid
WHERE b.sid = (SELECT busVinSid
FROM loan_return_veh_ledger
WHERE sid = (SELECT pSid FROM loan_return_veh_ledger WHERE sid = #{ledgerSid}))
</select>
<select id="selReturnTrVinLegerBySid"
resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList">
SELECT sid ledgerSid,
vinSid,
vinNo,
vehMark,
vehType,
vehModel,
busVinSid
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
<select id="selVehDisposal" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.VehDisposal">
SELECT sid,
disposalKey,
disposal
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
</mapper>

107
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyRest.java

@ -0,0 +1,107 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.*;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*;
import com.yxt.anrui.riskcenter.api.loansubletapply.*;
import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletDetailsVo;
import com.yxt.anrui.riskcenter.api.loansubletapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "交回车辆出库申请")
@RestController
@RequestMapping("v1/loanoutboundapply")
public class LoanOutboundApplyRest implements LoanOutboundApplyFeign {
@Autowired
private LoanOutboundApplyService loanOutboundApplyService;
@Override
public ResultBean<PagerVo<LoanOutboundApplyVo>> listPage(PagerQuery<LoanOutboundApplyQuery> pq) {
ResultBean<PagerVo<LoanOutboundApplyVo>> rb = ResultBean.fireFail();
PagerVo<LoanOutboundApplyVo> pv = loanOutboundApplyService.listPage(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<String> saveOutbound(LoanOutboundApplyDto dto) {
return loanOutboundApplyService.saveOutbound(dto);
}
@Override
public ResultBean<String> updateOutbound(LoanUpdateApplyDto dto) {
return loanOutboundApplyService.updateOutbound(dto);
}
@Override
public ResultBean<LoanOutboundApplyInit> outboundDetails(String sid) {
return loanOutboundApplyService.outboundDetails(sid);
}
@Override
public ResultBean submitRecordApplication(SubmitOutboundDto dto) {
return loanOutboundApplyService.submitRecordApplication(dto);
}
@Override
public ResultBean complete(OutboundCompleteDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setModelId(ProcDefEnum.LOANOUTBOUNDVEHAPPLY.getProDefId());
return loanOutboundApplyService.complete(bv);
}
@Override
public ResultBean revokeProcess(OutboundTaskQuery query) {
return loanOutboundApplyService.revokeProcess(query);
}
@Override
public ResultBean taskReject(OutboundTaskQuery query) {
return loanOutboundApplyService.taskReject(query);
}
@Override
public ResultBean breakProcess(OutboundTaskQuery query) {
return loanOutboundApplyService.breakProcess(query);
}
@Override
public ResultBean flowRecord(String procInsId) {
return loanOutboundApplyService.flowRecord(procInsId);
}
@Override
public ResultBean<List<OutboundGetNodeVo>> getNextNodesForSubmit(OutboundGetNodeQuery query) {
return loanOutboundApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean<List<OutboundGetNodeVo>> getPreviousNodesForReject(OutboundGetNodeQuery query) {
return loanOutboundApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean delegate(OutboundDelegateQuery query) {
return loanOutboundApplyService.delegate(query);
}
@Override
public ResultBean<AppOutboundDetailsVo> appDetail(String sid) {
return loanOutboundApplyService.appDetail(sid);
}
}

969
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java

@ -0,0 +1,969 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.*;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh;
import com.yxt.anrui.riskcenter.api.loansubletapply.*;
import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletDetailsVo;
import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletVinListVo;
import com.yxt.anrui.riskcenter.api.loansubletapply.flow.*;
import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh;
import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanoutboundveh.LoanOutboundVehService;
import com.yxt.anrui.riskcenter.biz.loanredemptionapply.LoanRedemptionApplyService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loansubletveh.LoanSubletVehService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: fzz
* @date: 2023/7/6
**/
@Service
public class LoanOutboundApplyService extends MybatisBaseService<LoanOutboundApplyMapper, LoanOutboundApply> {
@Autowired
private MessageFeign messageFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private LoanRepaymentHistoryService loanRepaymentHistoryService;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private LoanBuckleApplyRecordService loanBuckleApplyRecordService;
@Autowired
private LoanFileService loanFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private FlowFeign flowFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanRedemptionApplyService loanRedemptionApplyService;
@Autowired
private LoanSubletVehService loanSubletVehService;
@Autowired
private LoanOutboundVehService loanOutboundVehService;
public PagerVo<LoanOutboundApplyVo> listPage(PagerQuery<LoanOutboundApplyQuery> pq) {
return null;
// IPage<LoanSubletApply> page = PagerUtil.queryToPage(pq);
// LoanSubletApplyQuery pagerQuery = pq.getParams();
// QueryWrapper<LoanSubletApply> qw = new QueryWrapper<>();
// //=======================
// PrivilegeQuery privilegeQuery = new PrivilegeQuery();
// privilegeQuery.setOrgPath(pagerQuery.getOrgPath());
// privilegeQuery.setMenuSid(pagerQuery.getMenuSid());
// privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl());
// privilegeQuery.setUserSid(pagerQuery.getUserSid());
// ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
// if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
// //数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
// String orgSidPath = pagerQuery.getOrgPath();
// orgSidPath = orgSidPath + "/";
// int i1 = orgSidPath.indexOf("/");
// int i2 = orgSidPath.indexOf("/", i1 + 1);
// int i3 = orgSidPath.indexOf("/", i2 + 1);
// int i4 = orgSidPath.indexOf("/", i3 + 1);
// String orgLevelKey = defaultIdReltBean.getData();
// if ("1".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, i1);
// qw.like("a.orgSidPath", orgSidPath);
// } else if ("2".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, i2);
// qw.like("a.orgSidPath", orgSidPath);
// } else if ("3".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, i3);
// qw.like("a.orgSidPath", orgSidPath);
// } else if ("4".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, i4);
// qw.like("a.orgSidPath", orgSidPath);
// } else if ("5".equals(orgLevelKey)) {
// qw.eq("a.createBySid", pagerQuery.getUserSid());
// } else {
// PagerVo<LoanSubletApplyVo> p = new PagerVo<>();
// return p;
// }
// } else {
// PagerVo<LoanSubletApplyVo> p = new PagerVo<>();
// return p;
// }
// //=======================
// //分公司
// if (StringUtils.isNotBlank(pagerQuery.getCompany())) {
// qw.like("a.company", pagerQuery.getCompany());
// }
// //申请人
// if (StringUtils.isNotBlank(pagerQuery.getApplyName())) {
// qw.like("a.applyName", pagerQuery.getApplyName());
// }
// //申请部门
// if (StringUtils.isNotBlank(pagerQuery.getDept())) {
// qw.like("a.dept", pagerQuery.getDept());
// }
// //消贷合同号
// if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) {
// qw.like("a.loanContractNo", pagerQuery.getLoanContractNo());
// }
// //资方
// if (StringUtils.isNotBlank(pagerQuery.getBankName())) {
// qw.like("a.bankName", pagerQuery.getBankName());
// }
// //资方合同号
// if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) {
// qw.like("a.bankContractNo", pagerQuery.getBankContractNo());
// }
// //客户名称
// if (StringUtils.isNotBlank(pagerQuery.getCustomer())) {
// qw.like("a.customer", pagerQuery.getCustomer());
// }
// //贷款人
// if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) {
// qw.like("a.borrowerName", pagerQuery.getBorrowerName());
// }
// //车架号
// if (StringUtils.isNotBlank(pagerQuery.getVinNo())) {
// qw.like("a.vinNo", pagerQuery.getVinNo());
// }
// //车牌号
// if (StringUtils.isNotBlank(pagerQuery.getVehMark())) {
// qw.like("a.vehMark", pagerQuery.getVehMark());
// }
// //车架号
// if (StringUtils.isNotBlank(pagerQuery.getAgree())) {
// qw.like("a.agree", pagerQuery.getAgree());
// }
// String applyStartTime = pagerQuery.getApplyStartDate();
// String applyEndTime = pagerQuery.getApplyEndDate();
// qw.apply(StringUtils.isNotEmpty(applyStartTime), "date_format (a.applyDate,'%Y-%m-%d') >= date_format('" + applyStartTime + "','%Y-%m-%d')").
// apply(StringUtils.isNotEmpty(applyEndTime), "date_format (a.applyDate,'%Y-%m-%d') <= date_format('" + applyEndTime + "','%Y-%m-%d')"
// );
// String closingStartDate = pagerQuery.getClosingStartDate();
// String closingEndDate = pagerQuery.getClosingEndDate();
// qw.apply(StringUtils.isNotEmpty(closingStartDate), "date_format (a.closingDate,'%Y-%m-%d') >= date_format('" + closingStartDate + "','%Y-%m-%d')").
// apply(StringUtils.isNotEmpty(closingEndDate), "date_format (a.closingDate,'%Y-%m-%d') <= date_format('" + closingEndDate + "','%Y-%m-%d')"
// );
// qw.eq("a.isDelete", 0);
// qw.orderByDesc("a.applyDate");
// qw.apply("(a.count > 1 AND a.vehType = '主车' ) OR (a.count = 1)");
// IPage<LoanSubletApplyVo> pagging = baseMapper.listPage(page, qw);
// PagerVo<LoanSubletApplyVo> p = PagerUtil.pageToVo(pagging, null);
// return p;
}
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> saveOutbound(LoanOutboundApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanOutboundApply entity = new LoanOutboundApply();
BeanUtil.copyProperties(dto, entity, "id", "sid");
List<OutboundVinListDto> vinList = dto.getVinList();
if (!vinList.isEmpty()) {
vinList.stream().forEach(v -> {
LoanOutboundVeh loanOutboundVeh = new LoanOutboundVeh();
BeanUtil.copyProperties(v, loanOutboundVeh, "id", "sid");
loanOutboundVeh.setMainSid(entity.getSid());
loanOutboundVehService.insert(loanOutboundVeh);
});
}
return rb.success().setData(entity.getSid());
}
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> updateOutbound(LoanUpdateApplyDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = "";
// if (StringUtils.isNotBlank(dto.getSid())) {
// sid = dto.getSid();
// LoanSubletApply updateEntity = fetchBySid(sid);
// if (null != updateEntity) {
// BeanUtil.copyProperties(dto, updateEntity, "id", "sid");
// baseMapper.updateById(updateEntity);
// loanSubletVehService.deleteByMainSid(sid);
// //删除附件表中关于该linkSid的文件
// loanFileService.deleteByLinkSid(sid);
// List<LoanSubletApplyFile> filess = dto.getFiles();
// if (!filess.isEmpty()) {
// List<String> files = new ArrayList<>();
// for (LoanSubletApplyFile file : filess) {
// files.add(file.getUrl());
// }
// loanFileService.saveAll(sid, files, LoanFileEnum.SUBLETAPPLY.getAttachType());
// }
// List<SubletVinList> vinList = dto.getVinList();
// if (!vinList.isEmpty()) {
// for (SubletVinList record : vinList) {
// LoanSubletVeh subletVeh = new LoanSubletVeh();
// BeanUtil.copyProperties(record, subletVeh, "id", "sid");
// subletVeh.setMainSid(sid);
// loanSubletVehService.insert(subletVeh);
// }
// }
// }
// } else {
// LoanSubletApply apply = new LoanSubletApply();
// sid = apply.getSid();
// BeanUtil.copyProperties(dto, apply, "id", "sid");
// apply.setCreateBySid(dto.getUserSid());
// apply.setOrgSidPath(dto.getOrgPath());
// ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath());
// if (orgSidByPath.getSuccess()) {
// String userOrgSid = orgSidByPath.getData();
// apply.setUseOrgSid(userOrgSid);
// ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid);
// if (organizationVo.getSuccess()) {
// SysOrganizationVo organizationVoData = organizationVo.getData();
// if (null != organizationVoData) {
// apply.setUseOrgName(organizationVoData.getName());
// }
// }
// }
// apply.setNodeState("待提交");
// baseMapper.insert(apply);
// List<SubletVinList> vinList = dto.getVinList();
// if (!vinList.isEmpty()) {
// for (SubletVinList record : vinList) {
// LoanSubletVeh subletVeh = new LoanSubletVeh();
// BeanUtil.copyProperties(record, subletVeh, "id", "sid");
// subletVeh.setMainSid(sid);
// loanSubletVehService.insert(subletVeh);
// }
// }
// //删除附件表中关于该linkSid的文件
// loanFileService.deleteByLinkSid(sid);
// List<LoanSubletApplyFile> filess = dto.getFiles();
// if (!filess.isEmpty()) {
// List<String> files = new ArrayList<>();
// for (LoanSubletApplyFile file : filess) {
// files.add(file.getUrl());
// }
// loanFileService.saveAll(sid, files, LoanFileEnum.SUBLETAPPLY.getAttachType());
// }
// }
return rb.success().setData(sid);
}
public ResultBean<LoanOutboundApplyInit> outboundDetails(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanOutboundApplyInit vo = new LoanOutboundApplyInit();
// LoanSubletApply entity = fetchBySid(sid);
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// if (null != entity) {
// BeanUtil.copyProperties(entity, vo);
// if (null != entity.getApplyDate()) {
// vo.setApplyDate(sdf.format(entity.getApplyDate()));
// }
// if (StringUtils.isNotBlank(entity.getProcInstId())) {
// vo.setInstanceId(entity.getProcInstId());
// }
// if (StringUtils.isNotBlank(entity.getCreateBySid())) {
// vo.setUserSid(entity.getCreateBySid());
// }
// if (StringUtils.isNotBlank(entity.getOrgSidPath())) {
// vo.setOrgPath(entity.getOrgSidPath());
// }
// List<SubletVinList> vinLists = loanSubletVehService.selByMainSid(sid);
// if (!vinLists.isEmpty()) {
// vo.setVinList(vinLists);
// }
// List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.SUBLETAPPLY.getAttachType());
// fileList.removeAll(Collections.singleton(null));
// if (!fileList.isEmpty()) {
// List<String> files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
// collect(Collectors.toList());
// List<LoanSubletApplyFile> applyFiles = new ArrayList<>();
// for (String file : files) {
// LoanSubletApplyFile applyFile = new LoanSubletApplyFile();
// applyFile.setUrl(file);
// applyFiles.add(applyFile);
// }
// vo.setFiles(applyFiles);
// }
// }
return rb.success().setData(vo);
}
//-------------------------------------流程------------------------------------------------/
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitOutboundDto dto, LoanOutboundApply loanOutboundApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanOutboundApply != null) {
String businessTaskId = loanOutboundApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean submitRecordApplication(SubmitOutboundDto dto) {
ResultBean rb = ResultBean.fireFail();
// LoanSubletApply loanSubletApply = fetchBySid(dto.getSid());
// int r = submitBusinessData(dto, loanSubletApply);
// if (r == 3) {
// return rb.setMsg("该申请不存在");
// }
// if (r == 0) {
// return rb.setMsg("操作失败!提交的数据不一致");
// }
// List<SubletVinList> dtoVinList = dto.getVinList();
// if (!dtoVinList.isEmpty()) {
// for (SubletVinList v : dtoVinList) {
// VehDisposal vehDisposal = baseMapper.selVehDisposal(v.getLedgerSid());
// if (null != vehDisposal) {
// if (!vehDisposal.getDisposal().equals("未处置")) {
// return rb.setMsg("当前所选车辆不是未处置状态,无法提交!");
// }
// }
// }
// }
// String businessSid = "";
// //新增修改保存
// ResultBean<String> resultBean = saveSublet(dto);
// if (resultBean.getSuccess()) {
// businessSid = resultBean.getData();
// } else {
// return rb.setMsg(resultBean.getMsg());
// }
// //提交之后修改车辆台账
// List<SubletVinList> vinLists1 = loanSubletVehService.selByMainSid(businessSid);
// if (!vinLists1.isEmpty()) {
// vinLists1.stream().forEach(v -> {
// loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "04", "二次转租");
// });
// }
// LoanSubletApply entity = fetchBySid(businessSid);
// String orgSidPath = "";
// if (StringUtils.isNotBlank(entity.getOrgSidPath())) {
// orgSidPath = entity.getOrgSidPath();
// } else {
// SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData();
// if (null != data) {
// //根据staffSid获取用户的组织全路径
// ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid());
// if (!staffOrgResultBean.getSuccess()) {
// return rb.setMsg(staffOrgResultBean.getMsg());
// }
// //用户的组织全路径
// orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
// }
// }
// List<String> orgPathList = Arrays.asList(orgSidPath.split("/"));
// SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
// if (sysOrganization == null) {
// return rb.setMsg("当前所在的组织机构不存在");
// }
// if (StringUtils.isBlank(sysOrganization.getManagerSid())) {
//// return rb.setMsg("当前所在的组织机构未设置主管人员");
// sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
// }
// //创建BusinessVariables实体对象
// BusinessVariables bv = new BusinessVariables();
// //流程中的参数赋值
// Map<String, Object> variables = BeanUtil.beanToMap(dto);
// Map<String, Object> appMap = new HashMap<>();
// //若有网关,则赋值网关中判断的字段。
//// boolean isTure = true;
//// //去查询是否同意
//// if (StringUtils.isNotBlank(entity.getSalesUserSid())) {
//// if (!entity.getCreateBySid().equals(entity.getSalesUserSid())) {
//// isTure = false;
//// }
//// }
//// variables.put("isTure", isTure);
// variables.put("businessSid", businessSid);
// appMap.put("sid", businessSid);
// variables.put("app", appMap);
//// String orderNames = "<" + entity.getCustomer() + ">" + "欠款客户备案";
//// variables.put("orderNames", orderNames);
// LoanSubletApply loanSubletApply1 = fetchBySid(businessSid);
// String msgBusinessSid = loanSubletApply1.getSid();
// //用户的部门全路径sid
// bv.setOrgSidPath(loanSubletApply1.getOrgSidPath());
// //业务sid
// bv.setBusinessSid(businessSid);
// //用户sid
// bv.setUserSid(dto.getUserSid());
// bv.setFormVariables(variables);
// String nextNodeUserSids_ = sysOrganization.getManagerSid();
// bv.setNextNodeUserSids(nextNodeUserSids_);
//// if (isTure) {
//// bv.setNextNodeUserSids(nextNodeUserSids_);
//// } else {
//// bv.setNextNodeUserSids(entity.getSalesUserSid());
//// }
// //流程定义id
// bv.setModelId(ProcDefEnum.LOANSUBLETAPPLY.getProDefId());
// if (r == 1) {
// //流程定义id
// bv.setModelId(ProcDefEnum.LOANSUBLETAPPLY.getProDefId());
// ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
// if (!voResultBean.getSuccess()) {
// return rb.setMsg(voResultBean.getMsg());
// }
// UpdateFlowFieldVo ufVo = voResultBean.getData();
// int i = updateFlowFiled(BeanUtil.beanToMap(ufVo));
// //==================================添加线程
// try {
// ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
// .setNameFormat("demo-pool-%d").build();
// ExecutorService pool = new ThreadPoolExecutor(2, 100,
// 0L, TimeUnit.MILLISECONDS,
// new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
// Future future1 = pool.submit(() -> {
// //极光推送
// MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
// MessageFlowVo messageFlowVo = new MessageFlowVo();
// BeanUtil.copyProperties(ufVo, messageFlowVo);
// messageFlowableQuery.setUfVo(messageFlowVo);
// messageFlowableQuery.setAppMap(appMap);
// messageFlowableQuery.setBusinessSid(msgBusinessSid);
// messageFlowableQuery.setModuleName("交回车辆二次转租申请");
// SysUserVo userVo = sysUserFeign.fetchBySid(loanSubletApply1.getCreateBySid()).getData();
// if (userVo != null) {
// if (StringUtils.isNotBlank(userVo.getName())) {
// messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
// }
// }
// messageFlowableQuery.setMsgTitle("交回车辆二次转租申请");
// ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// });
// } catch (Exception e) {
// e.printStackTrace();
// }
// //==================================添加线程
// return voResultBean;
// }
// if (r == 2) {
// // ToDo:驳回到发起人后再次提交
// if (StringUtils.isBlank(dto.getInstanceId())) {
// return rb.setMsg("参数错误:instanceId");
// }
// LoanSubletApply loanSubletApply2 = fetchBySid(dto.getSid());
// bv.setTaskId(dto.getTaskId());
// bv.setTaskDefKey(loanSubletApply2.getNodeSid());
// bv.setComment("重新提交");
// bv.setInstanceId(dto.getInstanceId());
// return complete(bv);
// }
return rb;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
return null;
// String businessSid = bv.getBusinessSid();
// LoanSubletApply loanSubletApply = this.fetchBySid(businessSid);
// if (bv.getTaskId().equals(loanSubletApply.getTaskId())) {
// bv.setOrgSidPath(loanSubletApply.getOrgSidPath());
// //流程中的参数赋值
// Map<String, Object> variables = new HashMap<>();
// Map<String, Object> appMap = new HashMap<>();
// //若有网关,则赋值网关中判断的字段。
//// boolean isTure = true;
//// //去查询是否同意
//// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
//// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
//// isTure = false;
//// }
//// }
//// variables.put("isTure", isTure);
//// if (bv.getTaskDefKey().equals("Activity_1078xxs")) {
//// if (StringUtils.isNotBlank(loanCustomerRecord.getManageSid())) {
//// bv.setNextNodeUserSids(loanCustomerRecord.getManageSid());
//// } else {
//// bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
//// }
//// }
// variables.put("businessSid", businessSid);
// appMap.put("sid", businessSid);
// variables.put("app", appMap);
// bv.setFormVariables(variables);
// ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// UpdateFlowFieldVo ufVo = resultBean.getData();
// int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
// if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
// LoanSubletApply subletApply = fetchBySid(businessSid);
// subletApply.setClosingDate(new DateTime());
// baseMapper.updateById(subletApply);
// //todo 修改交车车辆台账状态
// } else {
// //极光推送
// loanSubletApply = fetchBySid(businessSid);
// MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
// MessageFlowVo messageFlowVo = new MessageFlowVo();
// BeanUtil.copyProperties(ufVo, messageFlowVo);
// messageFlowVo.setProcDefId(loanSubletApply.getProcDefId());
// messageFlowVo.setProcInsId(loanSubletApply.getProcInstId());
// messageFlowableQuery.setUfVo(messageFlowVo);
// messageFlowableQuery.setAppMap(appMap);
// messageFlowableQuery.setBusinessSid(businessSid);
// messageFlowableQuery.setModuleName("交回车辆二次转租申请");
// messageFlowableQuery.setMsgContent(loanSubletApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
// messageFlowableQuery.setMsgTitle("交回车辆二次转租申请");
// ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// }
// return rb.success().setData(resultBean.getData());
// } else {
// return rb.setMsg("操作失败!提交的数据不一致");
// }
}
/**
* 撤回
*
* @param query
* @return
*/
public ResultBean revokeProcess(OutboundTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
// if (StringUtils.isBlank(query.getUserSid())) {
// return rb.setMsg("参数错误:userSid");
// }
// LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid());
// String businessTaskId = loanSubletApply.getTaskId();
// if (StringUtils.isNotBlank(businessTaskId)) {
// if (businessTaskId.equals(query.getTaskId())) {
// FlowTaskVo flowTaskVo = new FlowTaskVo();
// BeanUtil.copyProperties(query, flowTaskVo);
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
// loanSubletApply = fetchBySid(query.getBusinessSid());
// String procId = loanSubletApply.getProcInstId();
// ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
// String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
// String nextName = listResultBean.getData().get(0).getName_();
// List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if ("发起申请".equals(nextName)) {
// //退回车辆处置状态
// List<SubletVinList> vinLists1 = loanSubletVehService.selByMainSid(query.getBusinessSid());
// if (!vinLists1.isEmpty()) {
// vinLists1.stream().forEach(v -> {
// loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
// });
// }
// }
// return rb.success().setData(resultBean.getData());
// }
// }
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean taskReject(OutboundTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
// String businessSid = query.getBusinessSid();
// LoanSubletApply loanSubletApply = fetchBySid(businessSid);
// if (loanSubletApply == null) {
// return rb.setMsg("该申请不存在");
// }
// String businessTaskId = loanSubletApply.getTaskId();
// if (StringUtils.isNotBlank(businessTaskId)) {
// if (businessTaskId.equals(query.getTaskId())) {
// if (StringUtils.isBlank(query.getComment())) {
// return rb.setMsg("请填写意见");
// }
// if (StringUtils.isBlank(query.getUserSid())) {
// return rb.setMsg("参数错误:userSid");
// }
// FlowTaskVo flowTaskVo = new FlowTaskVo();
// BeanUtil.copyProperties(query, flowTaskVo);
// Map<String, Object> variables = new HashMap<>();
// Map<String, Object> appMap = new HashMap<>();
// appMap.put("sid", businessSid);
// variables.put("app", appMap);
// //若有网关,则赋值网关中判断的字段。
//// boolean isTure = true;
//// //去查询是否同意
//// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
//// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
//// isTure = false;
//// }
//// }
//// variables.put("isTure", isTure);
// flowTaskVo.setValues(variables);
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// UpdateFlowFieldVo ufVo = resultBean.getData();
// Map<String, Object> map = BeanUtil.beanToMap(ufVo);
// //更新业务中的流程相关的参数
// updateFlowFiled(map);
// //极光推送
// loanSubletApply = fetchBySid(businessSid);
// MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
// MessageFlowVo messageFlowVo = new MessageFlowVo();
// BeanUtil.copyProperties(ufVo, messageFlowVo);
// String procId = loanSubletApply.getProcInstId();
// messageFlowVo.setProcInsId(procId);
// messageFlowVo.setProcDefId(loanSubletApply.getProcDefId());
// messageFlowableQuery.setUfVo(messageFlowVo);
// messageFlowableQuery.setAppMap(appMap);
// messageFlowableQuery.setBusinessSid(businessSid);
// messageFlowableQuery.setModuleName("交回车辆二次转租申请");
// ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
// String nextName = listResultBean.getData().get(0).getName_();
// String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
// List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
//// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) {
// if ("发起申请".equals(nextName)) {
// messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
// //退回车辆处置状态
// List<SubletVinList> vinLists1 = loanSubletVehService.selByMainSid(businessSid);
// if (!vinLists1.isEmpty()) {
// vinLists1.stream().forEach(v -> {
// loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
// });
// }
// } else {
// SysUserVo userVo = sysUserFeign.fetchBySid(loanSubletApply.getCreateBySid()).getData();
// if (userVo != null) {
// if (StringUtils.isNotBlank(userVo.getName())) {
// messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
// }
// }
// }
// messageFlowableQuery.setMsgTitle("交回车辆二次转租申请");
// ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// return rb.success();
// }
// }
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean breakProcess(OutboundTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
// LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid());
// String businessTaskId = loanSubletApply.getTaskId();
// if (StringUtils.isNotBlank(businessTaskId)) {
// if (query.getUserSid().equals(loanSubletApply.getCreateBySid())) {
// FlowTaskVo flowTaskVo = new FlowTaskVo();
// BeanUtil.copyProperties(query, flowTaskVo);
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
// updateFlowFiled(map);
// //终止任务后操作
// LoanSubletApply entity = fetchBySid(query.getBusinessSid());
// if (entity.getNodeState().equals("终止")) {
// // 修改交回车辆台账状态
// List<SubletVinList> vinLists = loanSubletVehService.selByMainSid(query.getBusinessSid());
// if (!vinLists.isEmpty()) {
// vinLists.stream().forEach(v -> {
// loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
// });
// }
//
// }
// return rb.success().setData(resultBean.getData());
// } else {
// if (businessTaskId.equals(query.getTaskId())) {
// FlowTaskVo flowTaskVo = new FlowTaskVo();
// BeanUtil.copyProperties(query, flowTaskVo);
// ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
// if (!resultBean.getSuccess()) {
// return rb.setMsg(resultBean.getMsg());
// }
// Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
// updateFlowFiled(map);
// //终止任务后操作
// LoanSubletApply entity = fetchBySid(query.getBusinessSid());
// if (entity.getNodeState().equals("终止")) {
// // 修改交回车辆台账状态
// List<SubletVinList> vinLists = loanSubletVehService.selByMainSid(query.getBusinessSid());
// if (!vinLists.isEmpty()) {
// vinLists.stream().forEach(v -> {
// loanRedemptionApplyService.updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
// });
// }
// }
// return rb.success().setData(resultBean.getData());
// }
// }
//
// }
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean flowRecord(String procInsId) {
return flowTaskFeign.businessFlowRecord(procInsId);
}
public ResultBean<List<OutboundGetNodeVo>> getNextNodesForSubmit(OutboundGetNodeQuery query) {
// ResultBean<List<OutboundGetNodeVo>> rb = ResultBean.fireFail();
// BusinessVariables bv = new BusinessVariables();
// BeanUtil.copyProperties(query, bv);
// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
// Map<String, Object> variables = new HashMap<>();
//
// //根据业务sid查询排产信息
// LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid());
// //若有网关,则赋值网关中判断的字段。
//// boolean isTure = true;
//// //去查询是否同意
//// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
//// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
//// isTure = false;
//// }
//// }
//// variables.put("isTure", isTure);
// bv.setFormVariables(variables);
// bv.setModelId(loanSubletApply.getProcDefId());
// ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
// List<OutboundGetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OutboundGetNodeVo.class)).collect(Collectors.toList());
// return rb.success().setData(voList);
return null;
}
public ResultBean<List<OutboundGetNodeVo>> getPreviousNodesForReject(OutboundGetNodeQuery query) {
return null;
// ResultBean<List<SubletGetNodeVo>> rb = ResultBean.fireFail();
// BusinessVariables bv = new BusinessVariables();
// BeanUtil.copyProperties(query, bv);
// //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
// Map<String, Object> variables = new HashMap<>();
// //根据业务sid查询排产信息
// LoanSubletApply loanSubletApply = fetchBySid(query.getBusinessSid());
//// //若有网关,则赋值网关中判断的字段。
//// boolean isTure = true;
//// //去查询是否同意
//// if (StringUtils.isNotBlank(loanCustomerRecord.getSalesUserSid())) {
//// if (!loanCustomerRecord.getCreateBySid().equals(loanCustomerRecord.getSalesUserSid())) {
//// isTure = false;
//// }
//// }
//// variables.put("isTure", isTure);
// bv.setFormVariables(variables);
// bv.setModelId(loanSubletApply.getProcDefId());
// ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
// //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
// List<SubletGetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SubletGetNodeVo.class)).collect(Collectors.toList());
// return rb.success().setData(voList);
}
public ResultBean delegate(OutboundDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean<AppOutboundDetailsVo> appDetail(String sid) {
ResultBean<AppOutboundDetailsVo> rb = ResultBean.fireFail();
AppOutboundDetailsVo vo = new AppOutboundDetailsVo();
// LoanSubletApply entity = fetchBySid(sid);
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// if (null != entity) {
// vo.setSid(sid);
// String dept = "";
// String applyName = "";
// //----------------------------------------------------
// if (StringUtils.isNotBlank(entity.getBorrowerName())) {
// vo.setBorrName(entity.getBorrowerName());
// }
// if (StringUtils.isNotBlank(entity.getCustomer())) {
// vo.setCustName(entity.getCustomer());
// }
// if (StringUtils.isNotBlank(entity.getVinOwner())) {
// vo.setVinOwner(entity.getVinOwner());
// }
// if (StringUtils.isNotBlank(entity.getCustomerType())) {
// vo.setCustomerType(entity.getCustomerType());
// }
// if (StringUtils.isNotBlank(entity.getPhoneNum())) {
// vo.setPhoneNum(entity.getPhoneNum());
// }
// if (StringUtils.isNotBlank(entity.getCertificateType())) {
// vo.setCertificateType(entity.getCertificateType());
// }
// if (StringUtils.isNotBlank(entity.getEndDate())) {
// vo.setEndDate(entity.getEndDate());
// }
// if (null != entity.getAgree()) {
// vo.setAgree(entity.getAgree().toString());
// }
// if (StringUtils.isNotBlank(entity.getIdNumber())) {
// vo.setIdNumber(entity.getIdNumber());
// }
// if (StringUtils.isNotBlank(entity.getCardAddress())) {
// vo.setCardAddress(entity.getCardAddress());
// }
// if (StringUtils.isNotBlank(entity.getBankName())) {
// vo.setBankName(entity.getBankName());
// }
// if (StringUtils.isNotBlank(entity.getBankContractNo())) {
// vo.setBankContractNo(entity.getBankContractNo());
// }
// if (StringUtils.isNotBlank(entity.getPlan())) {
// vo.setPlan(entity.getPlan());
// }
// if (null != entity.getAmount()) {
// vo.setAmount(entity.getAmount().toString());
// }
// //----------------------------------------------------
// if (StringUtils.isNotBlank(entity.getProcInstId())) {
// vo.setProcInsId(entity.getProcInstId());
// }
// if (StringUtils.isNotBlank(entity.getTaskId())) {
// vo.setTaskId(entity.getTaskId());
// }
// if (null != entity.getApplyDate()) {
// vo.setTime(sdf.format(entity.getApplyDate()));
// }
// if (StringUtils.isNotBlank(entity.getDept())) {
// dept = entity.getDept();
// }
// if (StringUtils.isNotBlank(entity.getApplyName())) {
// applyName = entity.getApplyName();
// }
// vo.setPublishInfo(dept + "-" + applyName);
// List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.SUBLETAPPLY.getAttachType());
// fileList.removeAll(Collections.singleton(null));
// if (!fileList.isEmpty()) {
// List<String> files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
// collect(Collectors.toList());
// vo.setFiles(files);
// }
// List<AppSubletVinListVo> vinList = new ArrayList<>();
// List<SubletVinList> vinLists = loanSubletVehService.selByMainSid(sid);
// if (!vinLists.isEmpty()) {
// vinLists.stream().forEach(v -> {
// AppSubletVinListVo appVinListVo = new AppSubletVinListVo();
// if (StringUtils.isNotBlank(v.getVinNo())) {
// appVinListVo.setVinNo(v.getVinNo());
// }
// if (StringUtils.isNotBlank(v.getVehModel())) {
// appVinListVo.setModel(v.getVehModel());
// }
// if (StringUtils.isNotBlank(v.getVehType())) {
// appVinListVo.setVehType(v.getVehType());
// }
// if (StringUtils.isNotBlank(v.getVehMark())) {
// appVinListVo.setVehMark(v.getVehMark());
// }
// vinList.add(appVinListVo);
// });
// vo.setVinList(vinList);
// }
// }
return rb.success().setData(vo);
}
}

19
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.java

@ -0,0 +1,19 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundveh;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList;
import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface LoanOutboundVehMapper extends BaseMapper<LoanOutboundVeh> {
int deleteByMainSid(@Param("mainSid") String mainSid);
List<SubletVinList> selByMainSid(@Param("mainSid") String mainSid);
}

22
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.xml

@ -0,0 +1,22 @@
<?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.loanoutboundveh.LoanOutboundVehMapper">
<delete id="deleteByMainSid">
DELETE
FROM loan_sublet_veh
WHERE mainSid = #{mainSid}
</delete>
<select id="selByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList">
select vinSid,
vinNo,
vehMark,
vehModel,
busVinSid,
vehType,
ledgerSid
FROM loan_sublet_veh
WHERE mainSid = #{mainSid}
</select>
</mapper>

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehRest.java

@ -0,0 +1,16 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundveh;
import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVehFeign;
import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVehFeign;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "交回车辆出库车辆列表")
@RestController
@RequestMapping("v1/loanoutboundveh")
public class LoanOutboundVehRest implements LoanOutboundVehFeign {
}

27
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehService.java

@ -0,0 +1,27 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundveh;
import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList;
import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: fzz
* @date: 2023/7/6
**/
@Service
public class LoanOutboundVehService extends MybatisBaseService<LoanOutboundVehMapper, LoanOutboundVeh> {
public int deleteByMainSid(String mainSid) {
return baseMapper.deleteByMainSid(mainSid);
}
public List<SubletVinList> selByMainSid(String sid) {
return baseMapper.selByMainSid(sid);
}
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml

@ -79,7 +79,9 @@
v.busVinSid,
l.bankContractNo,
l.loanContractNo,
l.bankName
l.bankName,
v.customerSid,
v.borrowerSid
FROM loan_return_veh_ledger as v
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle as b ON v.busVinSid = b.sid
LEFT JOIN anrui_buscenter.bus_sales_order_loancontract as l ON l.sid = b.loanContractSid

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java

@ -34,4 +34,6 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper<LoanRepaymentSch
LoanRepaymentSchedule selByLoanContractSid(@Param("loanContractSid") String loanContractSid);
List<LoanRepaymentHistory> selHistoryBySid(@Param("sid") String sid);
OtherPolicyVo selOtherPolicyByOrderSid(@Param("salesOrderSid") String salesOrderSid);
}

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml

@ -64,4 +64,15 @@
FROM loan_repayment_history
WHERE scheduleSid = #{sid}
</select>
<select id="selOtherPolicyByOrderSid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentschedule.OtherPolicyVo">
SELECT fo.bankShortName as otherBankName,
fo.otherPolicyName as otherPolicyName
FROM loan_solutions AS s
LEFT JOIN loan_solutions_otherpolicy AS o ON s.sid = o.solutionsSid
LEFT JOIN loan_fin_otherpolicy AS fo ON fo.sid = o.otherPolicySid
WHERE s.salesOrderSid = #{salesOrderSid}
AND s.isDelete = 0
</select>
</mapper>

22
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -488,12 +488,20 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
}
//其他融
if (scheduleDetails.getIsOtherPolicy().equals("1")) {
OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid());
for (int i = 0; i < Integer.parseInt(otherPeriod); i++) {
LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto();
otherDto.setSalesOrderSid(salesOrderSid);
otherDto.setLoanContractNo(loanContractNo);
otherDto.setLoanContractSid(loanContractSid);
otherDto.setPolicyName(policyName);
if (null != otherPolicyVo) {
if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) {
otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName());
}
if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) {
otherDto.setBankName(otherPolicyVo.getOtherBankName());
}
}
otherDto.setBankContractNo(otherBankNo);
otherDto.setCreateBySid(createBySid);
otherDto.setCustomer(customer);
@ -502,7 +510,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
otherDto.setBorrowerName(borrowerName);
otherDto.setPeriod(String.valueOf(i + 1));
otherDto.setScheduleSid(scheduleDetails.getSid());
otherDto.setBankName(bankName);
otherDto.setDept(dept);
otherDto.setDeptSid(deptSid);
otherDto.setUseOrgSid(useOrgSid);
@ -875,12 +882,20 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
}
//其他融
if (scheduleDetails.getIsOtherPolicy().equals("1")) {
OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid());
for (int i = 0; i < Integer.parseInt(otherPeriod); i++) {
LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto();
otherDto.setSalesOrderSid(salesOrderSid);
otherDto.setLoanContractNo(loanContractNo);
otherDto.setLoanContractSid(loanContractSid);
otherDto.setPolicyName(policyName);
if (null != otherPolicyVo) {
if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) {
otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName());
}
if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) {
otherDto.setBankName(otherPolicyVo.getOtherBankName());
}
}
otherDto.setBankContractNo(otherBankNo);
otherDto.setCreateBySid(createBySid);
otherDto.setCustomer(customer);
@ -889,7 +904,6 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
otherDto.setBorrowerName(borrowerName);
otherDto.setPeriod(String.valueOf(i + 1));
otherDto.setScheduleSid(entity.getSid());
otherDto.setBankName(bankName);
otherDto.setDept(dept);
otherDto.setDeptSid(deptSid);
otherDto.setUseOrgSid(useOrgSid);

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java

@ -9,6 +9,7 @@ import com.yxt.anrui.riskcenter.api.loansubletapply.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -38,4 +39,6 @@ public interface LoanSubletApplyMapper extends BaseMapper<LoanSubletApply> {
SubletVinList selReturnTrVinLegerBySid(@Param("ledgerSid")String ledgerSid);
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
List<CustomerListVo> pickCustomer(@Param("userOrgSid") String userOrgSid);
}

17
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml

@ -115,7 +115,9 @@
borrowerName,
busVinSid,
vehType,
pSid
pSid,
customerSid,
borrowerSid
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
@ -184,4 +186,17 @@
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
<select id="pickCustomer" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.CustomerListVo">
SELECT sid AS newCustomerSid,
`name` AS vinOwner,
customerTypeKey,
customerType,
mobile AS phoneNum,
endDate,
IDNumber AS idNumber,
certificateTypeKey,
certificateType
FROM anrui_crm.crm_customer_temp
WHERE createOrgSid = #{userOrgSid}
</select>
</mapper>

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java

@ -42,6 +42,11 @@ public class LoanSubletApplyRest implements LoanSubletApplyFeign {
return rb.success().setData(pv);
}
@Override
public ResultBean<List<CustomerListVo>> pickCustomer(String orgPath) {
return loanSubletApplyService.pickCustomer(orgPath);
}
@Override
public ResultBean<LoanSubletApplyInit> subletInit(String ledgerSid) {
return loanSubletApplyService.subletInit(ledgerSid);

17
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java

@ -219,6 +219,17 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
return p;
}
public ResultBean<List<CustomerListVo>> pickCustomer(String orgPath) {
ResultBean rb = ResultBean.fireFail();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath);
String userOrgSid = "";
if (orgSidByPath.getSuccess()) {
userOrgSid = orgSidByPath.getData();
}
List<CustomerListVo> listVos = baseMapper.pickCustomer(userOrgSid);
return rb.success().setData(listVos);
}
public PagerVo<SubletVinListVo> getVinList(PagerQuery<SubletVinListQuery> pq) {
IPage<SubletVinListVo> page = PagerUtil.queryToPage(pq);
SubletVinListQuery pagerQuery = pq.getParams();
@ -261,6 +272,12 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
if (StringUtils.isNotBlank(subletInitVo.getBorrowerName())) {
vo.setBorrowerName(subletInitVo.getBorrowerName());
}
if (StringUtils.isNotBlank(subletInitVo.getCustomerSid())) {
vo.setCustomerSid(subletInitVo.getCustomerSid());
}
if (StringUtils.isNotBlank(subletInitVo.getBorrowerSid())) {
vo.setBorrowerSid(subletInitVo.getBorrowerSid());
}
if (StringUtils.isNotBlank(subletInitVo.getVehType())) {
vehType = subletInitVo.getVehType();
if (vehType.equals("主车")) {

Loading…
Cancel
Save