diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeign.java index e4c55c758f..21fc474ab4 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeign.java +++ b/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> getMoney(@RequestParam("vinSid")String vinSid,@RequestParam("orgSid")String orgSid); + @ApiOperation(value = "移动端销售政策详情") + @GetMapping(value = "/selectDiscountpackage") + ResultBean selectDiscountpackage(@PathVariable("sid")String sid); + } \ No newline at end of file diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeignFallback.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeignFallback.java index a20725646f..8b94fe643e 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/BaseDiscountpackageFeignFallback.java +++ b/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 selectDiscountpackage(String sid) { + return null; + } + } \ No newline at end of file diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/app/AppDiscountpackagesVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/app/AppDiscountpackagesVo.java new file mode 100644 index 0000000000..3b89df0a18 --- /dev/null +++ b/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 baseDiscountpackageVehs = new ArrayList<>(); +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/flow/GetNodeQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/flow/GetNodeQuery.java index bd3292d925..b788c04d6a 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackage/flow/GetNodeQuery.java +++ b/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 formVariables; + + private String businessSid; } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.java index 15a6493096..c62fa79d5e 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.java +++ b/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 getMoney(@Param("vinSid") String vinSid, @Param("orgSid") String orgSid); List selectAppDiscountpackageListByOrgSid(String orgSid); + + AppDiscountpackagesVo selectDiscountpackage(String sid); } \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.xml index 443671acb0..18de11ec18 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageMapper.xml +++ b/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} + + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageRest.java index b25de1fd22..a12636389a 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageRest.java +++ b/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 selectDiscountpackage(String sid) { + return baseDiscountpackageService.selectDiscountpackage(sid); + } + } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java index 9ffe667daa..9af540218e 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackage/BaseDiscountpackageService.java +++ b/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 resultBean = flowableFeign.handleProsess(bv); if (!resultBean.getSuccess()) { return rb.setMsg(resultBean.getMsg()); @@ -570,19 +572,32 @@ public class BaseDiscountpackageService extends MybatisBaseService map = new HashMap<>(); Map 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>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); -// List 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>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); -// List 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 appDiscountpackageListVos = baseMapper.selectAppDiscountpackageListByOrgSid(orgSid); return rb.success().setData(appDiscountpackageListVos); } + + public ResultBean selectDiscountpackage(String sid) { + ResultBean 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 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); + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageDto.java new file mode 100644 index 0000000000..9a70b0729c --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeign.java new file mode 100644 index 0000000000..69708da603 --- /dev/null +++ b/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 getFlowOperateTitle(@SpringQueryMap DiscountPackageQuery query); + + @ApiOperation("获取销售政策") + @GetMapping("/getDiscountPackage") + @ResponseBody + ResultBean getDiscountPackage(@PathVariable("sid")String sid); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageFeignFallback.java new file mode 100644 index 0000000000..d463533c30 --- /dev/null +++ b/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 { +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageQuery.java new file mode 100644 index 0000000000..2f4f100b03 --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageTaskQuery.java new file mode 100644 index 0000000000..1ba6d4d93a --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVehVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVehVo.java new file mode 100644 index 0000000000..c73a6da19a --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountpackage/DiscountPackageVo.java new file mode 100644 index 0000000000..d27f12be10 --- /dev/null +++ b/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 baseDiscountpackageVehs = new ArrayList<>(); +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageRest.java new file mode 100644 index 0000000000..8ed4e0cb17 --- /dev/null +++ b/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 getFlowOperateTitle(DiscountPackageQuery query) { + return discountPackageService.getFlowOperateTitle(query); + } + + @Override + public ResultBean getDiscountPackage(String sid) { + return discountPackageService.getDiscountPackage(sid); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/discountpackage/DiscountPackageService.java new file mode 100644 index 0000000000..65c8da58f4 --- /dev/null +++ b/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 userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据staffSid获取用户的组织全路径 + ResultBean 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 getFlowOperateTitle(DiscountPackageQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + GetNodeQuery getNodeQuery = new GetNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> 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> 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 getDiscountPackage(String sid) { + ResultBean rb = ResultBean.fireFail(); + DiscountPackageVo discountPackageVo = new DiscountPackageVo(); + ResultBean 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); + } +} diff --git a/doc/databases/risk_center.sql b/doc/databases/risk_center.sql index 92b47775ce..0f542db829 100644 --- a/doc/databases/risk_center.sql +++ b/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 ='项目金额方案单车'; + +