Browse Source

放款差额确认

master
dimengzhe 1 year ago
parent
commit
d777a9e3b7
  1. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  2. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java
  3. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml
  4. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java
  5. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  6. 41
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java
  7. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java
  8. 66
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java
  9. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeignFallback.java
  10. 30
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java
  11. 34
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java
  12. 34
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffsDto.java
  13. 18
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeQuery.java
  14. 24
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeVo.java
  15. 43
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyTaskQuery.java
  16. 38
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffCompleteDto.java
  17. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/SubmitDiffDto.java
  18. 65
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetails.java
  19. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java
  20. 44
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java
  21. 24
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java
  22. 39
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml
  23. 81
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java
  24. 429
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java
  25. 14
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java
  26. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml
  27. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsRest.java
  28. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java
  29. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java

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

@ -107,6 +107,7 @@ 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.loandiff.LoanDiffsDto;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.common.base.config.component.FileUploadComponent;
@ -1550,6 +1551,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//===========================================
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
//查询该申请下的所有待审核的款项明细
BigDecimal subscriptionMoneyAll = new BigDecimal("0");
List<FinSelectedReceivablesDetailedVo> finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 1);
if (finSelectedReceivablesDetailedVos.size() > 0) {
@ -1652,6 +1654,16 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
baseMapper.updateById(confirmation);
//删除临时表的数据
ResultBean deleteResult = baseVehicleTempstateFeign.delByBusSid(sid);
//根据该申请sid查询融资放款的明细
List<FinSelectedReceivablesDetailed> finLi = finSelectedReceivablesDetailedService.selectLiBy(sid);
finLi.removeAll(Collections.singleton(null));
if(!finLi.isEmpty()){
//根据车辆sid查询金融方案
for (int i = 0; i < finLi.size(); i++) {
}
}
return rb.success().setMsg("款项确认成功");
}

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

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

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

@ -546,4 +546,9 @@
ON ffc.`busSid` = ferd.`sid`
WHERE ferd.sid = #{busSid}
</select>
<select id="selectLiBy"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed">
select * from fin_selected_receivables_detailed where collSid = #{sid} and receivablesName = '融资放款'
</select>
</mapper>

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

@ -868,4 +868,8 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
}
}
}
public List<FinSelectedReceivablesDetailed> selectLiBy(String sid) {
return baseMapper.selectLiBy(sid);
}
}

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

@ -56,6 +56,7 @@ public enum ProcDefEnum {
LOANCREDITAPPEALAPPLY("信用审核申诉", "process_gygvxw8k:2:5212504"),
DEALERFILINGAPPLY("经销商备案", "process_jdu35cog:9:6652504"),
LOANTEMPLATEAPPLY("定制金融方案", "process_9q5omebi:2:2685008"),
LOANDIFFAPPLY("放款差额确认", ""),
LOANHOMEVISITAPPEALAPPLY("家访考察申诉", "process_8ujil3h3:1:3665004"),
BUSVALCUSTFILING("价值客户备案申请", "process_n8fwpitk:2:5085004"),
LOANCUSTOMERRECORD("欠款客户备案", "process_x6o0chx9:4:6055004"),

41
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiff.java

@ -0,0 +1,41 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/13
**/
@Data
public class LoanDiff extends BaseEntity {
private static final long serialVersionUID = 5447301533409285441L;
private String createByName;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("编号")
private String billNo;
@ApiModelProperty("附件")
private String files;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("环节key")
private String nodeId;
@ApiModelProperty("流程实例id")
private String procDefId;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
}

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffDto.java

@ -0,0 +1,20 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailsDto;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffDto implements Dto {
private static final long serialVersionUID = 3046052875256156498L;
private String sid;
private String userSid;
private List<LoanDiffDetailsDto> loanDiffDetails;
}

66
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeign.java

@ -0,0 +1,66 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/13
**/
@Api(tags = "放款确认申请")
@FeignClient(
contextId = "anrui-riskcenter-LoanDiff",
name = "anrui-riskcenter",
path = "v1/LoanDiff",
fallback = LoanDiffFeignFallback.class)
public interface LoanDiffFeign {
@ApiOperation("融资放款确认推送数据")
@PostMapping("/save")
ResultBean save(@RequestBody LoanDiffsDto dto);
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanDiffVo>> listPage(@RequestBody PagerQuery<LoanDiffQuery> pq);
@ApiOperation("提交")
@PostMapping("/submitDiffApply")
public ResultBean submitDiffApply(@Valid @RequestBody SubmitDiffDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody DiffCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<DiffApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap DiffApplyNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<DiffApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap DiffApplyNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody DiffApplyTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody DiffApplyTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody DiffApplyTaskQuery query);
}

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffFeignFallback.java

@ -0,0 +1,9 @@
package com.yxt.anrui.riskcenter.api.loandiff;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
public class LoanDiffFeignFallback {
}

30
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffQuery.java

@ -0,0 +1,30 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffQuery implements Query {
private static final long serialVersionUID = 7002305390491310057L;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期开始时间")
private String createTimeStart;
@ApiModelProperty("申请日期结束时间")
private String createTimeEnd;
private String orgPath;
private String menuUrl;
}

34
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffVo.java

@ -0,0 +1,34 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffVo implements Vo {
private static final long serialVersionUID = -7935993141002359582L;
private String sid;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String createTime;
@ApiModelProperty("申请编号")
private String billNo;
@ApiModelProperty("备注")
private String remarks;
private String procDefId;
private String procInstId;
}

34
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/LoanDiffsDto.java

@ -0,0 +1,34 @@
package com.yxt.anrui.riskcenter.api.loandiff;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffsDto implements Dto {
private static final long serialVersionUID = 7160584186871507179L;
@ApiModelProperty("申请人")
private String createBySid;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
private String createByName;
@ApiModelProperty("申请部门")
private String createDept;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
private List<LoanDiffDetailssDto> loanDiffDetailssDtos;
}

18
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeQuery.java

@ -0,0 +1,18 @@
package com.yxt.anrui.riskcenter.api.loandiff.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class DiffApplyNodeQuery {
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

24
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyNodeVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.api.loandiff.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class DiffApplyNodeVo {
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

43
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffApplyTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.anrui.riskcenter.api.loandiff.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class DiffApplyTaskQuery {
/**
* 终止驳回撤回
*/
@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;
}

38
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/DiffCompleteDto.java

@ -0,0 +1,38 @@
package com.yxt.anrui.riskcenter.api.loandiff.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class DiffCompleteDto implements Dto {
private static final long serialVersionUID = -1137187204046560845L;
@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;
}

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiff/flowable/SubmitDiffDto.java

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

65
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetails.java

@ -0,0 +1,65 @@
package com.yxt.anrui.riskcenter.api.loandiffdetails;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/13
**/
@Data
public class LoanDiffDetails extends BaseEntity {
private static final long serialVersionUID = 2569023626756288954L;
@ApiModelProperty("主申请sid")
private String mainSid;
@ApiModelProperty("资方sid")
private String bankSid;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("贷款人sid")
private String borrowSid;
@ApiModelProperty("贷款人")
private String borrowName;
@ApiModelProperty("放款金额:应放")
private BigDecimal makeLoan;
@ApiModelProperty("放款金额:实放")
private BigDecimal realityLoan;
private BigDecimal diffLoan;
@ApiModelProperty("主产品厂家贴息:预计")
private BigDecimal makeDiscount;
@ApiModelProperty("主产品厂家贴息:实际")
private BigDecimal realityDiscount;
private BigDecimal diffDiscount;
@ApiModelProperty("其他融厂家贴息:预计")
private BigDecimal makeOtherDiscount;
@ApiModelProperty("其他融厂家贴息:实际")
private BigDecimal realityOtherDiscount;
private BigDecimal diffOtherDiscount;
@ApiModelProperty("固定贷款保证金:预计")
private BigDecimal makeLoanMargin;
@ApiModelProperty("固定贷款保证金:实际")
private BigDecimal realityLoanMargin;
private BigDecimal diffLoanMargin;
@ApiModelProperty("意外险:已收")
private BigDecimal receivedPremium;
@ApiModelProperty("意外险:实扣")
private BigDecimal realityPremium;
private BigDecimal diffPremium;
}

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailsDto.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loandiffdetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffDetailsDto {
private String sid;
private String busVinSid;
@ApiModelProperty("实放")
private String realityLoan;
@ApiModelProperty("主产品厂家贴息:实际")
private String realityDiscount;
@ApiModelProperty("其他融厂家贴息:实际")
private String realityOtherDiscount;
@ApiModelProperty("固定贷款保证金:实际")
private String realityLoanMargin;
@ApiModelProperty("实扣意外险")
private String realityPremium;
}

44
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loandiffdetails/LoanDiffDetailssDto.java

@ -0,0 +1,44 @@
package com.yxt.anrui.riskcenter.api.loandiffdetails;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Data
public class LoanDiffDetailssDto implements Dto {
private static final long serialVersionUID = -2530442143507437830L;
@ApiModelProperty("销售订单车辆sid")
private String busVinSid;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("资方sid")
private String bankSid;
@ApiModelProperty("资方名称")
private String bankName;
@ApiModelProperty("贷款人sid")
private String borrowSid;
@ApiModelProperty("贷款人")
private String borrowName;
@ApiModelProperty("放款金额:应放")
private String makeLoan;
@ApiModelProperty("主产品厂家贴息:预计")
private BigDecimal makeDiscount;
@ApiModelProperty("其他融厂家贴息:预计")
private BigDecimal makeOtherDiscount;
@ApiModelProperty("固定贷款保证金:预计")
private BigDecimal makeLoanMargin;
@ApiModelProperty("意外险:已收")
private BigDecimal receivedPremium;
}

24
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.biz.loandiff;
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.loandiff.LoanDiff;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/13
**/
@Mapper
public interface LoanDiffMapper extends BaseMapper<LoanDiff> {
int updateFlowFiled(Map<String, Object> map);
IPage<LoanDiffVo> listPageVo(IPage<LoanDiff> page, @Param(Constants.WRAPPER)QueryWrapper<LoanDiff> qw);
}

39
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffMapper.xml

@ -0,0 +1,39 @@
<?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.loandiff.LoanDiffMapper">
<update id="updateFlowFiled">
UPDATE loan_diff
SET nodeState=#{nodeState}
<if test="taskDefKey != null and taskDefKey != ''">
, nodeId=#{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="listPageVo" resultType="com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo">
select ld.sid,
ld.createByName,
ld.useOrgName,
ld.createDept,
DATE_FORMAT(ld.createTime, '%Y-%m-%d') as createTime,
ld.billNo,
ld.remarks,
if(length(ld.nodeState) > 0, nodeState, '待提交') as nodeState,
procDefId,
procInstId
from loan_diff ld
<where>
${ew.sqlSegment}
</where>
order by ld.id desc
</select>
</mapper>

81
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffRest.java

@ -0,0 +1,81 @@
package com.yxt.anrui.riskcenter.biz.loandiff;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffFeign;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/13
**/
@RestController
@RequestMapping("v1/LoanDiff")
public class LoanDiffRest implements LoanDiffFeign {
@Autowired
private LoanDiffService loanDiffService;
@Override
public ResultBean save(LoanDiffsDto dto) {
return loanDiffService.saveDiff(dto);
}
@Override
public ResultBean<PagerVo<LoanDiffVo>> listPage(PagerQuery<LoanDiffQuery> pq) {
ResultBean<PagerVo<LoanDiffVo>> rb = ResultBean.fireFail();
PagerVo<LoanDiffVo> pv = loanDiffService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean submitDiffApply(SubmitDiffDto dto) {
return loanDiffService.submitDiffApply(dto);
}
@Override
public ResultBean complete(DiffCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return loanDiffService.complete(bv);
}
@Override
public ResultBean<List<DiffApplyNodeVo>> getPreviousNodesForReject(DiffApplyNodeQuery query) {
return loanDiffService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<DiffApplyNodeVo>> getNextNodesForSubmit(DiffApplyNodeQuery query) {
return loanDiffService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(DiffApplyTaskQuery query) {
return loanDiffService.taskReject(query);
}
@Override
public ResultBean revokeProcess(DiffApplyTaskQuery query) {
return loanDiffService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(DiffApplyTaskQuery query) {
return loanDiffService.breakProcess(query);
}
}

429
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java

@ -0,0 +1,429 @@
package com.yxt.anrui.riskcenter.biz.loandiff;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.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.riskcenter.api.loandiff.LoanDiff;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffQuery;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffVo;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiffsDto;
import com.yxt.anrui.riskcenter.api.loandiff.flowable.*;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetailssDto;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplate;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo;
import com.yxt.anrui.riskcenter.biz.loandiffdetails.LoanDiffDetailsService;
import com.yxt.anrui.riskcenter.biz.loantemplate.LoanTemplateMapper;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
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.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
* @date: 2023/11/13
**/
@Service
public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff> {
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private LoanDiffDetailsService loanDiffDetailsService;
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitDiffDto dto, LoanDiff loanDiff) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanDiff != null) {
String businessTaskId = loanDiff.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 submitDiffApply(SubmitDiffDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanDiff loanDiff = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanDiff);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
ResultBean<String> resultBean = updateApply(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
loanDiff = 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(loanDiff.getOrgSidPath());
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.LOANDIFFAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
loanDiff = 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());
LoanDiff finalLoanDiff = loanDiff;
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(finalLoanDiff.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(loanDiff.getTaskId());
bv.setTaskDefKey(loanDiff.getNodeId());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private ResultBean<String> updateApply(SubmitDiffDto dto) {
return null;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanDiff loanDiff = 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(loanDiff.getOrgSidPath());
bv.setModelId(loanDiff.getProcDefId());
if (bv.getTaskId().equals(loanDiff.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())) {
} else {
//极光推送
loanDiff = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanDiff.getProcDefId());
messageFlowVo.setProcInsId(loanDiff.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("放款差额确认申请");
messageFlowableQuery.setMsgContent(loanDiff.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("放款差额确认");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<DiffApplyNodeVo>> getPreviousNodesForReject(DiffApplyNodeQuery query) {
ResultBean<List<DiffApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanDiff loanDiff = fetchBySid(query.getBusinessSid());
bv.setModelId(loanDiff.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<DiffApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), DiffApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<DiffApplyNodeVo>> getNextNodesForSubmit(DiffApplyNodeQuery query) {
ResultBean<List<DiffApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanDiff loanDiff = fetchBySid(query.getBusinessSid());
bv.setModelId(loanDiff.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<DiffApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), DiffApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(DiffApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanDiff loanDiff = fetchBySid(businessSid);
if (loanDiff == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanDiff.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);
//极光推送
loanDiff = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanDiff.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(loanDiff.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(loanDiff.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("放款差额确认");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(DiffApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanDiff loanDiff = fetchBySid(query.getBusinessSid());
String businessTaskId = loanDiff.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("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(DiffApplyTaskQuery 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("请填写意见");
}
LoanDiff loanDiff = fetchBySid(query.getBusinessSid());
String businessTaskId = loanDiff.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(loanDiff.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
/**
* 更新流程的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public PagerVo<LoanDiffVo> listPageVo(PagerQuery<LoanDiffQuery> pq) {
LoanDiffQuery query = pq.getParams();
QueryWrapper<LoanDiff> qw = new QueryWrapper<>();
if (query != null) {
//分公司
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("ld.useOrgName", query.getUseOrgName());
}
//申请部门
if (StringUtils.isNotBlank(query.getCreateDept())) {
qw.like("ld.createDept", query.getCreateDept());
}
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("ld.createByName", query.getCreateByName());
}
//数据授权
//申请日期开始时间
String createTimeStart = query.getCreateTimeStart();
//申请日期结束时间
String createTimeEnd = query.getCreateTimeEnd();
qw.apply(StringUtils.isNotBlank(createTimeStart), "date_format (ld.createTime,'%Y-%m-%d') >= date_format('" + createTimeStart + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createTimeEnd), "date_format (ld.createTime,'%Y-%m-%d') <= date_format('" + createTimeEnd + "','%Y-%m-%d')"
);
}
IPage<LoanDiff> page = PagerUtil.queryToPage(pq);
IPage<LoanDiffVo> pagging = baseMapper.listPageVo(page, qw);
PagerVo<LoanDiffVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveDiff(LoanDiffsDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanDiff loanDiff = new LoanDiff();
BeanUtil.copyProperties(dto, loanDiff);
List<LoanDiffDetailssDto> loanDiffDetailssDtos = dto.getLoanDiffDetailssDtos();
loanDiffDetailssDtos.removeAll(Collections.singleton(null));
if (!loanDiffDetailssDtos.isEmpty()) {
for (int i = 0; i < loanDiffDetailssDtos.size(); i++) {
LoanDiffDetailssDto loanDiffDetailssDto = loanDiffDetailssDtos.get(i);
LoanDiffDetails loanDiffDetails = new LoanDiffDetails();
BeanUtil.copyProperties(loanDiffDetailssDto, loanDiffDetails);
loanDiffDetailsService.insert(loanDiffDetails);
}
}
baseMapper.insert(loanDiff);
return rb.success();
}
}

14
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.java

@ -0,0 +1,14 @@
package com.yxt.anrui.riskcenter.biz.loandiffdetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails;
import org.apache.ibatis.annotations.Mapper;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Mapper
public interface LoanDiffDetailsMapper extends BaseMapper<LoanDiffDetails> {
}

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsMapper.xml

@ -0,0 +1,4 @@
<?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.loandiffdetails.LoanDiffDetailsMapper">
</mapper>

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsRest.java

@ -0,0 +1,9 @@
package com.yxt.anrui.riskcenter.biz.loandiffdetails;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
public class LoanDiffDetailsRest {
}

16
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiffdetails/LoanDiffDetailsService.java

@ -0,0 +1,16 @@
package com.yxt.anrui.riskcenter.biz.loandiffdetails;
import com.yxt.anrui.riskcenter.api.loandiff.LoanDiff;
import com.yxt.anrui.riskcenter.api.loandiffdetails.LoanDiffDetails;
import com.yxt.anrui.riskcenter.biz.loandiff.LoanDiffMapper;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/14
**/
@Service
public class LoanDiffDetailsService extends MybatisBaseService<LoanDiffDetailsMapper, LoanDiffDetails> {
}

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java

@ -16,6 +16,7 @@ import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusDataListPdfVo;
import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandoverPdfVo;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
@ -99,6 +100,8 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@ -301,7 +304,7 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.LOANTEMPLATEAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
@ -399,7 +402,7 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
bv.setOrgSidPath(loanTemplate.getOrgSidPath());
bv.setModelId(loanTemplate.getProcDefId());
if (bv.getTaskId().equals(loanTemplate.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
@ -911,7 +914,7 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
*/
public ResultBean<String> templateQuotationCreatePdf(LoanTemplateQuotationQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
// String template = "/template/";
// String template = "/template/";
String s = templateQuotation(query);
String filePath = s.substring(docPdfComponent.getUploadTemplateUrl().length());
return rb.success().setData(filePath);
@ -1009,13 +1012,13 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
AppLoanTemplateQuery query = pagerQuery.getParams();
QueryWrapper<LoanTemplate> qw = new QueryWrapper<>();
if (query != null) {
if(StringUtils.isNotBlank(query.getOrgPath())){
if (StringUtils.isNotBlank(query.getOrgPath())) {
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("lfp.useOrgSid",useOrgSid);
qw.eq("lfp.useOrgSid", useOrgSid);
}
// qw.eq("lfp.orgSidPath", query.getOrgPath());
qw.eq("lfp.nodeState", "已办结");
qw.eq("lfp.useState",0);
qw.eq("lfp.useState", 0);
}
IPage<LoanTemplate> page = PagerUtil.queryToPage(pagerQuery);
IPage<AppLoanTemplateVo> pagging = baseMapper.getCustomizedList(page, qw, query.getName());

Loading…
Cancel
Save