Browse Source

交回车辆二次销售部分接口

master
dimengzhe 1 year ago
parent
commit
940e51e04f
  1. 13
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsQuery.java
  2. 79
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java
  3. 69
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java
  4. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java
  5. 45
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java
  6. 23
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java
  7. 13
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyDelegateQuery.java
  8. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java
  9. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeVo.java
  10. 31
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyTaskQuery.java
  11. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/SubmitLoanSecondarySalesApplyDto.java
  12. 64
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java
  13. 28
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java
  14. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java
  15. 86
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml
  16. 37
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java
  17. 608
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java
  18. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java
  19. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml
  20. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java
  21. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java
  22. 18
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml
  23. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java

13
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsQuery.java

@ -1,7 +1,11 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +13,13 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDetailsQuery {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("机构全路径sid")
private String orgPath;
private List<String> chooseSidList = new ArrayList<>();
}

79
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDetailsVo.java

@ -1,7 +1,14 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +16,76 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDetailsVo {
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("是否年检")
private String inspect;
@ApiModelProperty("年检情况")
private String inspectSituation;
@ApiModelProperty("是否已出保")
private String guaranteed;
@ApiModelProperty("保险情况")
private String insuranceSituation;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("当前行驶公里数")
private String kilometerDriven;
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<UrlQuery> filesList = new ArrayList<>();
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
private String currentBeMoney;
@ApiModelProperty("其中资金占用费")
private String wheFundOccMoney;
@ApiModelProperty("未到期金额")
private String unexpiredMoney;
@ApiModelProperty("总期数")
private String nper;
@ApiModelProperty("当前期数")
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
@ApiModelProperty("车辆列表")
private List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = new ArrayList<>();
@ApiModelProperty("费用明细")
private LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo();
private String sid;
@ApiModelProperty("申请人sid")
private String userSid;
private String orgPath;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty(value = "流程实例id")
private String procInstId;
private String useOrgSid;
private String files;
}

69
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyDto.java

@ -1,7 +1,14 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +16,66 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDto {
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String createDate;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("停放地点")
private String locationName;
@ApiModelProperty("是否年检")
private String inspect;
@ApiModelProperty("年检情况")
private String inspectSituation;
@ApiModelProperty("是否已出保")
private String guaranteed;
@ApiModelProperty("保险情况")
private String insuranceSituation;
@ApiModelProperty("首次登记日期")
private String firstDate;
@ApiModelProperty("当前行驶公里数")
private String kilometerDriven;
@ApiModelProperty("其他车况说明")
private String illustrate;
@ApiModelProperty("车辆照片")
private List<UrlQuery> fileList = new ArrayList<>();
@ApiModelProperty("已还金额")
private String alRepaidMoney;
@ApiModelProperty("当前逾期金额")
private String currentBeMoney;
@ApiModelProperty("其中资金占用费")
private String wheFundOccMoney;
@ApiModelProperty("未到期金额")
private String unexpiredMoney;
@ApiModelProperty("总期数")
private String nper;
@ApiModelProperty("当前期数")
private String currentPeriod;
@ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod;
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod;
@ApiModelProperty("车辆列表")
private List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = new ArrayList<>();
@ApiModelProperty("费用明细")
private LoanSecondarySalesCostVo loanSecondarySalesCost = new LoanSecondarySalesCostVo();
private String sid;
private String userSid;
}

37
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyQuery.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -11,4 +12,40 @@ import lombok.Data;
@Data
public class LoanSecondarySalesApplyQuery implements Query {
private static final long serialVersionUID = -8173091575102397453L;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期开始")
private String createTimeStart;
@ApiModelProperty("申请日期结束")
private String createTimeEnd;
@ApiModelProperty("办结日期开始")
private String closeDateStart;
@ApiModelProperty("办结日期结束")
private String closeDateEnd;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("欠款合计(大于)")
private String arrearsAll;
private String menuUrl;
private String orgPath;
private String userSid;
}

45
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/LoanSecondarySalesApplyVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -9,4 +10,48 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyVo {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String createDate;
@ApiModelProperty("办结日期")
private String closeDate;
@ApiModelProperty("贷款合同编号")
private String loanContractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同编号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("贷款人")
private String loanName;
@ApiModelProperty("欠款合计")
private String arrearsAll;
@ApiModelProperty("车辆售价")
private String vehPrice;
@ApiModelProperty("预计亏损金额")
private String lossPrice;
@ApiModelProperty("是否允许点击办理,true允许,false不允许")
private boolean allowModify;
private String createBySid;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("流程实例id")
private String procInstId;
}

23
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/CompleteLoanSecondarySalesApplyDto.java

@ -1,7 +1,10 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
@ -9,4 +12,24 @@ import lombok.Data;
**/
@Data
public class CompleteLoanSecondarySalesApplyDto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

13
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyDelegateQuery.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -9,4 +10,16 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeQuery.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -9,4 +10,9 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyNodeQuery {
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyNodeVo.java

@ -1,7 +1,10 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -9,4 +12,13 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyNodeVo {
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

31
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/LoanSecondarySalesApplyTaskQuery.java

@ -1,7 +1,10 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
@ -9,4 +12,32 @@ import lombok.Data;
**/
@Data
public class LoanSecondarySalesApplyTaskQuery {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesapply/flowable/SubmitLoanSecondarySalesApplyDto.java

@ -1,11 +1,19 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/23
**/
@Data
public class SubmitLoanSecondarySalesApplyDto extends LoanSecondarySalesApplyDto {
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

64
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalescost/LoanSecondarySalesCostVo.java

@ -0,0 +1,64 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalescost;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/24
**/
@Data
public class LoanSecondarySalesCostVo {
@ApiModelProperty("欠款合计")
private String arrearsAll;
@ApiModelProperty("贷款保证金")
private String loanDeposit;
@ApiModelProperty("车辆售价")
private String vehPrice;
@ApiModelProperty("催收费用")
private String collectionCost;
@ApiModelProperty("资方结清费用")
private String bankSettleCost;
@ApiModelProperty("资方结清费用承担方")
private String bankSettleCostAssume;
@ApiModelProperty("车辆违章费用")
private String vehicleViolationCost;
@ApiModelProperty("车辆违章费用承担方")
private String vehicleViolationCostAssume;
@ApiModelProperty("年检费")
private String inspectYearCost;
@ApiModelProperty("年检费承担方")
private String inspectYearCostAssume;
@ApiModelProperty("保险费")
private String insureCost;
@ApiModelProperty("保险费承担方")
private String insureCostAssume;
@ApiModelProperty("过户费")
private String ownershipCost;
@ApiModelProperty("过户费承担方")
private String ownershipCostAssume;
@ApiModelProperty("停车费")
private String stopCost;
@ApiModelProperty("停车费承担方")
private String stopCostAssume;
@ApiModelProperty("其他费用")
private String otherCost;
@ApiModelProperty("其他费用承担方")
private String otherCostAssume;
@ApiModelProperty("费用说明")
private String costDescription;
@ApiModelProperty("预计亏损金额")
private String lossPrice;
@ApiModelProperty("后续欠款处置方向")
private String debtDisposal;
@ApiModelProperty("附件")
private List<UrlQuery> files = new ArrayList<>();
}

28
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesveh/LoanSecondarySalesVehVo.java

@ -0,0 +1,28 @@
package com.yxt.anrui.riskcenter.api.loansecondarysalesveh;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/24
**/
@Data
public class LoanSecondarySalesVehVo {
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车辆类型")
private String vehType;
@ApiModelProperty("车型")
private String modelName;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
}

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.java

@ -1,8 +1,16 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @description:
@ -11,4 +19,11 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface LoanSecondarySalesApplyMapper extends BaseMapper<LoanSecondarySalesApply> {
IPage<LoanSecondarySalesApplyVo> selectPageVo(IPage<LoanSecondarySalesApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanSecondarySalesApply> qw);
int updateFlowFiled(Map<String, Object> beanToMap);
int selectBySid(String join);
LoanSecondarySalesApplyDetailsVo selectDetails(String sid);
}

86
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml

@ -1,4 +1,90 @@
<?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.loansecondarysalesapply.LoanSecondarySalesApplyMapper">
<select id="selectPageVo"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyVo">
select la.sid,
if(length(la.nodeState) > 0, la.nodeState, '待提交') as nodeState,
la.useOrgName,
la.createDept,
la.createByName,
DATE_FORMAT(la.createTime, '%Y-%m-%d') as createDate,
la.closeDate,
la.loanContractNo,
(select group_concat(lv.vinNo) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vinNo,
(select group_concat(lv.vehMark) from loan_secondary_sales_veh lv where lv.mainSid = la.sid) as vehMark,
la.bankName,
la.bankContractNo,
la.customerName,
la.loanName,
lc.arrearsAll,
lc.vehPrice,
lc.lossPrice,
la.createBySid,
la.procDefId,
la.procInstId
from loan_secondary_sales_apply la
left join loan_secondary_sales_cost lc on lc.mainSid = la.sid
<where>
${ew.sqlSegment}
</where>
</select>
<update id="updateFlowFiled">
UPDATE loan_secondary_sales_apply
SET nodeState=#{nodeState}
<if test="taskDefKey != null and taskDefKey != ''">
, taskDefKey=#{taskDefKey}
</if>
<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="selectBySid" resultType="int">
select count(*)
from loan_secondary_sales_apply
where length(nodeState) > 0
and find_in_set(sid, #{list})
</select>
<select id="selectDetails"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApplyDetailsVo">
select la.sid,
la.createDept,
la.createDeptSid,
la.createByName,
DATE_FORMAT(la.createTime, '%Y-%m-%d') as createDate,
la.customerName,
la.loanName,
la.loanContractNo,
la.bankName,
la.bankContractNo,
la.locationName,
la.inspect,
la.inspectSituation,
la.guaranteed,
la.insuranceSituation,
la.firstDate,
la.kilometerDriven,
la.illustrate,
la.files,
la.alRepaidMoney,
la.currentBeMoney,
la.wheFundOccMoney,
la.unexpiredMoney,
la.nper,
la.currentPeriod,
la.alRepaidMoneyConPeriod,
la.beOverdueMoneyAndPeriod
from loan_secondary_sales_apply la
where sid = #{sid}
</select>
</mapper>

37
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java

@ -1,11 +1,15 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -20,63 +24,72 @@ import java.util.List;
@RequestMapping("v1/LoanSecondarySalesApply")
@Api(tags = "二次销售")
public class LoanSecondarySalesApplyRest implements LoanSecondarySalesApplyFeign {
@Autowired
private LoanSecondarySalesApplyService loanSecondarySalesApplyService;
@Override
public ResultBean<PagerVo<LoanSecondarySalesApplyVo>> listPage(PagerQuery<LoanSecondarySalesApplyQuery> pq) {
return null;
ResultBean<PagerVo<LoanSecondarySalesApplyVo>> rb = ResultBean.fireFail();
PagerVo<LoanSecondarySalesApplyVo> pv = loanSecondarySalesApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<String> saveOrUpdate(LoanSecondarySalesApplyDto dto) {
return null;
return loanSecondarySalesApplyService.saveOrUpdateSecondarySales(dto);
}
@Override
public ResultBean<LoanSecondarySalesApplyDetailsVo> details(LoanSecondarySalesApplyDetailsQuery query) {
return null;
return loanSecondarySalesApplyService.details(query);
}
@Override
public ResultBean delBySids(String[] sids) {
return null;
return loanSecondarySalesApplyService.delAllBySids(sids);
}
@Override
public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) {
return null;
return loanSecondarySalesApplyService.submitApply(dto);
}
@Override
public ResultBean complete(CompleteLoanSecondarySalesApplyDto query) {
return null;
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return loanSecondarySalesApplyService.complete(bv);
}
@Override
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) {
return null;
return loanSecondarySalesApplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) {
return null;
return loanSecondarySalesApplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) {
return null;
return loanSecondarySalesApplyService.taskReject(query);
}
@Override
public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) {
return null;
return loanSecondarySalesApplyService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery query) {
return null;
return loanSecondarySalesApplyService.breakProcess(query);
}
@Override
public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) {
return null;
return loanSecondarySalesApplyService.delegate(query);
}
}

608
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java

@ -1,9 +1,64 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApply;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDetailsVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyQuery;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.ReturnInboundApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto;
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService;
import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
@ -11,4 +66,555 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanSecondarySalesApplyService extends MybatisBaseService<LoanSecondarySalesApplyMapper, LoanSecondarySalesApply> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private LoanSecondarySalesCostService loanSecondarySalesCostService;
@Autowired
private LoanSecondarySalesVehService loanSecondarySalesVehService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanReturnVehLedgerService loanReturnVehLedgerService;
public PagerVo<LoanSecondarySalesApplyVo> listPageVo(PagerQuery<LoanSecondarySalesApplyQuery> pq) {
LoanSecondarySalesApplyQuery query = pq.getParams();
QueryWrapper<LoanSecondarySalesApply> qw = new QueryWrapper<>();
if (query != null) {
//分公司
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("la.useOrgName", query.getUseOrgName());
}
//申请人
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("la.createByName", query.getCreateByName());
}
//申请部门
if (StringUtils.isNotBlank(query.getCreateDept())) {
qw.like("la.createDept", query.getCreateDept());
}
//贷款合同编号
if (StringUtils.isNotBlank(query.getLoanContractNo())) {
qw.like("la.loanContractNo", query.getLoanContractNo());
}
//ToDo:车架号
if (StringUtils.isNotBlank(query.getVinNo())) {
}
//车牌号
if (StringUtils.isNotBlank(query.getVehMark())) {
}
//贷款人
if (StringUtils.isNotBlank(query.getLoanName())) {
qw.like("la.loanName", query.getLoanName());
}
//资方
if (StringUtils.isNotBlank(query.getBankName())) {
qw.like("la.bankName", query.getBankName());
}
//资方合同编号
if (StringUtils.isNotBlank(query.getBankContractNo())) {
qw.like("la.bankContractNo", query.getBankContractNo());
}
//客户名称
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("la.customerName", query.getCustomerName());
}
//办结日期
qw.apply(StringUtils.isNotBlank(query.getCloseDateStart()), "date_format (la.closeDate,'%Y-%m-%d') >= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (la.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')"
);
//申请日期
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("la.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("la.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("la.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("la.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("la.createBySid", query.getUserSid());
} else {
PagerVo<LoanSecondarySalesApplyVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<LoanSecondarySalesApplyVo> p = new PagerVo<>();
return p;
}
}
}
qw.orderByDesc("la.createTime");
IPage<LoanSecondarySalesApply> page = PagerUtil.queryToPage(pq);
IPage<LoanSecondarySalesApplyVo> pagging = baseMapper.selectPageVo(page, qw);
List<LoanSecondarySalesApplyVo> paggingRecords = pagging.getRecords();
paggingRecords.removeAll(Collections.singleton(null));
if (!paggingRecords.isEmpty()) {
for (LoanSecondarySalesApplyVo record : pagging.getRecords()) {
if (query.getUserSid().equals(record.getCreateBySid())) {
record.setAllowModify(true);
} else {
record.setAllowModify(false);
}
}
}
PagerVo<LoanSecondarySalesApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSecondarySalesApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<LoanSecondarySalesApplyNodeVo>> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) {
ResultBean<List<LoanSecondarySalesApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSecondarySalesApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid);
if (loanSecondarySalesApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanSecondarySalesApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
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);
//极光推送
loanSecondarySalesApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanSecondarySalesApply.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(loanSecondarySalesApply.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆二次销售申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextName = listResultBean.getData().get(0).getName_();
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("交回车辆二次销售申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanSecondarySalesApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
private int updateFlowFiled(Map<String, Object> beanToMap) {
return baseMapper.updateFlowFiled(beanToMap);
}
public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid());
String businessTaskId = loanSecondarySalesApply.getTaskId();
if (query.getUserSid().equals(loanSecondarySalesApply.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
} else {
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
bv.setOrgSidPath(loanSecondarySalesApply.getOrgSidPath());
bv.setModelId(loanSecondarySalesApply.getProcDefId());
if (bv.getTaskId().equals(loanSecondarySalesApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
loanSecondarySalesApply = fetchBySid(businessSid);
loanSecondarySalesApply.setCloseDate(DateUtil.today());
baseMapper.updateById(loanSecondarySalesApply);
} else {
//极光推送
loanSecondarySalesApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanSecondarySalesApply.getProcDefId());
messageFlowVo.setProcInsId(loanSecondarySalesApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆二次销售申请");
messageFlowableQuery.setMsgContent(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("交回车辆二次销售申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanSecondarySalesApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//ToDo:验证车辆是否已处置
ResultBean<String> resultBean = saveOrUpdateSecondarySales(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
loanSecondarySalesApply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
bv.setOrgSidPath(loanSecondarySalesApply.getOrgSidPath());
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.LOANRETUENINBOUNDAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
loanSecondarySalesApply = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
LoanSecondarySalesApply finalLoanSecondarySalesApply = loanSecondarySalesApply;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆二次销售申请");
messageFlowableQuery.setMsgContent(finalLoanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("交回车辆二次销售申请");
ResultBean<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");
}
bv.setTaskId(loanSecondarySalesApply.getTaskId());
bv.setTaskDefKey(loanSecondarySalesApply.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
public ResultBean<String> saveOrUpdateSecondarySales(LoanSecondarySalesApplyDto dto) {
return null;
}
private int submitBusinessData(SubmitLoanSecondarySalesApplyDto dto, LoanSecondarySalesApply loanSecondarySalesApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanSecondarySalesApply != null) {
String businessTaskId = loanSecondarySalesApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
List<String> sidss = Arrays.asList(sids);
for (int i = 0; i < sidss.size(); i++) {
loanSecondarySalesVehService.deleteByMainSid(sidss.get(i));
loanSecondarySalesCostService.deleteByMainSid(sidss.get(i));
}
delBySids(sids);
return rb.success().setMsg("删除成功");
}
public ResultBean<LoanSecondarySalesApplyDetailsVo> details(LoanSecondarySalesApplyDetailsQuery query) {
ResultBean<LoanSecondarySalesApplyDetailsVo> rb = ResultBean.fireFail();
LoanSecondarySalesApplyDetailsVo loanSecondarySalesApplyDetailsVo = new LoanSecondarySalesApplyDetailsVo();
String sid = query.getSid();
String userSid = query.getUserSid();
String orgPath = query.getOrgPath();
List<String> chooseSidList = query.getChooseSidList();
chooseSidList.removeAll(Collections.singleton(null));
if (StringUtils.isBlank(sid)) {//新增初始化
if (chooseSidList.isEmpty()) {
return rb.setMsg("请选择车辆");
}
String busVinSid = "";
String vinNo = "";
for (int i = 0; i < chooseSidList.size(); i++) {
String s = chooseSidList.get(i);
LoanReturnVehLedger loanReturnVehLedger = loanReturnVehLedgerService.fetchBySid(s);
if ("未处置".equals(loanReturnVehLedger.getDisposal())) {
}
}
//根据用户查询发起人、发起部门、发起日期为当前日期
String deptName = "";
String deptSid = "";
String useOrgSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization.getName() + "/" + sysOrganization1.getName();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(userSid);
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
loanSecondarySalesApplyDetailsVo.setCreateDept(deptName);
loanSecondarySalesApplyDetailsVo.setCreateDeptSid(deptSid);
loanSecondarySalesApplyDetailsVo.setCreateByName(userVoResultBean.getData().getName());
loanSecondarySalesApplyDetailsVo.setCreateDate(DateUtil.today());
loanSecondarySalesApplyDetailsVo.setOrgPath(query.getOrgPath());
loanSecondarySalesApplyDetailsVo.setUserSid(query.getUserSid());
loanSecondarySalesApplyDetailsVo.setUseOrgSid(useOrgSid);
} else {//编辑初始化
LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid);
if (loanSecondarySalesApply == null) {
return rb.setMsg("该申请不存在");
}
loanSecondarySalesApplyDetailsVo = baseMapper.selectDetails(sid);
String files = loanSecondarySalesApplyDetailsVo.getFiles();
List<UrlQuery> list = new ArrayList<>();
if (StringUtils.isNotBlank(files)) {
List<String> fileList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
for (int i = 0; i < fileList.size(); i++) {
UrlQuery urlQuery = new UrlQuery();
urlQuery.setUrl(fileList.get(i));
list.add(urlQuery);
}
loanSecondarySalesApplyDetailsVo.setFilesList(list);
}
loanSecondarySalesApplyDetailsVo.setOrgPath(loanSecondarySalesApply.getOrgSidPath());
loanSecondarySalesApplyDetailsVo.setUserSid(loanSecondarySalesApply.getCreateBySid());
loanSecondarySalesApplyDetailsVo.setSid(sid);
loanSecondarySalesApplyDetailsVo.setProcInstId(loanSecondarySalesApply.getProcInstId());
loanSecondarySalesApplyDetailsVo.setTaskId(loanSecondarySalesApply.getTaskId());
List<LoanSecondarySalesVehVo> loanSecondarySalesVehVoList = loanSecondarySalesVehService.selectByMainSid(sid);
loanSecondarySalesVehVoList.removeAll(Collections.singleton(null));
if (!loanSecondarySalesVehVoList.isEmpty()) {
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList);
}
LoanSecondarySalesCostVo loanSecondarySalesCost = loanSecondarySalesCostService.selectByMainSid(sid);
loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesCost(loanSecondarySalesCost);
}
return rb.success().setData(loanSecondarySalesApplyDetailsVo);
}
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalescost;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import org.apache.ibatis.annotations.Mapper;
/**
@ -11,4 +12,7 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface LoanSecondarySalesCostMapper extends BaseMapper<LoanSecondarySalesCost> {
int deleteByMainSid(String s);
LoanSecondarySalesCostVo selectByMainSid(String sid);
}

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml

@ -1,4 +1,16 @@
<?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.loansecondarysalescost.LoanSecondarySalesCostMapper">
<delete id="deleteByMainSid">
delete
from loan_secondary_sales_veh
where mainSid = #{s}
</delete>
<select id="selectByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo">
SELECT *
FROM loan_secondary_sales_cost
where mainSid = #{sid}
</select>
</mapper>

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalescost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost;
import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
@ -11,4 +12,11 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanSecondarySalesCostService extends MybatisBaseService<LoanSecondarySalesCostMapper, LoanSecondarySalesCost> {
public int deleteByMainSid(String s) {
return baseMapper.deleteByMainSid(s);
}
public LoanSecondarySalesCostVo selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java

@ -2,8 +2,11 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface LoanSecondarySalesVehMapper extends BaseMapper<LoanSecondarySalesVeh> {
int deleteByMainSid(String s);
List<LoanSecondarySalesVehVo> selectByMainSid(String sid);
}

18
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml

@ -1,4 +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.loansecondarysalesveh.LoanSecondarySalesVehMapper">
<delete id="deleteByMainSid">
delete
from loan_secondary_sales_veh
where mainSid = #{s}
</delete>
<select id="selectByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo">
select lv.vinNo,
lv.vehMark,
lv.vehType,
lv.modelName,
lv.busVinSid,
lv.modelSid,
lv.configSid
from loan_secondary_sales_veh lv
where mainSid = #{sid}
</select>
</mapper>

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java

@ -1,9 +1,12 @@
package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh;
import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +14,11 @@ import org.springframework.stereotype.Service;
**/
@Service
public class LoanSecondarySalesVehService extends MybatisBaseService<LoanSecondarySalesVehMapper, LoanSecondarySalesVeh> {
public int deleteByMainSid(String s) {
return baseMapper.deleteByMainSid(s);
}
public List<LoanSecondarySalesVehVo> selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
}

Loading…
Cancel
Save