Browse Source

移动端销售政策

zhanglei
dimengzhe 2 years ago
parent
commit
6c896cd8b9
  1. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeign.java
  2. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeignFallback.java
  3. 48
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/app/AppDiscountpackagesVo.java
  4. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/flow/GetNodeQuery.java
  5. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.java
  6. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.xml
  7. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageRest.java
  8. 61
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java
  9. 39
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageDto.java
  10. 52
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeign.java
  11. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeignFallback.java
  12. 28
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageQuery.java
  13. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageTaskQuery.java
  14. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVehVo.java
  15. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVo.java
  16. 53
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageRest.java
  17. 141
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageService.java
  18. 92
      doc/databases/risk_center.sql

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeign.java

@ -2,8 +2,8 @@ package com.yxt.anrui.base.api.basediscountpackage;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageQuery;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageVo;
import com.yxt.anrui.base.api.basediscountpackage.app.AppDiscountpackagesVo;
import com.yxt.anrui.base.api.basediscountpackage.flow.*;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrandDictionariesVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -119,5 +119,9 @@ public interface BaseDiscountpackageFeign {
@GetMapping(value = "/getMoney")
ResultBean<List<String>> getMoney(@RequestParam("vinSid")String vinSid,@RequestParam("orgSid")String orgSid);
@ApiOperation(value = "移动端销售政策详情")
@GetMapping(value = "/selectDiscountpackage")
ResultBean<AppDiscountpackagesVo> selectDiscountpackage(@PathVariable("sid")String sid);
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeignFallback.java

@ -2,6 +2,7 @@ package com.yxt.anrui.base.api.basediscountpackage;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageQuery;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageVo;
import com.yxt.anrui.base.api.basediscountpackage.app.AppDiscountpackagesVo;
import com.yxt.anrui.base.api.basediscountpackage.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -122,5 +123,10 @@ public class BaseDiscountpackageFeignFallback implements BaseDiscountpackageFeig
return null;
}
@Override
public ResultBean<AppDiscountpackagesVo> selectDiscountpackage(String sid) {
return null;
}
}

48
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/app/AppDiscountpackagesVo.java

@ -0,0 +1,48 @@
package com.yxt.anrui.base.api.basediscountpackage.app;
import com.yxt.anrui.base.api.basediscountpackageveh.BaseDiscountpackageVehDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/3/13 17:09
* @Description
*/
@Data
public class AppDiscountpackagesVo implements Vo {
private static final long serialVersionUID = -8696698778653332551L;
//优惠名称
private String projectName;
//说明
private String discountExplain;
//生效时间
private String effectiveDate;
//是否生效
private String isEmployValue;
//政策类别
private String salesPolicy;
private String salesPolicyKey;
//优惠包类别
private String discountType;
//优惠包成本
private String projectCost;
//优惠包价值
private String discountMoney;
//是否有列表
private boolean isShowList;
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty("销售车辆列表")
private List<BaseDiscountpackageVehDetailsVo> baseDiscountpackageVehs = new ArrayList<>();
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/flow/GetNodeQuery.java

@ -25,4 +25,6 @@ public class GetNodeQuery implements Query {
@ApiModelProperty(value = "不确定是否需要前端传:还是有分支网关的时候传??")
private Map<String, Object> formVariables;
private String businessSid;
}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.java

@ -1,14 +1,14 @@
package com.yxt.anrui.base.biz.basediscountpackage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.base.api.basediscountpackage.*;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageVo;
import com.yxt.anrui.base.api.basediscountpackage.app.AppDiscountpackagesVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
@ -71,4 +71,6 @@ public interface BaseDiscountpackageMapper extends BaseMapper<BaseDiscountpackag
List<String> getMoney(@Param("vinSid") String vinSid, @Param("orgSid") String orgSid);
List<AppDiscountpackageListVo> selectAppDiscountpackageListByOrgSid(String orgSid);
AppDiscountpackagesVo selectDiscountpackage(String sid);
}

4
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.xml

@ -80,4 +80,8 @@
resultType="com.yxt.anrui.base.api.basediscountpackage.AppDiscountpackageListVo">
SELECT projectName,projectCost,discountExplain FROM base_discountpackage WHERE useOrg = #{orgSid}
</select>
<select id="selectDiscountpackage" resultType="com.yxt.anrui.base.api.basediscountpackage.app.AppDiscountpackagesVo">
select * from base_discountpackage where sid = #{sid}
</select>
</mapper>

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageRest.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basediscountpackage.*;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageQuery;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageVo;
import com.yxt.anrui.base.api.basediscountpackage.app.AppDiscountpackagesVo;
import com.yxt.anrui.base.api.basediscountpackage.flow.*;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
@ -193,4 +194,9 @@ public class BaseDiscountpackageRest implements BaseDiscountpackageFeign {
return baseDiscountpackageService.getMoney(vinSid,orgSid);
}
@Override
public ResultBean<AppDiscountpackagesVo> selectDiscountpackage(String sid) {
return baseDiscountpackageService.selectDiscountpackage(sid);
}
}

61
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basediscountpackage.*;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageQuery;
import com.yxt.anrui.base.api.basediscountpackage.app.AppBaseDiscountpackageVo;
import com.yxt.anrui.base.api.basediscountpackage.app.AppDiscountpackagesVo;
import com.yxt.anrui.base.api.basediscountpackage.flow.BaseDiscountpackageTaskQuery;
import com.yxt.anrui.base.api.basediscountpackage.flow.GetNodeQuery;
import com.yxt.anrui.base.api.basediscountpackage.flow.GetNodeVo;
@ -549,6 +550,7 @@ public class BaseDiscountpackageService extends MybatisBaseService<BaseDiscountp
formVariables.put("isAdj", i);
}
if (bv.getTaskId().equals(baseDiscountpackage.getTaskId())) {
bv.setOrgSidPath(baseDiscountpackage.getOrgSidPath());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
@ -570,19 +572,32 @@ public class BaseDiscountpackageService extends MybatisBaseService<BaseDiscountp
Boolean i = false;
Map<String, Object> map = new HashMap<>();
Map<String, Object> formVariables = bv.getFormVariables();
if ("0001".equals(query.getDiscountTypeKey())) {
i = true;
if(StringUtils.isNotBlank(query.getDiscountTypeKey())){
if ("0001".equals(query.getDiscountTypeKey())) {
i = true;
}
if (formVariables == null) {
map.put("isAdj", i);
bv.setFormVariables(map);
} else {
formVariables.put("isAdj", i);
}
}
if (formVariables == null) {
map.put("isAdj", i);
bv.setFormVariables(map);
} else {
formVariables.put("isAdj", i);
if(StringUtils.isNotBlank(query.getBusinessSid())){
BaseDiscountpackage baseDiscountpackage = fetchBySid(query.getBusinessSid());
if ("0001".equals(baseDiscountpackage.getDiscountTypeKey())) {
i = true;
}
if (formVariables == null) {
map.put("isAdj", i);
bv.setFormVariables(map);
} else {
formVariables.put("isAdj", i);
}
}
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
// List<GetNodeVo> voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
@ -594,7 +609,6 @@ public class BaseDiscountpackageService extends MybatisBaseService<BaseDiscountp
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
// List<GetNodeVo> voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
@ -715,4 +729,33 @@ public class BaseDiscountpackageService extends MybatisBaseService<BaseDiscountp
List<AppDiscountpackageListVo> appDiscountpackageListVos = baseMapper.selectAppDiscountpackageListByOrgSid(orgSid);
return rb.success().setData(appDiscountpackageListVos);
}
public ResultBean<AppDiscountpackagesVo> selectDiscountpackage(String sid) {
ResultBean<AppDiscountpackagesVo> rb = ResultBean.fireFail();
BaseDiscountpackage baseDiscountpackage = fetchBySid(sid);
if(baseDiscountpackage == null){
return rb.setMsg("该销售政策不存在");
}
AppDiscountpackagesVo appDiscountpackageVo = baseMapper.selectDiscountpackage(sid);
if(appDiscountpackageVo != null){
if("0001".equals(appDiscountpackageVo.getSalesPolicyKey())){
appDiscountpackageVo.setShowList(true);
}else{
appDiscountpackageVo.setShowList(false);
}
List<BaseDiscountpackageVehDetailsVo> baseDiscountpackageVehDetailsVos = baseDiscountpackageVehService.fetchByMainSid(sid);
for (BaseDiscountpackageVehDetailsVo baseDiscountpackageVehDetailsVo : baseDiscountpackageVehDetailsVos) {
if (baseDiscountpackageVehDetailsVo.getPriceDate() != null) {
Date priceDate = baseDiscountpackageVehDetailsVo.getPriceDate();
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
int i = priceDate.compareTo(currentDate);
long betweenDay = DateUtil.between(priceDate, currentDate, DateUnit.DAY);
baseDiscountpackageVehDetailsVo.setLibraryAge(betweenDay * i * -1);
}
}
appDiscountpackageVo.setBaseDiscountpackageVehs(baseDiscountpackageVehDetailsVos);
}
return rb.success().setData(appDiscountpackageVo);
}
}

39
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageDto.java

@ -0,0 +1,39 @@
package com.yxt.anrui.terminal.api.autoservice.discountpackage;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2023/3/13 13:41
* @Description
*/
@Data
public class DiscountPackageDto implements Dto {
private static final long serialVersionUID = 105301251773518889L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
private String orgPath;
}

52
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeign.java

@ -0,0 +1,52 @@
package com.yxt.anrui.terminal.api.autoservice.discountpackage;
import com.yxt.common.core.result.ResultBean;
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.*;
/**
* @Author dimengzhe
* @Date 2023/3/13 13:36
* @Description
*/
@Api(tags = "移动端销售政策")
@FeignClient(
contextId = "anrui-terminal-DiscountPackage",
name = "anrui-terminal",
path = "/autoservice/v1/discountpackage",
fallback = DiscountPackageFeignFallback.class)
public interface DiscountPackageFeign {
@ApiOperation("办理")
@PutMapping("/agreeDiscountPackageInfo")
@ResponseBody
ResultBean agreeDiscountPackageInfo(@RequestBody DiscountPackageDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectDiscountPackageInfo")
@ResponseBody
ResultBean rejectDiscountPackageInfo(@RequestBody DiscountPackageTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallDiscountPackageInfo")
@ResponseBody
ResultBean recallDiscountPackageInfo(@RequestBody DiscountPackageTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopDiscountPackageInfo")
@ResponseBody
ResultBean stopDiscountPackageInfo(@RequestBody DiscountPackageTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap DiscountPackageQuery query);
@ApiOperation("获取销售政策")
@GetMapping("/getDiscountPackage")
@ResponseBody
ResultBean<DiscountPackageVo> getDiscountPackage(@PathVariable("sid")String sid);
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.terminal.api.autoservice.discountpackage;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2023/3/13 13:37
* @Description
*/
@Component
public class DiscountPackageFeignFallback {
}

28
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageQuery.java

@ -0,0 +1,28 @@
package com.yxt.anrui.terminal.api.autoservice.discountpackage;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author dimengzhe
* @Date 2023/3/13 13:52
* @Description
*/
@Data
public class DiscountPackageQuery implements Query {
private static final long serialVersionUID = 8862965764265177948L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
@ApiModelProperty("组织机构全路径")
private String orgPath;
}

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageTaskQuery.java

@ -0,0 +1,46 @@
package com.yxt.anrui.terminal.api.autoservice.discountpackage;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2023/3/13 13:51
* @Description
*/
@Data
public class DiscountPackageTaskQuery implements Query {
/**
* 终止驳回撤回
*/
@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")
@JsonProperty("procInsId")
private String instanceId;
}

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVehVo.java

@ -0,0 +1,46 @@
package com.yxt.anrui.terminal.api.autoservice.discountpackage;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author dimengzhe
* @Date 2023/3/13 17:54
* @Description
*/
@Data
public class DiscountPackageVehVo implements Vo {
private static final long serialVersionUID = -2849334097860448274L;
private String sid;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("车型名称")
private String vehModelName;
@ApiModelProperty("车辆sid")
private String vehSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("厂家结算价")
private String manufactorSettlementPrice;
@ApiModelProperty("厂家入库日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date priceDate;
@ApiModelProperty("买断状态key")
private String settlementStatus;
@ApiModelProperty("买断状态value")
private String settlementStatusValue;
@ApiModelProperty("销售指导价(贷款)")
private String guidedDKPrice;
@ApiModelProperty("销售指导价(全款)")
private String guidedQKPrice;
@ApiModelProperty("销售政策sid")
private String mainSid;
@ApiModelProperty(value = "厂家库龄")
private Long libraryAge;
}

47
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVo.java

@ -0,0 +1,47 @@
package com.yxt.anrui.terminal.api.autoservice.discountpackage;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/3/13 17:45
* @Description
*/
@Data
public class DiscountPackageVo implements Vo {
private static final long serialVersionUID = -1513102031251371720L;
//优惠名称
private String projectName;
//说明
private String discountExplain;
//生效时间
private String effectiveDate;
//是否生效
private String isEmployValue;
//政策类别
private String salesPolicy;
private String salesPolicyKey;
//优惠包类别
private String discountType;
//优惠包成本
private String projectCost;
//优惠包价值
private String discountMoney;
//是否有列表
private boolean isShowList;
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty("销售车辆列表")
private List<DiscountPackageVehVo> baseDiscountpackageVehs = new ArrayList<>();
}

53
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageRest.java

@ -0,0 +1,53 @@
package com.yxt.anrui.terminal.biz.autoservice.discountpackage;
import com.yxt.anrui.terminal.api.autoservice.discountpackage.*;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2023/3/13 13:54
* @Description
*/
@Api(tags = "移动端销售政策")
@Controller
@RequestMapping("/autoservice/v1/discountpackage")
public class DiscountPackageRest implements DiscountPackageFeign {
@Autowired
private DiscountPackageService discountPackageService;
@Override
public ResultBean agreeDiscountPackageInfo(DiscountPackageDto dto) {
return discountPackageService.agreeDiscountPackageInfo(dto);
}
@Override
public ResultBean rejectDiscountPackageInfo(DiscountPackageTaskQuery query) {
return discountPackageService.rejectDiscountPackageInfo(query);
}
@Override
public ResultBean recallDiscountPackageInfo(DiscountPackageTaskQuery query) {
return discountPackageService.recallDiscountPackageInfo(query);
}
@Override
public ResultBean stopDiscountPackageInfo(DiscountPackageTaskQuery query) {
return discountPackageService.stopDiscountPackageInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(DiscountPackageQuery query) {
return discountPackageService.getFlowOperateTitle(query);
}
@Override
public ResultBean<DiscountPackageVo> getDiscountPackage(String sid) {
return discountPackageService.getDiscountPackage(sid);
}
}

141
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageService.java

@ -0,0 +1,141 @@
package com.yxt.anrui.terminal.biz.autoservice.discountpackage;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.basediscountpackage.BaseDiscountpackageFeign;
import com.yxt.anrui.base.api.basediscountpackage.app.AppDiscountpackagesVo;
import com.yxt.anrui.base.api.basediscountpackage.flow.BaseDiscountpackageCompleteDto;
import com.yxt.anrui.base.api.basediscountpackage.flow.BaseDiscountpackageTaskQuery;
import com.yxt.anrui.base.api.basediscountpackage.flow.GetNodeQuery;
import com.yxt.anrui.base.api.basediscountpackage.flow.GetNodeVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
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.terminal.api.autoservice.discountpackage.DiscountPackageDto;
import com.yxt.anrui.terminal.api.autoservice.discountpackage.DiscountPackageQuery;
import com.yxt.anrui.terminal.api.autoservice.discountpackage.DiscountPackageTaskQuery;
import com.yxt.anrui.terminal.api.autoservice.discountpackage.DiscountPackageVo;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/3/13 13:54
* @Description
*/
@Service
public class DiscountPackageService {
@Autowired
private BaseDiscountpackageFeign discountpackageFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean agreeDiscountPackageInfo(DiscountPackageDto dto) {
ResultBean rb = ResultBean.fireFail();
String orgPath = dto.getOrgPath();
BaseDiscountpackageCompleteDto baseDiscountpackageCompleteDto = new BaseDiscountpackageCompleteDto();
BeanUtil.copyProperties(dto, baseDiscountpackageCompleteDto);
if (StringUtils.isBlank(orgPath)) {
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
orgPath = staffOrgResultBean.getData().getOrgSidPath();
}
baseDiscountpackageCompleteDto.setOrgSidPath(orgPath);
ResultBean resultBean = discountpackageFeign.complete(baseDiscountpackageCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectDiscountPackageInfo(DiscountPackageTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
BaseDiscountpackageTaskQuery discountpackageTaskQuery = new BaseDiscountpackageTaskQuery();
BeanUtil.copyProperties(query, discountpackageTaskQuery);
ResultBean resultBean = discountpackageFeign.taskReject(discountpackageTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallDiscountPackageInfo(DiscountPackageTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
BaseDiscountpackageTaskQuery baseDiscountpackageTaskQuery = new BaseDiscountpackageTaskQuery();
BeanUtil.copyProperties(query, baseDiscountpackageTaskQuery);
ResultBean resultBean = discountpackageFeign.revokeProcess(baseDiscountpackageTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopDiscountPackageInfo(DiscountPackageTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
BaseDiscountpackageTaskQuery baseDiscountpackageTaskQuery = new BaseDiscountpackageTaskQuery();
BeanUtil.copyProperties(query, baseDiscountpackageTaskQuery);
ResultBean resultBean = discountpackageFeign.breakProcess(baseDiscountpackageTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(DiscountPackageQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
GetNodeQuery getNodeQuery = new GetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<GetNodeVo>> getPreviousNodesForReject = discountpackageFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<GetNodeVo>> getNextNodesForSubmit = discountpackageFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean<DiscountPackageVo> getDiscountPackage(String sid) {
ResultBean<DiscountPackageVo> rb = ResultBean.fireFail();
DiscountPackageVo discountPackageVo = new DiscountPackageVo();
ResultBean<AppDiscountpackagesVo> resultBean = discountpackageFeign.selectDiscountpackage(sid);
if(!resultBean.getSuccess()){
return rb.setMsg(resultBean.getMsg());
}
AppDiscountpackagesVo appDiscountpackagesVo = resultBean.getData();
BeanUtil.copyProperties(appDiscountpackagesVo,discountPackageVo);
return rb.success().setData(discountPackageVo);
}
}

92
doc/databases/risk_center.sql

@ -514,7 +514,7 @@ CREATE TABLE `loan_urge_appendix`
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='逾期催收见证材料';
-- 项目金融方案表(总)
/*-- 项目金融方案表(总)
DROP TABLE IF EXISTS `loan_solutions`;
CREATE TABLE `loan_solutions`
(
@ -575,7 +575,7 @@ CREATE TABLE `loan_solutions`
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='项目金融方案表(总)';
DEFAULT CHARSET = utf8 COMMENT ='项目金融方案表(总)';*/
-- 金融方案项目明细表(总)
DROP TABLE IF EXISTS `loan_solutions_detail`;
@ -747,18 +747,18 @@ CREATE TABLE `loan_loanPrice`
`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',
`orderSid` varchar(64) DEFAULT NULL COMMENT '订单sid',
`borrowerSid` varchar(64) DEFAULT NULL COMMENT '贷款人sid',
`billNo` varchar(64) DEFAULT NULL COMMENT '单据编号(制定编号规则:单据类型编号+部门全编号+yyyyMMDD+0000)',
`staffSid` varchar(64) DEFAULT NULL COMMENT '业务员sid',
`staffName` varchar(64) DEFAULT NULL COMMENT '业务员姓名',
`orgSid` varchar(64) DEFAULT NULL COMMENT '组织机构sid',
`orgName` varchar(255) DEFAULT NULL COMMENT '部门名称',
`createDate` varchar(255) DEFAULT NULL COMMENT '制单日期',
`isSame` int(4) DEFAULT NULL COMMENT '客户与实际贷款人不同(0为相同,1为不同。默认为0)',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`orderSid` varchar(64) DEFAULT NULL COMMENT '订单sid',
`borrowerSid` varchar(64) DEFAULT NULL COMMENT '贷款人sid',
`billNo` varchar(64) DEFAULT NULL COMMENT '单据编号(制定编号规则:单据类型编号+部门全编号+yyyyMMDD+0000)',
`staffSid` varchar(64) DEFAULT NULL COMMENT '业务员sid',
`staffName` varchar(64) DEFAULT NULL COMMENT '业务员姓名',
`orgSid` varchar(64) DEFAULT NULL COMMENT '组织机构sid',
`orgName` varchar(255) DEFAULT NULL COMMENT '部门名称',
`createDate` varchar(255) DEFAULT NULL COMMENT '制单日期',
`isSame` int(4) DEFAULT NULL COMMENT '客户与实际贷款人不同(0为相同,1为不同。默认为0)',
PRIMARY KEY (`id`) USING BTREE,
KEY `id` (`id`) USING BTREE
) ENGINE = InnoDB
@ -895,6 +895,70 @@ CREATE TABLE `loan_solutions_top`
ROW_FORMAT = DYNAMIC COMMENT ='销售金融方案中车辆上装信息(总)';
-- 项目金融方案表(总)
DROP TABLE IF EXISTS `loan_solutions`;
CREATE TABLE `loan_solutions`
(
`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',
`salesOrderSid` VARCHAR(64) DEFAULT NULL COMMENT '销售订单sid',
`trailerAdvance` decimal(10, 2) DEFAULT NULL COMMENT '挂车垫款',
`topcoatAdvance` decimal(10, 2) DEFAULT NULL COMMENT '上装垫款',
`packingProject` varchar(100) DEFAULT NULL COMMENT '打包项目(xxx/xxx/xxx/)',
`mainVehicleAmount` decimal(10, 2) DEFAULT NULL COMMENT '主车金额',
`trailerAmount` decimal(10, 2) DEFAULT NULL COMMENT '挂车金额',
`topcoatAmount` decimal(10, 2) DEFAULT NULL COMMENT '上装金额',
`accessoriesAmount` decimal(10, 2) DEFAULT NULL COMMENT '配件金额',
`purchaseTax` decimal(10, 2) DEFAULT NULL COMMENT '购置税',
`insuredAmount` decimal(10, 2) DEFAULT NULL COMMENT '保险金额',
`otherAmount` decimal(10, 2) DEFAULT NULL COMMENT '其它金额',
`financingRemarks` varchar(255) DEFAULT NULL COMMENT '融资备注',
`financingAmount` decimal(10, 2) DEFAULT NULL COMMENT '融资总价(项目金额)',
`bankAccess` varchar(100) DEFAULT NULL COMMENT '银行通道(资方)',
`productPolicy` varchar(255) DEFAULT NULL COMMENT '产品政策',
`factoryDiscount` decimal(10, 3) DEFAULT NULL COMMENT '厂家贴息',
`downPayRatio` decimal(10, 3) DEFAULT NULL COMMENT '首付款比例(%)',
`downPayPrincipal` decimal(10, 2) DEFAULT NULL COMMENT '首付本金',
`loanRatio` decimal(10, 3) DEFAULT NULL COMMENT '贷款比例(%)',
`loanAmount` decimal(10, 2) DEFAULT NULL COMMENT '贷款金额',
`bondRatio` decimal(10, 3) DEFAULT NULL COMMENT '保证金比例(%)',
`bondAmount` decimal(10, 2) DEFAULT NULL COMMENT '保证金金额',
`bondMethod` varchar(20) DEFAULT NULL COMMENT '保证金方式(单一/敞口)',
`loanPeriod` int(10) DEFAULT NULL COMMENT '贷款期数',
`loanPayMoney` decimal(10, 2) DEFAULT NULL COMMENT '贷款月还',
`policyYearRatio` decimal(10, 3) DEFAULT NULL COMMENT '政策年利率(%)',
`loanInterest` decimal(10, 2) DEFAULT NULL COMMENT '贷款利息',
`solutionsRemarks` varchar(255) DEFAULT NULL COMMENT '金融方案备注',
`downPayFinancier` varchar(100) DEFAULT NULL COMMENT '首付融资方',
`downPay` decimal(10, 2) DEFAULT NULL COMMENT '首付融金额',
`downPayNo` int(10) DEFAULT NULL COMMENT '首付融期数',
`downPayInterest` decimal(10, 2) DEFAULT NULL COMMENT '首付融利息',
`downPayMoney` decimal(10, 2) DEFAULT NULL COMMENT '首付融月还',
`downPayRemarks` varchar(255) DEFAULT NULL COMMENT '首付融备注',
`advanceAmount` decimal(10, 2) DEFAULT NULL COMMENT '公司垫款金额',
`advanceTimeLimit` varchar(10) DEFAULT NULL COMMENT '垫款期限',
`advanceAllInterest` decimal(10, 2) DEFAULT NULL COMMENT '垫款总利息',
`c_repayMoney` decimal(10, 2) DEFAULT NULL COMMENT '公司垫款月还',
`c_repayRemarks` varchar(255) DEFAULT NULL COMMENT '公司垫款备注',
`prophase` int(10) DEFAULT NULL COMMENT '前n期',
`prophasePayMoney` decimal(10, 2) DEFAULT NULL COMMENT '前n期月还',
`residualsPayMoney` decimal(10, 2) DEFAULT NULL COMMENT '剩余期数月还',
`modeOfRePay` varchar(20) DEFAULT NULL COMMENT '还款方式',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='项目金额方案单车';

Loading…
Cancel
Save