Browse Source

公司定制金融方案部分代码

zhanglei
dimengzhe 2 years ago
parent
commit
34b24efc2d
  1. 70
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplate.java
  2. 44
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDto.java
  3. 74
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateFeign.java
  4. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateFeignFallback.java
  5. 35
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuery.java
  6. 44
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateVo.java
  7. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java
  8. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/SubmitTemplateDto.java
  9. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/TemplateApplyNodeQuery.java
  10. 26
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/TemplateApplyNodeVo.java
  11. 45
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/TemplateApplyTaskQuery.java
  12. 38
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/TemplateCompleteDto.java
  13. 25
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplateinstall/LoanTemplateInstall.java
  14. 27
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplatetrailer/LoanTemplateTrailer.java
  15. 24
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.java
  16. 43
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml
  17. 84
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateRest.java
  18. 456
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java
  19. 14
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplateinstall/LoanTemplateInstallMapper.java
  20. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplateinstall/LoanTemplateInstallMapper.xml
  21. 14
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplateinstall/LoanTemplateInstallService.java
  22. 14
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplatetrailer/LoanTemplateTrailerMapper.java
  23. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplatetrailer/LoanTemplateTrailerMapper.xml
  24. 14
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplatetrailer/LoanTemplateTrailerService.java
  25. 58
      doc/databases/risk_center.sql

70
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplate.java

@ -0,0 +1,70 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description: 公司定制金融方案模板
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class LoanTemplate extends BaseEntity {
private static final long serialVersionUID = 4495609815807595267L;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("备案编号")
private String billNo;
@ApiModelProperty("方案key")
private String showTypeKey;
@ApiModelProperty("方案value")
private String showTypeValue;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("车型名称")
private String vehModel;
@ApiModelProperty("配置sid")
private String vehModelConfigSid;
@ApiModelProperty("常用配置名称")
private String vehModelConfig;
@ApiModelProperty("更多配置名称")
private String vehModelConfigMore;
@ApiModelProperty("单台指导价")
private BigDecimal vehPrice;
@ApiModelProperty("合格证公告型号")
private String vehNoticeModel;
@ApiModelProperty("备案日期")
private String filingDate;
@ApiModelProperty("申请部门sid")
private String applyDeptSid;
@ApiModelProperty("申请部门")
private String applyDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("环节定义id")
private String taskDefKey;
@ApiModelProperty("流程实例id")
private String procInstId;
private String taskId;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("创建组织名称")
private String createOrgName;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("使用状态:0正常,1禁用")
private int useState;
}

44
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDto.java

@ -0,0 +1,44 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class LoanTemplateDto implements Dto {
private static final long serialVersionUID = 1058550108219302303L;
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径sid")
private String orgPath;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("方案key")
private String showTypeKey;
@ApiModelProperty("方案value")
private String showTypeValue;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("车型名称")
private String vehModel;
@ApiModelProperty("配置sid")
private String vehModelConfigSid;
@ApiModelProperty("常用配置名称")
private String vehModelConfig;
@ApiModelProperty("更多配置名称")
private String vehModelConfigMore;
@ApiModelProperty("单台指导价")
private BigDecimal vehPrice;
@ApiModelProperty("合格证公告型号")
private String vehNoticeModel;
}

74
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateFeign.java

@ -0,0 +1,74 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.yxt.anrui.riskcenter.api.loantemplate.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.PathVariable;
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/7/19
**/
@Api(tags = "公司定制金融方案申请")
@FeignClient(
contextId = "anrui-riskcenter-LoanTemplate",
name = "anrui-riskcenter",
path = "v1/LoanTemplate",
fallback = LoanTemplateFeignFallback.class)
public interface LoanTemplateFeign {
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanTemplateVo>> listPage(@RequestBody PagerQuery<LoanTemplateQuery> pq);
@ApiOperation("新增、修改")
@PostMapping("/saveOrUpdate")
ResultBean<String> saveOrUpdate(@RequestBody LoanTemplateDto dto);
@ApiOperation("提交")
@PostMapping("/submitTemplateApply")
public ResultBean submitTemplateApply(@Valid @RequestBody SubmitTemplateDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody TemplateCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<TemplateApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap TemplateApplyNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<TemplateApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap TemplateApplyNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody TemplateApplyTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody TemplateApplyTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody TemplateApplyTaskQuery query);
@ApiOperation(value = "移动端详情")
@GetMapping(value = "/getTemplateApply/{sid}")
ResultBean<TemplateApplyVo> getTemplateApply(@PathVariable("sid") String sid);
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Component
public class LoanTemplateFeignFallback {
}

35
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuery.java

@ -0,0 +1,35 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class LoanTemplateQuery implements Query {
private static final long serialVersionUID = -3560204318836479977L;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("使用状态:0正常,1禁用")
private String useStateKey;
@ApiModelProperty("车型名称")
private String vehModel;
//资方产品方案
//其他融产品名称
@ApiModelProperty("申请日期开始时间")
private String filingDateStart;
@ApiModelProperty("申请日期结束时间")
private String filingDateEnd;
}

44
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateVo.java

@ -0,0 +1,44 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class LoanTemplateVo implements Vo {
private static final long serialVersionUID = -7945086879973486919L;
private String sid;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("使用状态")
private String useStateValue;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String applyDept;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")
private String filingDate;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("方案value")
private String showTypeValue;
@ApiModelProperty("车型名称")
private String vehModel;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("配置sid")
private String vehModelConfigSid;
//资方产品方案
//其他融产品名称
}

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java

@ -0,0 +1,9 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
public class TemplateApplyVo {
}

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/SubmitTemplateDto.java

@ -0,0 +1,20 @@
package com.yxt.anrui.riskcenter.api.loantemplate.flowable;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class SubmitTemplateDto extends LoanTemplateDto {
private static final long serialVersionUID = 3835516621822161977L;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/TemplateApplyNodeQuery.java

@ -0,0 +1,20 @@
package com.yxt.anrui.riskcenter.api.loantemplate.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class TemplateApplyNodeQuery implements Query {
private static final long serialVersionUID = 7063642923429631900L;
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

26
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/TemplateApplyNodeVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.riskcenter.api.loantemplate.flowable;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class TemplateApplyNodeVo implements Vo {
private static final long serialVersionUID = 1961081384184514415L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

45
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/flowable/TemplateApplyTaskQuery.java

@ -0,0 +1,45 @@
package com.yxt.anrui.riskcenter.api.loantemplate.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class TemplateApplyTaskQuery implements Query {
private static final long serialVersionUID = 5105018029574079051L;
/**
* 终止驳回撤回
*/
@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/loantemplate/flowable/TemplateCompleteDto.java

@ -0,0 +1,38 @@
package com.yxt.anrui.riskcenter.api.loantemplate.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/7/19
**/
@Data
public class TemplateCompleteDto implements Dto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
@NotBlank(message = "用户全路径不能为空")
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;
}

25
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplateinstall/LoanTemplateInstall.java

@ -0,0 +1,25 @@
package com.yxt.anrui.riskcenter.api.loantemplateinstall;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class LoanTemplateInstall extends BaseEntity {
private static final long serialVersionUID = 8653351227525069709L;
@ApiModelProperty("模板sid")
private String templateSid;
@ApiModelProperty("上装配置sid")
private String vehInstallModelSid;
@ApiModelProperty("上装融资价格")
private BigDecimal vehInstallPrice;
@ApiModelProperty("上装备注说明")
private String vehInstallRemark;
}

27
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplatetrailer/LoanTemplateTrailer.java

@ -0,0 +1,27 @@
package com.yxt.anrui.riskcenter.api.loantemplatetrailer;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Data
public class LoanTemplateTrailer extends BaseEntity {
private static final long serialVersionUID = -696421927777953553L;
@ApiModelProperty("模板sid")
private String templateSid;
@ApiModelProperty("挂车配置sid")
private String vehTrailerModelSid;
@ApiModelProperty("挂车融资价格")
private BigDecimal vehTrailerPrice;
@ApiModelProperty("挂车同车型合格证文件")
private String vehTrailerCertificateFile;
@ApiModelProperty("挂车备注说明")
private String vehTrailerRemark;
}

24
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.java

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

43
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml

@ -0,0 +1,43 @@
<?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.loantemplate.LoanTemplateMapper">
<select id="listPageVo" resultType="com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo">
select lote.sid,
lote.templateName,
lote.useOrgName,
lote.createByName,
case lote.useState
when 0 then '正常'
when 1 then '禁用'
end useStateValue,
lote.applyDept,
lote.filingDate,
lote.showTypeValue,
lote.vehModel,
lote.vehModelSid,
lote.vehModelConfigSid
from loan_template lote
<where>
${ew.sqlSegment}
</where>
order by id desc
</select>
<update id="updateFlowFiled">
UPDATE loan_template
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>
</mapper>

84
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateRest.java

@ -0,0 +1,84 @@
package com.yxt.anrui.riskcenter.biz.loantemplate;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loantemplate.*;
import com.yxt.anrui.riskcenter.api.loantemplate.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;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Api(tags = "公司定制金融方案申请")
@RestController
@RequestMapping("v1/LoanTemplate")
public class LoanTemplateRest implements LoanTemplateFeign {
@Autowired
private LoanTemplateService loanTemplateService;
@Override
public ResultBean<PagerVo<LoanTemplateVo>> listPage(PagerQuery<LoanTemplateQuery> pq) {
ResultBean<PagerVo<LoanTemplateVo>> rb = ResultBean.fireFail();
PagerVo<LoanTemplateVo> pv = loanTemplateService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<String> saveOrUpdate(LoanTemplateDto dto) {
return loanTemplateService.saveOrUpdateApply(dto);
}
@Override
public ResultBean submitTemplateApply(SubmitTemplateDto dto) {
return loanTemplateService.submitTemplateApply(dto);
}
@Override
public ResultBean complete(TemplateCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return loanTemplateService.complete(bv);
}
@Override
public ResultBean<List<TemplateApplyNodeVo>> getPreviousNodesForReject(TemplateApplyNodeQuery query) {
return loanTemplateService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<TemplateApplyNodeVo>> getNextNodesForSubmit(TemplateApplyNodeQuery query) {
return loanTemplateService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(TemplateApplyTaskQuery query) {
return loanTemplateService.taskReject(query);
}
@Override
public ResultBean revokeProcess(TemplateApplyTaskQuery query) {
return loanTemplateService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(TemplateApplyTaskQuery query) {
return loanTemplateService.breakProcess(query);
}
@Override
public ResultBean<TemplateApplyVo> getTemplateApply(String sid) {
return loanTemplateService.getTemplateApply(sid);
}
}

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

@ -0,0 +1,456 @@
package com.yxt.anrui.riskcenter.biz.loantemplate;
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.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
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.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loantemplate.*;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery;
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/7/19
**/
@Service
public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper, LoanTemplate> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
public PagerVo<LoanTemplateVo> listPageVo(PagerQuery<LoanTemplateQuery> pq) {
LoanTemplateQuery query = pq.getParams();
QueryWrapper<LoanTemplate> qw = new QueryWrapper<>();
if (query != null) {
//分公司
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
//模板名称
if (StringUtils.isNotBlank(query.getTemplateName())) {
qw.like("templateName", query.getTemplateName());
}
//使用状态
if (StringUtils.isNotBlank(query.getUseStateKey())) {
qw.eq("useState", query.getUseStateKey());
}
//ToDo:资方产品政策、其他融产品名称
//申请日期开始时间
String applicationDateStart = query.getFilingDateStart();
//申请日期结束时间
String applicationDateEnd = query.getFilingDateEnd();
qw.apply(StringUtils.isNotBlank(applicationDateStart), "date_format (filingDate,'%Y-%m-%d') >= date_format('" + applicationDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(applicationDateEnd), "date_format (filingDate,'%Y-%m-%d') <= date_format('" + applicationDateEnd + "','%Y-%m-%d')"
);
}
IPage<LoanTemplate> page = PagerUtil.queryToPage(pq);
IPage<LoanTemplateVo> pagging = baseMapper.listPageVo(page, qw);
PagerVo<LoanTemplateVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> saveOrUpdateApply(LoanTemplateDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
//新增
LoanTemplate loanTemplate = new LoanTemplate();
BeanUtil.copyProperties(dto, loanTemplate, sid);
loanTemplate.setCreateBySid(dto.getUserSid());
//查询申请人
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (userVoResultBean.getData() != null) {
loanTemplate.setCreateByName(userVoResultBean.getData().getName());
}
//申请人组织全路径
String orgPath = dto.getOrgPath();
loanTemplate.setOrgSidPath(orgPath);
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
loanTemplate.setUseOrgSid(useOrgSid);
loanTemplate.setCreateOrgSid(useOrgSid);
//创建组织使用组织
ResultBean<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationResultBean.getData() != null) {
loanTemplate.setCreateOrgName(organizationResultBean.getData().getName());
loanTemplate.setUseOrgName(organizationResultBean.getData().getName());
}
//申请部门
List<String> orgList = Arrays.asList(orgPath.split("/"));
String deptSid = orgList.get(orgList.size() - 1);
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(deptSid);
if (sysOrganizationVoResultBean.getData() != null) {
loanTemplate.setApplyDept(sysOrganizationVoResultBean.getData().getName());
loanTemplate.setApplyDeptSid(deptSid);
}
loanTemplate.setFilingDate(DateUtil.today());
baseMapper.insert(loanTemplate);
sid = loanTemplate.getSid();
} else {
//修改
LoanTemplate loanTemplate = fetchBySid(sid);
if (loanTemplate == null) {
return rb.setMsg("该申请不存在");
}
BeanUtil.copyProperties(dto, loanTemplate, "sid");
baseMapper.updateById(loanTemplate);
}
return rb.success().setData(sid);
}
public ResultBean submitTemplateApply(SubmitTemplateDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanTemplate loanTemplate = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, loanTemplate);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
ResultBean<String> resultBean = saveOrUpdateApply(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
loanTemplate = 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(loanTemplate.getOrgSidPath());
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId("");
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
loanTemplate = 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());
LoanTemplate finalLoanTemplate = loanTemplate;
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(finalLoanTemplate.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(loanTemplate.getTaskId());
bv.setTaskDefKey(loanTemplate.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
/**
* 更新流程的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitTemplateDto dto, LoanTemplate loanTemplate) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanTemplate != null) {
String businessTaskId = loanTemplate.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
LoanTemplate loanTemplate = 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(loanTemplate.getOrgSidPath());
bv.setModelId(loanTemplate.getProcDefId());
if (bv.getTaskId().equals(loanTemplate.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
loanTemplate = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanTemplate.getProcDefId());
messageFlowVo.setProcInsId(loanTemplate.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("公司定制金融方案备案申请");
messageFlowableQuery.setMsgContent(loanTemplate.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("公司定制金融方案备案");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<TemplateApplyNodeVo>> getPreviousNodesForReject(TemplateApplyNodeQuery query) {
ResultBean<List<TemplateApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanTemplate loanTemplate = fetchBySid(query.getBusinessSid());
bv.setModelId(loanTemplate.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<TemplateApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), TemplateApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<TemplateApplyNodeVo>> getNextNodesForSubmit(TemplateApplyNodeQuery query) {
ResultBean<List<TemplateApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
LoanTemplate loanTemplate = fetchBySid(query.getBusinessSid());
bv.setModelId(loanTemplate.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<TemplateApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), TemplateApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(TemplateApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
LoanTemplate loanTemplate = fetchBySid(businessSid);
if (loanTemplate == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = loanTemplate.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);
//极光推送
loanTemplate = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = loanTemplate.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(loanTemplate.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(loanTemplate.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("公司定制金融方案备案");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean breakProcess(TemplateApplyTaskQuery 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("请填写意见");
}
LoanTemplate loanTemplate = fetchBySid(query.getBusinessSid());
String businessTaskId = loanTemplate.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(loanTemplate.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(TemplateApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
LoanTemplate loanTemplate = fetchBySid(query.getBusinessSid());
String businessTaskId = loanTemplate.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<TemplateApplyVo> getTemplateApply(String sid) {
return null;
}
}

14
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplateinstall/LoanTemplateInstallMapper.java

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

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplateinstall/LoanTemplateInstallMapper.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.loantemplateinstall.LoanTemplateInstallMapper">
</mapper>

14
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplateinstall/LoanTemplateInstallService.java

@ -0,0 +1,14 @@
package com.yxt.anrui.riskcenter.biz.loantemplateinstall;
import com.yxt.anrui.riskcenter.api.loantemplateinstall.LoanTemplateInstall;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Service
public class LoanTemplateInstallService extends MybatisBaseService<LoanTemplateInstallMapper, LoanTemplateInstall> {
}

14
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplatetrailer/LoanTemplateTrailerMapper.java

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

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplatetrailer/LoanTemplateTrailerMapper.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.loantemplatetrailer.LoanTemplateTrailerMapper">
</mapper>

14
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplatetrailer/LoanTemplateTrailerService.java

@ -0,0 +1,14 @@
package com.yxt.anrui.riskcenter.biz.loantemplatetrailer;
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailer;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2023/7/19
**/
@Service
public class LoanTemplateTrailerService extends MybatisBaseService<LoanTemplateTrailerMapper, LoanTemplateTrailer> {
}

58
doc/databases/risk_center.sql

@ -1150,14 +1150,16 @@ CREATE TABLE `loan_template`
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`createByName` varchar(64) DEFAULT NULL COMMENT '申请人',
`templateName` varchar(255) DEFAULT NULL COMMENT '模板名称',
`billNo` varchar(255) DEFAULT NULL COMMENT '金融方案定制编号',
`showTypeKey` varchar(255) DEFAULT NULL COMMENT '方案key',
`showTypeValue` varchar(255) DEFAULT NULL COMMENT '方案value',
`vehModelSid` varchar(255) DEFAULT NULL COMMENT '车型sid',
`vehModel` varchar(255) DEFAULT NULL COMMENT '车型名称',
`vehModelConfigSid` varchar(255) DEFAULT NULL COMMENT '配置sid',
`vehModelConfig` varchar(255) DEFAULT NULL COMMENT '常用配置名称',
`vehModelConfigMore` varchar(255) DEFAULT NULL COMMENT '更多配置名称',
`vehModelConfig` text DEFAULT NULL COMMENT '常用配置名称',
`vehModelConfigMore` text DEFAULT NULL COMMENT '更多配置名称',
`vehPrice` decimal(10, 0) DEFAULT NULL COMMENT '单台指导价',
`vehNoticeModel` varchar(255) DEFAULT NULL COMMENT '合格证公共型号',
`filingDate` varchar(255) DEFAULT NULL COMMENT '备案日期',
@ -1167,17 +1169,69 @@ CREATE TABLE `loan_template`
`procDefId` varchar(255) DEFAULT NULL COMMENT '流程定义id',
`taskDefKey` varchar(255) DEFAULT NULL COMMENT '环节key',
`procInstId` varchar(255) DEFAULT NULL COMMENT '流程实例id',
`taskId` varchar(255) DEFAULT NULL COMMENT '任务id',
`createOrgSid` varchar(255) DEFAULT NULL COMMENT '创建组织sid',
`createOrgName` varchar(255) DEFAULT NULL COMMENT '创建组织名称',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '使用组织sid',
`useOrgName` varchar(255) DEFAULT NULL COMMENT '使用组织名称',
`orgSidPath` text DEFAULT NULL COMMENT '组织全路径sid',
`useState` int(64) DEFAULT NULL COMMENT '使用状态:0正常,1禁用',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='公司定制金融方案';
-- 金融方案模板-挂车
DROP TABLE IF EXISTS `loan_template_trailer`;
CREATE TABLE `loan_template_trailer`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`templateSid` varchar(64) DEFAULT NULL COMMENT '模板sid',
`vehTrailerModelSid` varchar(64) DEFAULT NULL COMMENT '挂车车型sid',
`vehTrailerPrice` decimal(10, 0) DEFAULT NULL COMMENT '挂车融资价格',
`vehTrailerCertificateFile` text DEFAULT NULL COMMENT '挂车同车型合格证文件',
`vehTrailerRemark` text DEFAULT NULL COMMENT '挂车备注说明',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='金融方案模板挂车';
-- 金融方案模板-上装
DROP TABLE IF EXISTS `loan_template_install`;
CREATE TABLE `loan_template_install`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`templateSid` varchar(64) DEFAULT NULL COMMENT '模板sid',
`vehInstallModelSid` varchar(64) DEFAULT NULL COMMENT '上装配置sid',
`vehInstallPrice` decimal(10, 0) DEFAULT NULL COMMENT '上装融资价格',
`vehInstallRemark` text DEFAULT NULL COMMENT '上装备注说明',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='金融方案模板上装';

Loading…
Cancel
Save