18 changed files with 669 additions and 26 deletions
@ -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<>(); |
|||
} |
@ -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; |
|||
} |
@ -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); |
|||
} |
@ -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 { |
|||
} |
@ -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; |
|||
} |
@ -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; |
|||
} |
@ -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; |
|||
} |
@ -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<>(); |
|||
} |
@ -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); |
|||
} |
|||
} |
@ -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); |
|||
} |
|||
} |
Loading…
Reference in new issue