
@ -0,0 +1,98 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||
|
import com.yxt.common.core.domain.BaseEntity; |
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFiling.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFiling <br/> |
||||
|
* Description: 价值客户备案申请. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ApiModel(value = "价值客户备案申请", description = "价值客户备案申请") |
||||
|
@TableName("bus_valcust_filing") |
||||
|
public class BusValcustFiling extends BaseEntity { |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
@ApiModelProperty("创建人姓名") |
||||
|
private String createByName; // 创建人姓名
|
||||
|
@ApiModelProperty("申请编号") |
||||
|
private String billNo; // 申请编号
|
||||
|
@ApiModelProperty("分公司sid") |
||||
|
private String useOrgSid; // 分公司sid
|
||||
|
@ApiModelProperty("分公司名称") |
||||
|
private String useOrgName; // 分公司名称
|
||||
|
@ApiModelProperty("申请部门sid") |
||||
|
private String applyDeptSid; // 申请部门sid
|
||||
|
@ApiModelProperty("申请部门名称") |
||||
|
private String applyDeptName; // 申请部门名称
|
||||
|
@ApiModelProperty("合同编号") |
||||
|
private String contractNo; // 合同编号
|
||||
|
@ApiModelProperty("车型sid") |
||||
|
private String modelSid; // 车型sid
|
||||
|
@ApiModelProperty("车型名称") |
||||
|
private String modelName; // 车型名称
|
||||
|
@ApiModelProperty("车辆sid") |
||||
|
private String vinSid; // 车辆sid
|
||||
|
@ApiModelProperty("车架号") |
||||
|
private String vinNo; // 车架号
|
||||
|
@ApiModelProperty("0高开,1低开") |
||||
|
private String isGdk; |
||||
|
@ApiModelProperty("加装配置/销售让利金额") |
||||
|
private String money; // 加装配置/销售让利金额
|
||||
|
@ApiModelProperty("应收手续费") |
||||
|
private String ysMoney; // 应收手续费
|
||||
|
@ApiModelProperty("实收手续费") |
||||
|
private String ssMoney; // 实收手续费
|
||||
|
@ApiModelProperty("节点状态") |
||||
|
private String nodeState; // 节点状态
|
||||
|
@ApiModelProperty("流程定义id") |
||||
|
private String procDefId; // 流程定义id
|
||||
|
@ApiModelProperty("环节定义id") |
||||
|
private String nodeId; // 环节定义id
|
||||
|
@ApiModelProperty("流程实例id") |
||||
|
private String procInstId; // 流程实例id
|
||||
|
@ApiModelProperty("任务id") |
||||
|
private String taskId; |
||||
|
@ApiModelProperty("销售订单sid") |
||||
|
private String saleOrderSid; |
||||
|
@ApiModelProperty("组织机构全路径sid") |
||||
|
private String orgSidPath; // 组织机构全路径sid
|
||||
|
|
||||
|
} |
@ -0,0 +1,93 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling; |
||||
|
|
||||
|
|
||||
|
import com.yxt.common.core.vo.Vo; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingVo.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo <br/> |
||||
|
* Description: 价值客户备案申请 视图数据对象. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ApiModel(value = "价值客户备案申请 视图数据详情", description = "价值客户备案申请 视图数据详情") |
||||
|
public class BusValcustFilingDetailsVo implements Vo { |
||||
|
|
||||
|
private String sid; // sid
|
||||
|
|
||||
|
@ApiModelProperty("创建人姓名") |
||||
|
private String createByName; // 创建人姓名
|
||||
|
@ApiModelProperty("申请编号") |
||||
|
private String billNo; // 申请编号
|
||||
|
@ApiModelProperty("分公司sid") |
||||
|
private String useOrgSid; // 分公司sid
|
||||
|
@ApiModelProperty("分公司名称") |
||||
|
private String useOrgName; // 分公司名称
|
||||
|
@ApiModelProperty("申请部门sid") |
||||
|
private String applyDeptSid; // 申请部门sid
|
||||
|
@ApiModelProperty("申请部门名称") |
||||
|
private String applyDeptName; // 申请部门名称
|
||||
|
@ApiModelProperty("合同编号") |
||||
|
private String contractNo; // 合同编号
|
||||
|
@ApiModelProperty("车型sid") |
||||
|
private String modelSid; // 车型sid
|
||||
|
@ApiModelProperty("车型名称") |
||||
|
private String modelName; // 车型名称
|
||||
|
@ApiModelProperty("车辆sid") |
||||
|
private String vinSid; // 车辆sid
|
||||
|
@ApiModelProperty("车架号") |
||||
|
private String vinNo; // 车架号
|
||||
|
@ApiModelProperty("0高开,1低开") |
||||
|
private String isGdk; |
||||
|
@ApiModelProperty("加装配置/销售让利金额") |
||||
|
private String money; // 加装配置/销售让利金额
|
||||
|
@ApiModelProperty("应收手续费") |
||||
|
private String ysMoney; // 应收手续费
|
||||
|
@ApiModelProperty("实收手续费") |
||||
|
private String ssMoney; // 实收手续费
|
||||
|
@ApiModelProperty("销售订单sid") |
||||
|
private String saleOrderSid; |
||||
|
@ApiModelProperty("流程定义id") |
||||
|
private String procDefId; // 流程定义id
|
||||
|
@ApiModelProperty("流程实例id") |
||||
|
private String procInstId; // 流程实例id
|
||||
|
@ApiModelProperty("组织机构全路径sid") |
||||
|
private String orgSidPath; // 组织机构全路径sid
|
||||
|
|
||||
|
} |
@ -0,0 +1,91 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling; |
||||
|
|
||||
|
|
||||
|
import com.yxt.common.core.dto.Dto; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingDto.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto <br/> |
||||
|
* Description: 价值客户备案申请 数据传输对象. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ApiModel(value = "价值客户备案申请 数据传输对象", description = "价值客户备案申请 数据传输对象") |
||||
|
public class BusValcustFilingDto implements Dto { |
||||
|
|
||||
|
private String sid; // sid
|
||||
|
|
||||
|
@ApiModelProperty("创建人sid") |
||||
|
private String createBySid; |
||||
|
@ApiModelProperty("创建人姓名") |
||||
|
private String createByName; // 创建人姓名
|
||||
|
@ApiModelProperty("申请编号") |
||||
|
private String billNo; // 申请编号
|
||||
|
@ApiModelProperty("分公司sid") |
||||
|
private String useOrgSid; // 分公司sid
|
||||
|
@ApiModelProperty("分公司名称") |
||||
|
private String useOrgName; // 分公司名称
|
||||
|
@ApiModelProperty("申请部门sid") |
||||
|
private String applyDeptSid; // 申请部门sid
|
||||
|
@ApiModelProperty("申请部门名称") |
||||
|
private String applyDeptName; // 申请部门名称
|
||||
|
@ApiModelProperty("合同编号") |
||||
|
private String contractNo; // 合同编号
|
||||
|
@ApiModelProperty("车型sid") |
||||
|
private String modelSid; // 车型sid
|
||||
|
@ApiModelProperty("车型名称") |
||||
|
private String modelName; // 车型名称
|
||||
|
@ApiModelProperty("车辆sid") |
||||
|
private String vinSid; // 车辆sid
|
||||
|
@ApiModelProperty("车架号") |
||||
|
private String vinNo; // 车架号
|
||||
|
@ApiModelProperty("0高开,1低开") |
||||
|
private String isGdk; |
||||
|
@ApiModelProperty("加装配置/销售让利金额") |
||||
|
private String money; // 加装配置/销售让利金额
|
||||
|
@ApiModelProperty("应收手续费") |
||||
|
private String ysMoney; // 应收手续费
|
||||
|
@ApiModelProperty("实收手续费") |
||||
|
private String ssMoney; // 实收手续费
|
||||
|
@ApiModelProperty("销售订单sid") |
||||
|
private String saleOrderSid; |
||||
|
@ApiModelProperty("组织机构全路径sid") |
||||
|
private String orgSidPath; // 组织机构全路径sid
|
||||
|
|
||||
|
} |
@ -0,0 +1,109 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling; |
||||
|
|
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.*; |
||||
|
import io.swagger.annotations.Api; |
||||
|
import io.swagger.annotations.ApiOperation; |
||||
|
import com.yxt.common.core.query.PagerQuery; |
||||
|
import com.yxt.common.core.result.ResultBean; |
||||
|
import com.yxt.common.core.vo.PagerVo; |
||||
|
import org.springframework.cloud.openfeign.FeignClient; |
||||
|
import org.springframework.cloud.openfeign.SpringQueryMap; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.validation.Valid; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingFeign.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeign <br/> |
||||
|
* Description: 价值客户备案申请. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Api(tags = "价值客户备案申请") |
||||
|
@FeignClient( |
||||
|
contextId = "anrui-buscenter-BusValcustFiling", |
||||
|
name = "anrui-buscenter", |
||||
|
path = "v1/busvalcustfiling", |
||||
|
fallback = BusValcustFilingFeignFallback.class) |
||||
|
public interface BusValcustFilingFeign { |
||||
|
|
||||
|
@ApiOperation("根据条件分页查询数据的列表") |
||||
|
@PostMapping("/listPage") |
||||
|
@ResponseBody |
||||
|
public ResultBean<PagerVo<BusValcustFilingVo>> listPage(@RequestBody PagerQuery<BusValcustFilingQuery> pq); |
||||
|
|
||||
|
@ApiOperation("新增或修改") |
||||
|
@PostMapping("/save") |
||||
|
@ResponseBody |
||||
|
public ResultBean save(@RequestBody BusValcustFilingDto dto); |
||||
|
|
||||
|
@ApiOperation("根据sid删除记录") |
||||
|
@DeleteMapping("/delBySids") |
||||
|
@ResponseBody |
||||
|
public ResultBean delBySids(@RequestBody String[] sids); |
||||
|
|
||||
|
@ApiOperation("根据SID获取一条记录") |
||||
|
@GetMapping("/fetchDetailsBySid/{sid}") |
||||
|
@ResponseBody |
||||
|
public ResultBean<BusValcustFilingDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid); |
||||
|
|
||||
|
@ApiOperation("提交审批流程") |
||||
|
@PostMapping("/submit") |
||||
|
public ResultBean submit(@RequestBody @Valid SubmitBusValcustFilingDto dto); |
||||
|
|
||||
|
@ApiOperation(value = "办理(同意)") |
||||
|
@PostMapping("/complete") |
||||
|
public ResultBean complete(@Valid @RequestBody BusValcustFilingCompleteDto query); |
||||
|
|
||||
|
@ApiOperation(value = "获取上一个环节") |
||||
|
@GetMapping(value = "/getPreviousNodesForReject") |
||||
|
ResultBean<List<BusValcustFilingNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap BusValcustFilingNodeQuery query); |
||||
|
|
||||
|
@ApiOperation(value = "获取下一个环节") |
||||
|
@GetMapping(value = "/getNextNodesForSubmit") |
||||
|
ResultBean<List<BusValcustFilingNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap BusValcustFilingNodeQuery query); |
||||
|
|
||||
|
@ApiOperation(value = "驳回任务") |
||||
|
@PostMapping(value = "/reject") |
||||
|
public ResultBean reject(@Valid @RequestBody BusValcustFilingTaskQuery query); |
||||
|
|
||||
|
@ApiOperation(value = "撤回流程") |
||||
|
@PostMapping(value = "/revokeProcess") |
||||
|
public ResultBean revokeProcess(@Valid @RequestBody BusValcustFilingTaskQuery query); |
||||
|
|
||||
|
@ApiOperation(value = "终止任务") |
||||
|
@PostMapping(value = "/breakProcess") |
||||
|
public ResultBean breakProcess(@Valid @RequestBody BusValcustFilingTaskQuery query); |
||||
|
} |
@ -0,0 +1,108 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling; |
||||
|
|
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.*; |
||||
|
import com.yxt.common.core.query.PagerQuery; |
||||
|
import com.yxt.common.core.result.ResultBean; |
||||
|
import com.yxt.common.core.vo.PagerVo; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingFeignFallback.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeignFallback <br/> |
||||
|
* Description: 价值客户备案申请. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Component |
||||
|
public class BusValcustFilingFeignFallback implements BusValcustFilingFeign { |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean<PagerVo<BusValcustFilingVo>> listPage(PagerQuery<BusValcustFilingQuery> pq){ |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
return rb.setMsg("接口anrui-buscenter/busvalcustfiling/listPage无法访问"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean save(BusValcustFilingDto dto){ |
||||
|
return ResultBean.fireFail().setMsg("接口anrui-buscenter/busvalcustfiling/save无法访问"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean delBySids( String[] sids){ |
||||
|
return ResultBean.fireFail().setMsg("接口anrui-buscenter/busvalcustfiling/delBySids无法访问"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean<BusValcustFilingDetailsVo> fetchDetailsBySid(String sid){ |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
return rb.setMsg("接口anrui-buscenter/busvalcustfiling/fetchDetailsBySid无法访问"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean submit(SubmitBusValcustFilingDto dto) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean complete(BusValcustFilingCompleteDto query) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean<List<BusValcustFilingNodeVo>> getPreviousNodesForReject(BusValcustFilingNodeQuery query) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean<List<BusValcustFilingNodeVo>> getNextNodesForSubmit(BusValcustFilingNodeQuery query) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean reject(BusValcustFilingTaskQuery query) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean revokeProcess(BusValcustFilingTaskQuery query) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean breakProcess(BusValcustFilingTaskQuery query) { |
||||
|
return null; |
||||
|
} |
||||
|
} |
@ -0,0 +1,67 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling; |
||||
|
|
||||
|
|
||||
|
import com.yxt.common.core.query.Query; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingQuery.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingQuery <br/> |
||||
|
* Description: 价值客户备案申请 查询条件. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ApiModel(value = "价值客户备案申请 查询条件", description = "价值客户备案申请 查询条件") |
||||
|
public class BusValcustFilingQuery implements Query { |
||||
|
|
||||
|
@ApiModelProperty("车型") |
||||
|
private String modelName; |
||||
|
@ApiModelProperty("合同编号") |
||||
|
private String contractNo; |
||||
|
@ApiModelProperty("申请人姓名") |
||||
|
private String createByName; |
||||
|
@ApiModelProperty("申请开始日期") |
||||
|
private String createStartTime; |
||||
|
@ApiModelProperty("申请结束日期") |
||||
|
private String createEndTime; |
||||
|
@ApiModelProperty("组织机构全路径sid") |
||||
|
private String orgPath; |
||||
|
@ApiModelProperty("用户sid") |
||||
|
private String userSid; |
||||
|
private String menuUrl; |
||||
|
} |
@ -0,0 +1,80 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling; |
||||
|
|
||||
|
|
||||
|
import com.yxt.common.core.vo.Vo; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingVo.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo <br/> |
||||
|
* Description: 价值客户备案申请 视图数据对象. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ApiModel(value = "价值客户备案申请 视图数据对象", description = "价值客户备案申请 视图数据对象") |
||||
|
public class BusValcustFilingVo implements Vo { |
||||
|
|
||||
|
private String sid; |
||||
|
|
||||
|
@ApiModelProperty("节点状态") |
||||
|
private String nodeState; |
||||
|
@ApiModelProperty("分公司名称") |
||||
|
private String useOrgName; |
||||
|
@ApiModelProperty("申请部门名称") |
||||
|
private String applyDeptName; |
||||
|
@ApiModelProperty("申请人姓名") |
||||
|
private String createByName; |
||||
|
@ApiModelProperty("申请日期") |
||||
|
private String createTime; |
||||
|
@ApiModelProperty("合同编号") |
||||
|
private String contractNo; |
||||
|
@ApiModelProperty("车型名称") |
||||
|
private String modelName; |
||||
|
@ApiModelProperty("车架号") |
||||
|
private String vinNo; |
||||
|
@ApiModelProperty("加装配置/销售让利金额") |
||||
|
private String money; |
||||
|
@ApiModelProperty("应收手续费") |
||||
|
private String ysMoney; |
||||
|
@ApiModelProperty("实收手续费") |
||||
|
private String ssMoney; |
||||
|
@ApiModelProperty("流程定义id") |
||||
|
private String procDefId; |
||||
|
@ApiModelProperty("流程实例id") |
||||
|
private String procInstId; |
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling.flowable; |
||||
|
|
||||
|
import com.yxt.common.core.dto.Dto; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
|
||||
|
/** |
||||
|
* @Author dimengzhe |
||||
|
* @Date 2022/9/6 14:57 |
||||
|
* @Description |
||||
|
*/ |
||||
|
@Data |
||||
|
public class BusValcustFilingCompleteDto implements Dto { |
||||
|
private static final long serialVersionUID = 6378752532534735663L; |
||||
|
|
||||
|
@ApiModelProperty(value = "用户sid") |
||||
|
private String userSid; |
||||
|
@ApiModelProperty(value = "节点id") |
||||
|
@NotBlank(message = "参数错误:taskDefKey") |
||||
|
private String taskDefKey; |
||||
|
@ApiModelProperty(value = "任务id") |
||||
|
@NotBlank(message = "参数错误:taskId") |
||||
|
private String taskId; |
||||
|
@ApiModelProperty(value = "流程id(PC)") |
||||
|
private String instanceId; |
||||
|
@ApiModelProperty(value = "流程id(移动)") |
||||
|
private String procInsId; |
||||
|
@ApiModelProperty(value = "意见") |
||||
|
private String comment; |
||||
|
@ApiModelProperty(value = "业务sid") |
||||
|
@NotBlank(message = "参数错误:businessSid") |
||||
|
private String businessSid; |
||||
|
|
||||
|
private String orgPath; |
||||
|
} |
@ -0,0 +1,25 @@ |
|||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling.flowable; |
||||
|
|
||||
|
import com.yxt.common.core.query.Query; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
|
||||
|
/** |
||||
|
* @Author dimengzhe |
||||
|
* @Date 2022/9/6 15:04 |
||||
|
* @Description |
||||
|
*/ |
||||
|
@Data |
||||
|
public class BusValcustFilingNodeQuery implements Query { |
||||
|
private static final long serialVersionUID = 9117613683840483366L; |
||||
|
|
||||
|
@ApiModelProperty(value = "环节定义id") |
||||
|
@NotBlank(message = "参数错误:taskDefKey") |
||||
|
private String taskDefKey; |
||||
|
@ApiModelProperty(value = "业务sid") |
||||
|
private String businessSid; |
||||
|
@ApiModelProperty(value = "0 上一环节 1下一环节") |
||||
|
private Integer next; |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling.flowable; |
||||
|
|
||||
|
import com.yxt.common.core.vo.Vo; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @Author dimengzhe |
||||
|
* @Date 2022/9/6 15:03 |
||||
|
* @Description |
||||
|
*/ |
||||
|
@Data |
||||
|
public class BusValcustFilingNodeVo implements Vo { |
||||
|
private static final long serialVersionUID = -833419512294877848L; |
||||
|
|
||||
|
@ApiModelProperty(value = "节点名称") |
||||
|
private String name; |
||||
|
@ApiModelProperty(value = "节点id") |
||||
|
private String id; |
||||
|
@ApiModelProperty(value = "审批组") |
||||
|
private List<String> candidateGroups; |
||||
|
@ApiModelProperty(value = "是否是最后环节") |
||||
|
private String endTask; |
||||
|
} |
@ -0,0 +1,48 @@ |
|||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling.flowable; |
||||
|
|
||||
|
import com.yxt.common.core.query.Query; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
|
||||
|
/** |
||||
|
* @Author dimengzhe |
||||
|
* @Date 2022/9/6 15:06 |
||||
|
* @Description |
||||
|
*/ |
||||
|
@Data |
||||
|
public class BusValcustFilingTaskQuery implements Query { |
||||
|
private static final long serialVersionUID = 1288615499873178778L; |
||||
|
|
||||
|
/** |
||||
|
* 终止、驳回、撤回 |
||||
|
*/ |
||||
|
@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(PC)") |
||||
|
private String instanceId; |
||||
|
|
||||
|
@ApiModelProperty("流程实例Id(移动)") |
||||
|
private String procInsId; |
||||
|
} |
@ -0,0 +1,24 @@ |
|||||
|
package com.yxt.anrui.buscenter.api.busvalcustfiling.flowable; |
||||
|
|
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto; |
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* @author liuguohui |
||||
|
* @version 1.0 |
||||
|
* @description |
||||
|
* @date 2022/04/13 |
||||
|
*/ |
||||
|
@ApiModel("提交") |
||||
|
@Data |
||||
|
public class SubmitBusValcustFilingDto extends BusValcustFilingDto { |
||||
|
|
||||
|
@ApiModelProperty("意见") |
||||
|
private String comment; |
||||
|
@ApiModelProperty("流程实例id") |
||||
|
private String instanceId; |
||||
|
@ApiModelProperty("任务id") |
||||
|
private String taskId; |
||||
|
} |
@ -0,0 +1,70 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.biz.busvalcustfiling; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import com.baomidou.mybatisplus.core.toolkit.Constants; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
import org.apache.ibatis.annotations.Select; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFiling; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingMapper.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingMapper <br/> |
||||
|
* Description: 价值客户备案申请. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface BusValcustFilingMapper extends BaseMapper<BusValcustFiling> { |
||||
|
|
||||
|
//@Update("update bus_valcust_filing set name=#{msg} where id=#{id}")
|
||||
|
//IPage<BusValcustFilingVo> voPage(IPage<BusValcustFiling> page, @Param(Constants.WRAPPER) QueryWrapper<BusValcustFiling> qw);
|
||||
|
|
||||
|
IPage<BusValcustFilingVo> selectPageVo(IPage<BusValcustFiling> page, @Param(Constants.WRAPPER) Wrapper<BusValcustFiling> qw); |
||||
|
|
||||
|
List<BusValcustFilingVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BusValcustFiling> qw); |
||||
|
|
||||
|
@Select("select * from bus_valcust_filing") |
||||
|
List<BusValcustFilingVo> selectListVo(); |
||||
|
|
||||
|
int updateFlowFiled(Map<String, Object> map); |
||||
|
|
||||
|
String selectNum(String billNo); |
||||
|
} |
@ -0,0 +1,60 @@ |
|||||
|
<?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.buscenter.biz.busvalcustfiling.BusValcustFilingMapper"> |
||||
|
<!-- <where> ${ew.sqlSegment} </where>--> |
||||
|
<!-- ${ew.customSqlSegment} --> |
||||
|
<select id="selectPageVo" resultType="com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo"> |
||||
|
SELECT |
||||
|
bf.`sid`, |
||||
|
bf.`nodeState`, |
||||
|
bf.`useOrgName`, |
||||
|
bf.`applyDeptName`, |
||||
|
bf.`createByName`, |
||||
|
bf.`createTime`, |
||||
|
bf.`contractNo`, |
||||
|
bf.`modelName`, |
||||
|
bf.`vinNo`, |
||||
|
bf.`money`, |
||||
|
bf.`ysMoney`, |
||||
|
bf.`ssMoney`, |
||||
|
bf.`procDefId`, |
||||
|
bf.`procInstId` |
||||
|
FROM |
||||
|
bus_valcust_filing bf |
||||
|
LEFT JOIN bus_sales_order bo |
||||
|
ON bf.`contractNo` = bo.`contractNo` |
||||
|
<where> |
||||
|
${ew.sqlSegment} |
||||
|
</where> |
||||
|
</select> |
||||
|
|
||||
|
<select id="selectListAllVo" resultType="com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo"> |
||||
|
SELECT * FROM bus_valcust_filing |
||||
|
<where> |
||||
|
${ew.sqlSegment} |
||||
|
</where> |
||||
|
</select> |
||||
|
|
||||
|
<update id="updateFlowFiled"> |
||||
|
UPDATE bus_valcust_filing |
||||
|
SET nodeState=#{nodeState}, nodeId=#{taskDefKey} |
||||
|
<if test="procDefId != null and procDefId != ''"> |
||||
|
, procDefId=#{procDefId} |
||||
|
</if> |
||||
|
<if test="procInsId != null and procInsId != ''"> |
||||
|
, procInstId=#{procInsId} |
||||
|
</if> |
||||
|
<if test="taskId != null and taskId != ''"> |
||||
|
, taskId=#{taskId} |
||||
|
</if> |
||||
|
WHERE sid=#{sid} |
||||
|
</update> |
||||
|
|
||||
|
<select id="selectNum" resultType="java.lang.String"> |
||||
|
select RIGHT (billNo, 4) |
||||
|
from bus_valcust_filing |
||||
|
where billNo LIKE concat(#{billNo}, '%') |
||||
|
order by billNo desc |
||||
|
limit 1 |
||||
|
</select> |
||||
|
</mapper> |
@ -0,0 +1,142 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.biz.busvalcustfiling; |
||||
|
|
||||
|
import cn.hutool.core.bean.BeanUtil; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.*; |
||||
|
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; |
||||
|
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
||||
|
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.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFiling; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingQuery; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDetailsVo; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeign; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingFeignFallback.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingRest <br/> |
||||
|
* Description: 价值客户备案申请. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Api(tags = "价值客户备案申请") |
||||
|
@RestController("com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingRest") |
||||
|
@RequestMapping("v1/busvalcustfiling") |
||||
|
public class BusValcustFilingRest implements BusValcustFilingFeign { |
||||
|
|
||||
|
@Autowired |
||||
|
private BusValcustFilingService busValcustFilingService; |
||||
|
|
||||
|
@Override |
||||
|
@ApiOperation("根据条件分页查询数据的列表") |
||||
|
@PostMapping("/listPage") |
||||
|
public ResultBean<PagerVo<BusValcustFilingVo>> listPage(@RequestBody PagerQuery<BusValcustFilingQuery> pq){ |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
PagerVo<BusValcustFilingVo> pv = busValcustFilingService.listPageVo(pq); |
||||
|
return rb.success().setData(pv); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@ApiOperation("新增或修改") |
||||
|
@PostMapping("/save") |
||||
|
public ResultBean save(@RequestBody BusValcustFilingDto dto){ |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
busValcustFilingService.saveOrUpdateDto(dto); |
||||
|
return rb.success(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@ApiOperation("根据sid批量删除") |
||||
|
@PostMapping("/delBySids") |
||||
|
public ResultBean delBySids(@RequestBody String[] sids){ |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
busValcustFilingService.delBySids(sids); |
||||
|
return rb.success(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@ApiOperation("根据SID获取一条记录") |
||||
|
@GetMapping("/fetchDetailsBySid/{sid}") |
||||
|
public ResultBean<BusValcustFilingDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){ |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
BusValcustFilingDetailsVo vo = busValcustFilingService.fetchDetailsVoBySid(sid); |
||||
|
return rb.success().setData(vo); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean submit(SubmitBusValcustFilingDto dto) { |
||||
|
return busValcustFilingService.submit(dto); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean complete(BusValcustFilingCompleteDto query) { |
||||
|
BusinessVariables bv = new BusinessVariables(); |
||||
|
BeanUtil.copyProperties(query, bv); |
||||
|
bv.setModelId(ProcDefEnum.BUSVALCUSTFILING.getProDefId()); |
||||
|
return busValcustFilingService.complete(bv); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean<List<BusValcustFilingNodeVo>> getPreviousNodesForReject(BusValcustFilingNodeQuery query) { |
||||
|
return busValcustFilingService.getPreviousNodesForReject(query); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean<List<BusValcustFilingNodeVo>> getNextNodesForSubmit(BusValcustFilingNodeQuery query) { |
||||
|
return busValcustFilingService.getNextNodesForSubmit(query); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean reject(BusValcustFilingTaskQuery query) { |
||||
|
return busValcustFilingService.reject(query); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean revokeProcess(BusValcustFilingTaskQuery query) { |
||||
|
return busValcustFilingService.revokeProcess(query); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ResultBean breakProcess(BusValcustFilingTaskQuery query) { |
||||
|
return busValcustFilingService.breakProcess(query); |
||||
|
} |
||||
|
} |
@ -0,0 +1,496 @@ |
|||||
|
/********************************************************* |
||||
|
********************************************************* |
||||
|
******************** ******************* |
||||
|
************* ************ |
||||
|
******* _oo0oo_ ******* |
||||
|
*** o8888888o *** |
||||
|
* 88" . "88 * |
||||
|
* (| -_- |) * |
||||
|
* 0\ = /0 * |
||||
|
* ___/`---'\___ * |
||||
|
* .' \\| |// '. *
|
||||
|
* / \\||| : |||// \ *
|
||||
|
* / _||||| -:- |||||- \ * |
||||
|
* | | \\\ - /// | | *
|
||||
|
* | \_| ''\---/'' |_/ | * |
||||
|
* \ .-\__ '-' ___/-. / * |
||||
|
* ___'. .' /--.--\ `. .'___ * |
||||
|
* ."" '< `.___\_<|>_/___.' >' "". * |
||||
|
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
||||
|
* \ \ `_. \_ __\ /__ _/ .-` / / * |
||||
|
* =====`-.____`.___ \_____/___.-`___.-'===== * |
||||
|
* `=---=' * |
||||
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
||||
|
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
||||
|
*********************************************************/ |
||||
|
package com.yxt.anrui.buscenter.biz.busvalcustfiling; |
||||
|
|
||||
|
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.yxt.anrui.base.common.utils.Rule; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.BusValcustFilingNodeQuery; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.BusValcustFilingNodeVo; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.BusValcustFilingTaskQuery; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.SubmitBusValcustFilingDto; |
||||
|
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationVo; |
||||
|
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery; |
||||
|
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.api.utils.ProcDefEnum; |
||||
|
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.sysuser.PrivilegeQuery; |
||||
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
||||
|
import com.yxt.anrui.riskcenter.api.loancreditappealapply.LoanCreditAppealApply; |
||||
|
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.LoanCreditApplyNodeVo; |
||||
|
import com.yxt.anrui.riskcenter.api.loancreditappealapply.flowable.SubmitLoanCreditApplyDto; |
||||
|
import com.yxt.messagecenter.api.message.MessageFeign; |
||||
|
import com.yxt.messagecenter.api.message.MessageFlowVo; |
||||
|
import com.yxt.messagecenter.api.message.MessageFlowableQuery; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
import com.yxt.common.base.service.MybatisBaseService; |
||||
|
import com.yxt.common.base.utils.PagerUtil; |
||||
|
import com.yxt.common.core.query.PagerQuery; |
||||
|
import com.yxt.common.core.result.ResultBean; |
||||
|
import com.yxt.common.core.vo.PagerVo; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFiling; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingQuery; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingVo; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDetailsVo; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto; |
||||
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeign; |
||||
|
|
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.*; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* Project: anrui-buscenter(价值客户备案申请) <br/> |
||||
|
* File: BusValcustFilingService.java <br/> |
||||
|
* Class: com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingService <br/> |
||||
|
* Description: 价值客户备案申请 业务逻辑. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2023-09-15 11:38:12 <br/> |
||||
|
* |
||||
|
* @author liupopo |
||||
|
* @version 1.0 |
||||
|
* @since 1.0 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class BusValcustFilingService extends MybatisBaseService<BusValcustFilingMapper, BusValcustFiling> { |
||||
|
|
||||
|
@Autowired |
||||
|
private SysUserFeign sysUserFeign; |
||||
|
@Autowired |
||||
|
private FlowableFeign flowableFeign; |
||||
|
@Autowired |
||||
|
private MessageFeign messageFeign; |
||||
|
@Autowired |
||||
|
private FlowTaskFeign flowTaskFeign; |
||||
|
@Autowired |
||||
|
SysOrganizationFeign sysOrganizationFeign; |
||||
|
|
||||
|
public PagerVo<BusValcustFilingVo> listPageVo(PagerQuery<BusValcustFilingQuery> pq) { |
||||
|
BusValcustFilingQuery query = pq.getParams(); |
||||
|
QueryWrapper<BusValcustFiling> qw = new QueryWrapper<>(); |
||||
|
//========================================数据授权开始
|
||||
|
if (StringUtils.isNotBlank(query.getMenuUrl())) { |
||||
|
//=======================
|
||||
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
||||
|
privilegeQuery.setOrgPath(query.getOrgPath()); |
||||
|
privilegeQuery.setMenuUrl(query.getMenuUrl()); |
||||
|
privilegeQuery.setUserSid(query.getUserSid()); |
||||
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
||||
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
||||
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
||||
|
String orgSidPath = query.getOrgPath(); |
||||
|
orgSidPath = orgSidPath + "/"; |
||||
|
int i1 = orgSidPath.indexOf("/"); |
||||
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
||||
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
||||
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
||||
|
String orgLevelKey = defaultIdReltBean.getData(); |
||||
|
if ("1".equals(orgLevelKey)) { |
||||
|
orgSidPath = orgSidPath.substring(0, i1); |
||||
|
qw.like("bf.orgSidPath", orgSidPath); |
||||
|
} else if ("2".equals(orgLevelKey)) { |
||||
|
orgSidPath = orgSidPath.substring(0, i2); |
||||
|
qw.like("bf.orgSidPath", orgSidPath); |
||||
|
} else if ("3".equals(orgLevelKey)) { |
||||
|
orgSidPath = orgSidPath.substring(0, i3); |
||||
|
qw.like("bf.orgSidPath", orgSidPath); |
||||
|
} else if ("4".equals(orgLevelKey)) { |
||||
|
orgSidPath = orgSidPath.substring(0, i4); |
||||
|
qw.like("bf.orgSidPath", orgSidPath); |
||||
|
} else if ("5".equals(orgLevelKey)) { |
||||
|
qw.eq("bf.createBySid", query.getUserSid()); |
||||
|
} else { |
||||
|
PagerVo<BusValcustFilingVo> p = new PagerVo<>(); |
||||
|
return p; |
||||
|
} |
||||
|
} else { |
||||
|
PagerVo<BusValcustFilingVo> p = new PagerVo<>(); |
||||
|
return p; |
||||
|
} |
||||
|
if (StringUtils.isNotBlank(query.getContractNo())) { |
||||
|
qw.like("bf.contractNo", query.getContractNo()); |
||||
|
} |
||||
|
if (StringUtils.isNotBlank(query.getCreateByName())) { |
||||
|
qw.like("bf.createByName", query.getCreateByName()); |
||||
|
} |
||||
|
if (StringUtils.isNotBlank(query.getModelName())){ |
||||
|
qw.like("bf.modelName",query.getModelName()); |
||||
|
} |
||||
|
String createStartTime = query.getCreateStartTime(); |
||||
|
String createEndTime = query.getCreateEndTime(); |
||||
|
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (bf.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). |
||||
|
apply(StringUtils.isNotBlank(createEndTime), "date_format (bf.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" |
||||
|
); |
||||
|
} |
||||
|
IPage<BusValcustFiling> page = PagerUtil.queryToPage(pq); |
||||
|
IPage<BusValcustFilingVo> pagging = baseMapper.selectPageVo(page, qw); |
||||
|
PagerVo<BusValcustFilingVo> p = PagerUtil.pageToVo(pagging, null); |
||||
|
return p; |
||||
|
} |
||||
|
|
||||
|
public ResultBean<String> saveOrUpdateDto(BusValcustFilingDto dto) { |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
String dtoSid = dto.getSid(); |
||||
|
if (StringUtils.isBlank(dtoSid)) { |
||||
|
//生成单据编号
|
||||
|
String billNo = ""; |
||||
|
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(dto.getUseOrgSid()).getData(); |
||||
|
String date = DateUtil.format(DateUtil.date(), "yyyyMM"); |
||||
|
billNo = "JZKHBA" + sysOrganizationVo.getOrgCode() + date; |
||||
|
String i = baseMapper.selectNum(billNo); |
||||
|
if (StringUtils.isNotBlank(i)) { |
||||
|
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); |
||||
|
} else { |
||||
|
billNo = Rule.getBillNo(billNo, 0); |
||||
|
} |
||||
|
dto.setBillNo(billNo); |
||||
|
String sid = this.insertByDto(dto); |
||||
|
return rb.success().setData(sid); |
||||
|
} |
||||
|
this.updateByDto(dto); |
||||
|
return rb.success().setData(dtoSid); |
||||
|
} |
||||
|
|
||||
|
public String insertByDto(BusValcustFilingDto dto) { |
||||
|
BusValcustFiling entity = new BusValcustFiling(); |
||||
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
||||
|
entity.setNodeState("待提交"); |
||||
|
baseMapper.insert(entity); |
||||
|
return entity.getSid(); |
||||
|
} |
||||
|
|
||||
|
public void updateByDto(BusValcustFilingDto dto) { |
||||
|
String dtoSid = dto.getSid(); |
||||
|
if (StringUtils.isBlank(dtoSid)) { |
||||
|
return; |
||||
|
} |
||||
|
BusValcustFiling entity = fetchBySid(dtoSid); |
||||
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
||||
|
baseMapper.updateById(entity); |
||||
|
} |
||||
|
|
||||
|
public BusValcustFilingDetailsVo fetchDetailsVoBySid(String sid) { |
||||
|
BusValcustFiling entity = fetchBySid(sid); |
||||
|
BusValcustFilingDetailsVo vo = new BusValcustFilingDetailsVo(); |
||||
|
BeanUtil.copyProperties(entity, vo); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public ResultBean submit(SubmitBusValcustFilingDto dto) { |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
BusValcustFiling busValcustFiling = fetchBySid(dto.getSid()); |
||||
|
int r = submitBusinessData(dto, busValcustFiling); |
||||
|
if (r == 3) { |
||||
|
return rb.setMsg("该申请不存在"); |
||||
|
} |
||||
|
if (r == 0) { |
||||
|
return rb.setMsg("操作失败!提交的数据不一致"); |
||||
|
} |
||||
|
//新增修改保存
|
||||
|
ResultBean<String> resultBean = saveOrUpdateDto(dto); |
||||
|
if (!resultBean.getSuccess()) { |
||||
|
return rb.setMsg(resultBean.getMsg()); |
||||
|
} |
||||
|
String businessSid = resultBean.getData(); |
||||
|
//创建BusinessVariables实体对象
|
||||
|
BusinessVariables bv = new BusinessVariables(); |
||||
|
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
|
||||
|
Map<String, Object> variables = new HashMap<>(); |
||||
|
//用户的部门全路径sid
|
||||
|
bv.setOrgSidPath(dto.getOrgSidPath()); |
||||
|
//业务sid
|
||||
|
bv.setBusinessSid(businessSid); |
||||
|
//用户sid
|
||||
|
bv.setUserSid(dto.getCreateBySid()); |
||||
|
//若app移动端有此功能,则传递appMap参数
|
||||
|
Map<String, Object> appMap = new HashMap<>(); |
||||
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
||||
|
variables.put("app", appMap); |
||||
|
//流程定义id
|
||||
|
bv.setModelId(ProcDefEnum.BUSVALCUSTFILING.getProDefId()); |
||||
|
bv.setFormVariables(variables); |
||||
|
if (r == 1) { |
||||
|
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv); |
||||
|
UpdateFlowFieldVo ufVo = voResultBean.getData(); |
||||
|
updateFlowFiled(BeanUtil.beanToMap(ufVo)); |
||||
|
//极光推送
|
||||
|
busValcustFiling = fetchBySid(businessSid); |
||||
|
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(busValcustFiling.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
||||
|
messageFlowableQuery.setMsgTitle("价值客户备案申请"); |
||||
|
messageFeign.pushMessage(messageFlowableQuery); |
||||
|
return voResultBean; |
||||
|
} |
||||
|
if (r == 2) { |
||||
|
// ToDo:驳回到发起人后再次提交
|
||||
|
if (StringUtils.isBlank(dto.getInstanceId())) { |
||||
|
return rb.setMsg("参数错误:instanceId"); |
||||
|
} |
||||
|
bv.setTaskId(busValcustFiling.getTaskId()); |
||||
|
bv.setTaskDefKey(busValcustFiling.getNodeId()); |
||||
|
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); |
||||
|
bv.setInstanceId(dto.getInstanceId()); |
||||
|
return complete(bv); |
||||
|
} |
||||
|
return rb; |
||||
|
} |
||||
|
|
||||
|
private int updateFlowFiled(Map<String, Object> map) { |
||||
|
return baseMapper.updateFlowFiled(map); |
||||
|
} |
||||
|
|
||||
|
private synchronized int submitBusinessData(SubmitBusValcustFilingDto dto, BusValcustFiling busValcustFiling) { |
||||
|
int r = 0; |
||||
|
if (StringUtils.isBlank(dto.getSid())) { |
||||
|
r = 1; |
||||
|
} else { |
||||
|
if (busValcustFiling != null) { |
||||
|
String businessTaskId = busValcustFiling.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(); |
||||
|
BusValcustFiling busValcustFiling = fetchBySid(businessSid); |
||||
|
Map<String, Object> variables = new HashMap<>(); |
||||
|
Map<String, Object> appMap = new HashMap<>(); |
||||
|
variables.put("app", appMap); |
||||
|
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); |
||||
|
if (StringUtils.isBlank(busValcustFiling.getProcDefId())) { |
||||
|
flowProcessMapQuery.setProDefKey(bv.getModelId()); |
||||
|
} else { |
||||
|
flowProcessMapQuery.setProDefKey(busValcustFiling.getProcDefId()); |
||||
|
} |
||||
|
flowProcessMapQuery.setVariables(variables); |
||||
|
variables = flowableFeign.getMap(flowProcessMapQuery).getData(); |
||||
|
//=======================================
|
||||
|
bv.setFormVariables(variables); |
||||
|
bv.setOrgSidPath(busValcustFiling.getOrgSidPath()); |
||||
|
if (bv.getTaskId().equals(busValcustFiling.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 { |
||||
|
//极光推送
|
||||
|
busValcustFiling = fetchBySid(businessSid); |
||||
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
||||
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
||||
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
||||
|
ufVo.setProcDefId(busValcustFiling.getProcDefId()); |
||||
|
ufVo.setProcInsId(busValcustFiling.getProcInstId()); |
||||
|
messageFlowableQuery.setUfVo(messageFlowVo); |
||||
|
messageFlowableQuery.setAppMap(appMap); |
||||
|
messageFlowableQuery.setBusinessSid(businessSid); |
||||
|
messageFlowableQuery.setModuleName("价值客户备案申请"); |
||||
|
messageFlowableQuery.setMsgContent(busValcustFiling.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
||||
|
messageFlowableQuery.setMsgTitle("价值客户备案申请"); |
||||
|
messageFeign.pushMessage(messageFlowableQuery); |
||||
|
} |
||||
|
return rb.success().setData(resultBean.getData()); |
||||
|
} else { |
||||
|
return rb.setMsg("操作失败!提交的数据不一致"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public ResultBean<List<BusValcustFilingNodeVo>> getPreviousNodesForReject(BusValcustFilingNodeQuery query) { |
||||
|
ResultBean<List<BusValcustFilingNodeVo>> rb = ResultBean.fireFail(); |
||||
|
BusinessVariables bv = new BusinessVariables(); |
||||
|
BeanUtil.copyProperties(query, bv); |
||||
|
bv.setModelId(ProcDefEnum.BUSVALCUSTFILING.getProDefId()); |
||||
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); |
||||
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
||||
|
List<BusValcustFilingNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BusValcustFilingNodeVo.class)).collect(Collectors.toList()); |
||||
|
return rb.success().setData(voList); |
||||
|
} |
||||
|
|
||||
|
public ResultBean<List<BusValcustFilingNodeVo>> getNextNodesForSubmit(BusValcustFilingNodeQuery query) { |
||||
|
ResultBean<List<BusValcustFilingNodeVo>> rb = ResultBean.fireFail(); |
||||
|
BusinessVariables bv = new BusinessVariables(); |
||||
|
BeanUtil.copyProperties(query, bv); |
||||
|
bv.setModelId(ProcDefEnum.BUSVALCUSTFILING.getProDefId()); |
||||
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); |
||||
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
||||
|
List<BusValcustFilingNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BusValcustFilingNodeVo.class)).collect(Collectors.toList()); |
||||
|
return rb.success().setData(voList); |
||||
|
} |
||||
|
|
||||
|
public ResultBean reject(BusValcustFilingTaskQuery query) { |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
String businessSid = query.getBusinessSid(); |
||||
|
BusValcustFiling busValcustFiling = fetchBySid(businessSid); |
||||
|
if (busValcustFiling == null) { |
||||
|
return rb.setMsg("该申请不存在"); |
||||
|
} |
||||
|
String businessTaskId = busValcustFiling.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<>(); |
||||
|
variables.put("app", appMap); |
||||
|
flowTaskVo.setValues(variables); |
||||
|
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); |
||||
|
//极光推送
|
||||
|
busValcustFiling = fetchBySid(businessSid); |
||||
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
||||
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
||||
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
||||
|
String procId = busValcustFiling.getProcInstId(); |
||||
|
ufVo.setProcInsId(procId); |
||||
|
ufVo.setProcDefId(busValcustFiling.getProcDefId()); |
||||
|
messageFlowableQuery.setUfVo(messageFlowVo); |
||||
|
messageFlowableQuery.setAppMap(appMap); |
||||
|
messageFlowableQuery.setBusinessSid(businessSid); |
||||
|
messageFlowableQuery.setModuleName("价值客户备案申请"); |
||||
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId); |
||||
|
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); |
||||
|
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); |
||||
|
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busValcustFiling.getCreateBySid())) { |
||||
|
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); |
||||
|
} else { |
||||
|
messageFlowableQuery.setMsgContent(busValcustFiling.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
||||
|
} |
||||
|
messageFlowableQuery.setMsgTitle("价值客户备案申请"); |
||||
|
messageFeign.pushMessage(messageFlowableQuery); |
||||
|
return rb.success(); |
||||
|
} |
||||
|
} |
||||
|
return rb.setMsg("操作失败!提交的数据不一致!"); |
||||
|
} |
||||
|
|
||||
|
public ResultBean revokeProcess(BusValcustFilingTaskQuery query) { |
||||
|
ResultBean rb = ResultBean.fireFail(); |
||||
|
if (StringUtils.isBlank(query.getUserSid())) { |
||||
|
return rb.setMsg("参数错误:userSid"); |
||||
|
} |
||||
|
BusValcustFiling busValcustFiling = fetchBySid(query.getBusinessSid()); |
||||
|
String businessTaskId = busValcustFiling.getTaskId(); |
||||
|
if (StringUtils.isNotBlank(businessTaskId)) { |
||||
|
if (businessTaskId.equals(query.getTaskId())) { |
||||
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
||||
|
BeanUtil.copyProperties(query, flowTaskVo); |
||||
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo); |
||||
|
if (!resultBean.getSuccess()) { |
||||
|
return rb.setMsg(resultBean.getMsg()); |
||||
|
} |
||||
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
||||
|
return rb.success().setData(resultBean.getData()); |
||||
|
} |
||||
|
} |
||||
|
return rb.setMsg("操作失败,提交的数据不一致!"); |
||||
|
} |
||||
|
|
||||
|
public ResultBean breakProcess(BusValcustFilingTaskQuery 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("请填写意见"); |
||||
|
} |
||||
|
BusValcustFiling busValcustFiling = fetchBySid(query.getBusinessSid()); |
||||
|
String businessTaskId = busValcustFiling.getTaskId(); |
||||
|
if (StringUtils.isNotBlank(businessTaskId)) { |
||||
|
if (query.getUserSid().equals(busValcustFiling.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("操作失败!提交的数据不一致!"); |
||||
|
} |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
# http://editorconfig.org |
||||
|
root = true |
||||
|
|
||||
|
[*] |
||||
|
charset = utf-8 |
||||
|
indent_style = space |
||||
|
indent_size = 2 |
||||
|
end_of_line = lf |
||||
|
insert_final_newline = true |
||||
|
trim_trailing_whitespace = true |
||||
|
|
||||
|
[*.md] |
||||
|
insert_final_newline = false |
||||
|
trim_trailing_whitespace = false |
@ -0,0 +1,10 @@ |
|||||
|
# just a flag |
||||
|
ENV = 'development' |
||||
|
|
||||
|
# base api |
||||
|
VUE_APP_BASE_API = '/api' |
||||
|
|
||||
|
## 配置测试和本地开发时的 接口地址 |
||||
|
##VUE_APP_URL = "http://26077a35f5.wicp.vip" |
||||
|
VUE_APP_URL = "http://anrui.yyundong.com" |
||||
|
|
@ -0,0 +1,9 @@ |
|||||
|
# just a flag |
||||
|
ENV = 'production' |
||||
|
|
||||
|
# base api |
||||
|
VUE_APP_BASE_API = '/api' |
||||
|
|
||||
|
## 配置 正式接口地址 |
||||
|
VUE_APP_URL = "http://218.11.12.154:8111" |
||||
|
|
@ -0,0 +1,8 @@ |
|||||
|
NODE_ENV = production |
||||
|
|
||||
|
# just a flag |
||||
|
ENV = 'staging' |
||||
|
|
||||
|
# base api |
||||
|
VUE_APP_BASE_API = '/stage-api' |
||||
|
|
@ -0,0 +1,4 @@ |
|||||
|
build/*.js |
||||
|
src/assets |
||||
|
public |
||||
|
dist |
@ -0,0 +1,199 @@ |
|||||
|
module.exports = { |
||||
|
root: true, |
||||
|
parserOptions: { |
||||
|
parser: 'babel-eslint', |
||||
|
sourceType: 'module' |
||||
|
}, |
||||
|
env: { |
||||
|
browser: true, |
||||
|
node: true, |
||||
|
es6: true, |
||||
|
}, |
||||
|
extends: ['plugin:vue/recommended', 'eslint:recommended'], |
||||
|
|
||||
|
// add your custom rules here
|
||||
|
//it is base on https://github.com/vuejs/eslint-config-vue
|
||||
|
rules: { |
||||
|
"vue/max-attributes-per-line": [2, { |
||||
|
"singleline": 10, |
||||
|
"multiline": { |
||||
|
"max": 1, |
||||
|
"allowFirstLine": false |
||||
|
} |
||||
|
}], |
||||
|
"vue/singleline-html-element-content-newline": "off", |
||||
|
"vue/multiline-html-element-content-newline":"off", |
||||
|
"vue/name-property-casing": ["error", "PascalCase"], |
||||
|
"vue/no-v-html": "off", |
||||
|
'accessor-pairs': 2, |
||||
|
'arrow-spacing': [2, { |
||||
|
'before': true, |
||||
|
'after': true |
||||
|
}], |
||||
|
'block-spacing': [2, 'always'], |
||||
|
'brace-style': [2, '1tbs', { |
||||
|
'allowSingleLine': true |
||||
|
}], |
||||
|
'camelcase': [0, { |
||||
|
'properties': 'always' |
||||
|
}], |
||||
|
'comma-dangle': [2, 'never'], |
||||
|
'comma-spacing': [2, { |
||||
|
'before': false, |
||||
|
'after': true |
||||
|
}], |
||||
|
'comma-style': [2, 'last'], |
||||
|
'constructor-super': 2, |
||||
|
'curly': [2, 'multi-line'], |
||||
|
'dot-location': [2, 'property'], |
||||
|
'eol-last': 2, |
||||
|
'eqeqeq': ["error", "always", {"null": "ignore"}], |
||||
|
'generator-star-spacing': [2, { |
||||
|
'before': true, |
||||
|
'after': true |
||||
|
}], |
||||
|
'handle-callback-err': [2, '^(err|error)$'], |
||||
|
// 'indent': [2, 2, {
|
||||
|
// 'SwitchCase': 1
|
||||
|
// }],
|
||||
|
'indent': 'off', |
||||
|
'jsx-quotes': [2, 'prefer-single'], |
||||
|
'key-spacing': [2, { |
||||
|
'beforeColon': false, |
||||
|
'afterColon': true |
||||
|
}], |
||||
|
'keyword-spacing': [2, { |
||||
|
'before': true, |
||||
|
'after': true |
||||
|
}], |
||||
|
'new-cap': [2, { |
||||
|
'newIsCap': true, |
||||
|
'capIsNew': false |
||||
|
}], |
||||
|
'new-parens': 2, |
||||
|
'no-array-constructor': 2, |
||||
|
'no-caller': 2, |
||||
|
'no-console': 'off', |
||||
|
'no-class-assign': 2, |
||||
|
'no-cond-assign': 2, |
||||
|
'no-const-assign': 2, |
||||
|
'no-control-regex': 0, |
||||
|
'no-delete-var': 2, |
||||
|
'no-dupe-args': 2, |
||||
|
'no-dupe-class-members': 2, |
||||
|
'no-dupe-keys': 2, |
||||
|
'no-duplicate-case': 2, |
||||
|
'no-empty-character-class': 2, |
||||
|
'no-empty-pattern': 2, |
||||
|
'no-eval': 2, |
||||
|
'no-ex-assign': 2, |
||||
|
'no-extend-native': 2, |
||||
|
'no-extra-bind': 2, |
||||
|
'no-extra-boolean-cast': 2, |
||||
|
'no-extra-parens': [2, 'functions'], |
||||
|
'no-fallthrough': 2, |
||||
|
'no-floating-decimal': 2, |
||||
|
'no-func-assign': 2, |
||||
|
'no-implied-eval': 2, |
||||
|
'no-inner-declarations': [2, 'functions'], |
||||
|
'no-invalid-regexp': 2, |
||||
|
'no-irregular-whitespace': 2, |
||||
|
'no-iterator': 2, |
||||
|
'no-label-var': 2, |
||||
|
'no-labels': [2, { |
||||
|
'allowLoop': false, |
||||
|
'allowSwitch': false |
||||
|
}], |
||||
|
'no-lone-blocks': 2, |
||||
|
'no-mixed-spaces-and-tabs': 2, |
||||
|
'no-multi-spaces': 2, |
||||
|
'no-multi-str': 2, |
||||
|
'no-multiple-empty-lines': [2, { |
||||
|
'max': 1 |
||||
|
}], |
||||
|
'no-native-reassign': 2, |
||||
|
'no-negated-in-lhs': 2, |
||||
|
'no-new-object': 2, |
||||
|
'no-new-require': 2, |
||||
|
'no-new-symbol': 2, |
||||
|
'no-new-wrappers': 2, |
||||
|
'no-obj-calls': 2, |
||||
|
'no-octal': 2, |
||||
|
'no-octal-escape': 2, |
||||
|
'no-path-concat': 2, |
||||
|
'no-proto': 2, |
||||
|
'no-redeclare': 2, |
||||
|
'no-regex-spaces': 2, |
||||
|
'no-return-assign': [2, 'except-parens'], |
||||
|
'no-self-assign': 2, |
||||
|
'no-self-compare': 2, |
||||
|
'no-sequences': 2, |
||||
|
'no-shadow-restricted-names': 2, |
||||
|
'no-spaced-func': 2, |
||||
|
'no-sparse-arrays': 2, |
||||
|
'no-this-before-super': 2, |
||||
|
'no-throw-literal': 2, |
||||
|
'no-trailing-spaces': 2, |
||||
|
'no-undef': 2, |
||||
|
'no-undef-init': 2, |
||||
|
'no-unexpected-multiline': 2, |
||||
|
'no-unmodified-loop-condition': 2, |
||||
|
'no-unneeded-ternary': [2, { |
||||
|
'defaultAssignment': false |
||||
|
}], |
||||
|
'no-unreachable': 2, |
||||
|
'no-unsafe-finally': 2, |
||||
|
'no-unused-vars': [2, { |
||||
|
'vars': 'all', |
||||
|
'args': 'none' |
||||
|
}], |
||||
|
'no-useless-call': 2, |
||||
|
'no-useless-computed-key': 2, |
||||
|
'no-useless-constructor': 2, |
||||
|
'no-useless-escape': 0, |
||||
|
'no-whitespace-before-property': 2, |
||||
|
'no-with': 2, |
||||
|
'one-var': [2, { |
||||
|
'initialized': 'never' |
||||
|
}], |
||||
|
'operator-linebreak': [2, 'after', { |
||||
|
'overrides': { |
||||
|
'?': 'before', |
||||
|
':': 'before' |
||||
|
} |
||||
|
}], |
||||
|
'padded-blocks': [2, 'never'], |
||||
|
'quotes': [2, 'single', { |
||||
|
'avoidEscape': true, |
||||
|
'allowTemplateLiterals': true |
||||
|
}], |
||||
|
'semi': [2, 'never'], |
||||
|
'semi-spacing': [2, { |
||||
|
'before': false, |
||||
|
'after': true |
||||
|
}], |
||||
|
'space-before-blocks': [2, 'always'], |
||||
|
'space-before-function-paren': [2, 'never'], |
||||
|
'space-in-parens': [2, 'never'], |
||||
|
'space-infix-ops': 2, |
||||
|
'space-unary-ops': [2, { |
||||
|
'words': true, |
||||
|
'nonwords': false |
||||
|
}], |
||||
|
'spaced-comment': [2, 'always', { |
||||
|
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] |
||||
|
}], |
||||
|
'template-curly-spacing': [2, 'never'], |
||||
|
'use-isnan': 2, |
||||
|
'valid-typeof': 2, |
||||
|
'wrap-iife': [2, 'any'], |
||||
|
'yield-star-spacing': [2, 'both'], |
||||
|
'yoda': [2, 'never'], |
||||
|
'prefer-const': 2, |
||||
|
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, |
||||
|
'object-curly-spacing': [2, 'always', { |
||||
|
objectsInObjects: false |
||||
|
}], |
||||
|
'array-bracket-spacing': [2, 'never'] |
||||
|
} |
||||
|
} |
@ -0,0 +1,16 @@ |
|||||
|
.DS_Store |
||||
|
node_modules/ |
||||
|
dist/ |
||||
|
npm-debug.log* |
||||
|
yarn-debug.log* |
||||
|
yarn-error.log* |
||||
|
package-lock.json |
||||
|
tests/**/coverage/ |
||||
|
|
||||
|
# Editor directories and files |
||||
|
.idea |
||||
|
.vscode |
||||
|
*.suo |
||||
|
*.ntvs* |
||||
|
*.njsproj |
||||
|
*.sln |
@ -0,0 +1,28 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<projectDescription> |
||||
|
<name>anrui-system-ui</name> |
||||
|
<comment></comment> |
||||
|
<projects> |
||||
|
</projects> |
||||
|
<buildSpec> |
||||
|
<buildCommand> |
||||
|
<name>com.aptana.ide.core.unifiedBuilder</name> |
||||
|
<arguments> |
||||
|
</arguments> |
||||
|
</buildCommand> |
||||
|
</buildSpec> |
||||
|
<natures> |
||||
|
<nature>com.aptana.projects.webnature</nature> |
||||
|
</natures> |
||||
|
<filteredResources> |
||||
|
<filter> |
||||
|
<id>1629107336958</id> |
||||
|
<name></name> |
||||
|
<type>26</type> |
||||
|
<matcher> |
||||
|
<id>org.eclipse.ui.ide.multiFilter</id> |
||||
|
<arguments>1.0-name-matches-false-false-node_modules</arguments> |
||||
|
</matcher> |
||||
|
</filter> |
||||
|
</filteredResources> |
||||
|
</projectDescription> |
@ -0,0 +1,5 @@ |
|||||
|
language: node_js |
||||
|
node_js: 10 |
||||
|
script: npm run test |
||||
|
notifications: |
||||
|
email: false |
@ -0,0 +1,21 @@ |
|||||
|
MIT License |
||||
|
|
||||
|
Copyright (c) 2017-present PanJiaChen |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), to deal |
||||
|
in the Software without restriction, including without limitation the rights |
||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
|
copies of the Software, and to permit persons to whom the Software is |
||||
|
furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included in all |
||||
|
copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
|
SOFTWARE. |
@ -0,0 +1,90 @@ |
|||||
|
# vue-admin-template |
||||
|
|
||||
|
English | [简体中文](./README-zh.md) |
||||
|
|
||||
|
> A minimal vue admin template with Element UI & axios & iconfont & permission control & lint |
||||
|
|
||||
|
**Live demo:** http://panjiachen.github.io/vue-admin-template |
||||
|
|
||||
|
|
||||
|
**The current version is `v4.0+` build on `vue-cli`. If you want to use the old version , you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-admin-template/tree/tag/3.11.0), it does not rely on `vue-cli`** |
||||
|
|
||||
|
## Build Setup |
||||
|
|
||||
|
```bash |
||||
|
# clone the project |
||||
|
git clone https://github.com/PanJiaChen/vue-admin-template.git |
||||
|
|
||||
|
# enter the project directory |
||||
|
cd vue-admin-template |
||||
|
|
||||
|
# install dependency |
||||
|
npm install |
||||
|
|
||||
|
# develop |
||||
|
npm run dev |
||||
|
``` |
||||
|
|
||||
|
This will automatically open http://localhost:9528 |
||||
|
|
||||
|
## Build |
||||
|
|
||||
|
```bash |
||||
|
# build for test environment |
||||
|
npm run build:stage |
||||
|
|
||||
|
# build for production environment |
||||
|
npm run build:prod |
||||
|
``` |
||||
|
|
||||
|
## Advanced |
||||
|
|
||||
|
```bash |
||||
|
# preview the release environment effect |
||||
|
npm run preview |
||||
|
|
||||
|
# preview the release environment effect + static resource analysis |
||||
|
npm run preview -- --report |
||||
|
|
||||
|
# code format check |
||||
|
npm run lint |
||||
|
|
||||
|
# code format check and auto fix |
||||
|
npm run lint -- --fix |
||||
|
``` |
||||
|
|
||||
|
Refer to [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) for more information |
||||
|
|
||||
|
## Demo |
||||
|
|
||||
|
 |
||||
|
|
||||
|
## Extra |
||||
|
|
||||
|
If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control) |
||||
|
|
||||
|
For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour)) |
||||
|
|
||||
|
## Related Project |
||||
|
|
||||
|
- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) |
||||
|
|
||||
|
- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) |
||||
|
|
||||
|
- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) |
||||
|
|
||||
|
- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312) |
||||
|
|
||||
|
## Browsers support |
||||
|
|
||||
|
Modern browsers and Internet Explorer 10+. |
||||
|
|
||||
|
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | |
||||
|
| --------- | --------- | --------- | --------- | |
||||
|
| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions |
||||
|
|
||||
|
## License |
||||
|
|
||||
|
[MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license. |
||||
|
|
||||
|
Copyright (c) 2017-present PanJiaChen |
@ -0,0 +1,14 @@ |
|||||
|
module.exports = { |
||||
|
presets: [ |
||||
|
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
|
||||
|
'@vue/cli-plugin-babel/preset' |
||||
|
], |
||||
|
'env': { |
||||
|
'development': { |
||||
|
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
|
||||
|
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
|
||||
|
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
|
||||
|
'plugins': ['dynamic-import-node'] |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,35 @@ |
|||||
|
const { run } = require('runjs') |
||||
|
const chalk = require('chalk') |
||||
|
const config = require('../vue.config.js') |
||||
|
const rawArgv = process.argv.slice(2) |
||||
|
const args = rawArgv.join(' ') |
||||
|
|
||||
|
if (process.env.npm_config_preview || rawArgv.includes('--preview')) { |
||||
|
const report = rawArgv.includes('--report') |
||||
|
|
||||
|
run(`vue-cli-service build ${args}`) |
||||
|
|
||||
|
const port = 9526 |
||||
|
const publicPath = config.publicPath |
||||
|
|
||||
|
var connect = require('connect') |
||||
|
var serveStatic = require('serve-static') |
||||
|
const app = connect() |
||||
|
|
||||
|
app.use( |
||||
|
publicPath, |
||||
|
serveStatic('./dist', { |
||||
|
index: ['index.html', '/'] |
||||
|
}) |
||||
|
) |
||||
|
|
||||
|
app.listen(port, function () { |
||||
|
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) |
||||
|
if (report) { |
||||
|
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) |
||||
|
} |
||||
|
|
||||
|
}) |
||||
|
} else { |
||||
|
run(`vue-cli-service build ${args}`) |
||||
|
} |
@ -0,0 +1,24 @@ |
|||||
|
module.exports = { |
||||
|
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], |
||||
|
transform: { |
||||
|
'^.+\\.vue$': 'vue-jest', |
||||
|
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': |
||||
|
'jest-transform-stub', |
||||
|
'^.+\\.jsx?$': 'babel-jest' |
||||
|
}, |
||||
|
moduleNameMapper: { |
||||
|
'^@/(.*)$': '<rootDir>/src/$1' |
||||
|
}, |
||||
|
snapshotSerializers: ['jest-serializer-vue'], |
||||
|
testMatch: [ |
||||
|
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' |
||||
|
], |
||||
|
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], |
||||
|
coverageDirectory: '<rootDir>/tests/unit/coverage', |
||||
|
// 'collectCoverage': true,
|
||||
|
'coverageReporters': [ |
||||
|
'lcov', |
||||
|
'text-summary' |
||||
|
], |
||||
|
testURL: 'http://localhost/' |
||||
|
} |
@ -0,0 +1,9 @@ |
|||||
|
{ |
||||
|
"compilerOptions": { |
||||
|
"baseUrl": "./", |
||||
|
"paths": { |
||||
|
"@/*": ["src/*"] |
||||
|
} |
||||
|
}, |
||||
|
"exclude": ["node_modules", "dist"] |
||||
|
} |
@ -0,0 +1,57 @@ |
|||||
|
const Mock = require('mockjs') |
||||
|
const { param2Obj } = require('./utils') |
||||
|
|
||||
|
const user = require('./user') |
||||
|
const table = require('./table') |
||||
|
|
||||
|
const mocks = [ |
||||
|
...user, |
||||
|
...table |
||||
|
] |
||||
|
|
||||
|
// for front mock
|
||||
|
// please use it cautiously, it will redefine XMLHttpRequest,
|
||||
|
// which will cause many of your third-party libraries to be invalidated(like progress event).
|
||||
|
function mockXHR() { |
||||
|
// mock patch
|
||||
|
// https://github.com/nuysoft/Mock/issues/300
|
||||
|
Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send |
||||
|
Mock.XHR.prototype.send = function() { |
||||
|
if (this.custom.xhr) { |
||||
|
this.custom.xhr.withCredentials = this.withCredentials || false |
||||
|
|
||||
|
if (this.responseType) { |
||||
|
this.custom.xhr.responseType = this.responseType |
||||
|
} |
||||
|
} |
||||
|
this.proxy_send(...arguments) |
||||
|
} |
||||
|
|
||||
|
function XHR2ExpressReqWrap(respond) { |
||||
|
return function(options) { |
||||
|
let result = null |
||||
|
if (respond instanceof Function) { |
||||
|
const { body, type, url } = options |
||||
|
// https://expressjs.com/en/4x/api.html#req
|
||||
|
result = respond({ |
||||
|
method: type, |
||||
|
body: JSON.parse(body), |
||||
|
query: param2Obj(url) |
||||
|
}) |
||||
|
} else { |
||||
|
result = respond |
||||
|
} |
||||
|
return Mock.mock(result) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
for (const i of mocks) { |
||||
|
Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response)) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module.exports = { |
||||
|
mocks, |
||||
|
mockXHR |
||||
|
} |
||||
|
|
@ -0,0 +1,81 @@ |
|||||
|
const chokidar = require('chokidar') |
||||
|
const bodyParser = require('body-parser') |
||||
|
const chalk = require('chalk') |
||||
|
const path = require('path') |
||||
|
const Mock = require('mockjs') |
||||
|
|
||||
|
const mockDir = path.join(process.cwd(), 'mock') |
||||
|
|
||||
|
function registerRoutes(app) { |
||||
|
let mockLastIndex |
||||
|
const { mocks } = require('./index.js') |
||||
|
const mocksForServer = mocks.map(route => { |
||||
|
return responseFake(route.url, route.type, route.response) |
||||
|
}) |
||||
|
for (const mock of mocksForServer) { |
||||
|
app[mock.type](mock.url, mock.response) |
||||
|
mockLastIndex = app._router.stack.length |
||||
|
} |
||||
|
const mockRoutesLength = Object.keys(mocksForServer).length |
||||
|
return { |
||||
|
mockRoutesLength: mockRoutesLength, |
||||
|
mockStartIndex: mockLastIndex - mockRoutesLength |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function unregisterRoutes() { |
||||
|
Object.keys(require.cache).forEach(i => { |
||||
|
if (i.includes(mockDir)) { |
||||
|
delete require.cache[require.resolve(i)] |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// for mock server
|
||||
|
const responseFake = (url, type, respond) => { |
||||
|
return { |
||||
|
url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`), |
||||
|
type: type || 'get', |
||||
|
response(req, res) { |
||||
|
console.log('request invoke:' + req.path) |
||||
|
res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond)) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module.exports = app => { |
||||
|
// parse app.body
|
||||
|
// https://expressjs.com/en/4x/api.html#req.body
|
||||
|
app.use(bodyParser.json()) |
||||
|
app.use(bodyParser.urlencoded({ |
||||
|
extended: true |
||||
|
})) |
||||
|
|
||||
|
const mockRoutes = registerRoutes(app) |
||||
|
var mockRoutesLength = mockRoutes.mockRoutesLength |
||||
|
var mockStartIndex = mockRoutes.mockStartIndex |
||||
|
|
||||
|
// watch files, hot reload mock server
|
||||
|
chokidar.watch(mockDir, { |
||||
|
ignored: /mock-server/, |
||||
|
ignoreInitial: true |
||||
|
}).on('all', (event, path) => { |
||||
|
if (event === 'change' || event === 'add') { |
||||
|
try { |
||||
|
// remove mock routes stack
|
||||
|
app._router.stack.splice(mockStartIndex, mockRoutesLength) |
||||
|
|
||||
|
// clear routes cache
|
||||
|
unregisterRoutes() |
||||
|
|
||||
|
const mockRoutes = registerRoutes(app) |
||||
|
mockRoutesLength = mockRoutes.mockRoutesLength |
||||
|
mockStartIndex = mockRoutes.mockStartIndex |
||||
|
|
||||
|
console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`)) |
||||
|
} catch (error) { |
||||
|
console.log(chalk.redBright(error)) |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
} |
@ -0,0 +1,29 @@ |
|||||
|
const Mock = require('mockjs') |
||||
|
|
||||
|
const data = Mock.mock({ |
||||
|
'items|30': [{ |
||||
|
id: '@id', |
||||
|
title: '@sentence(10, 20)', |
||||
|
'status|1': ['published', 'draft', 'deleted'], |
||||
|
author: 'name', |
||||
|
display_time: '@datetime', |
||||
|
pageviews: '@integer(300, 5000)' |
||||
|
}] |
||||
|
}) |
||||
|
|
||||
|
module.exports = [ |
||||
|
{ |
||||
|
url: '/vue-admin-template/table/list', |
||||
|
type: 'get', |
||||
|
response: config => { |
||||
|
const items = data.items |
||||
|
return { |
||||
|
code: 20000, |
||||
|
data: { |
||||
|
total: items.length, |
||||
|
items: items |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
] |
@ -0,0 +1,84 @@ |
|||||
|
|
||||
|
const tokens = { |
||||
|
admin: { |
||||
|
token: 'admin-token' |
||||
|
}, |
||||
|
editor: { |
||||
|
token: 'editor-token' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
const users = { |
||||
|
'admin-token': { |
||||
|
roles: ['admin'], |
||||
|
introduction: 'I am a super administrator', |
||||
|
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', |
||||
|
name: 'Super Admin' |
||||
|
}, |
||||
|
'editor-token': { |
||||
|
roles: ['editor'], |
||||
|
introduction: 'I am an editor', |
||||
|
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', |
||||
|
name: 'Normal Editor' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module.exports = [ |
||||
|
// user login
|
||||
|
{ |
||||
|
url: '/vue-admin-template/user/login', |
||||
|
type: 'post', |
||||
|
response: config => { |
||||
|
const { username } = config.body |
||||
|
const token = tokens[username] |
||||
|
|
||||
|
// mock error
|
||||
|
if (!token) { |
||||
|
return { |
||||
|
code: 60204, |
||||
|
message: 'Account and password are incorrect.' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return { |
||||
|
code: 20000, |
||||
|
data: token |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// get user info
|
||||
|
{ |
||||
|
url: '/vue-admin-template/user/info\.*', |
||||
|
type: 'get', |
||||
|
response: config => { |
||||
|
const { token } = config.query |
||||
|
const info = users[token] |
||||
|
|
||||
|
// mock error
|
||||
|
if (!info) { |
||||
|
return { |
||||
|
code: 50008, |
||||
|
message: 'Login failed, unable to get user details.' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return { |
||||
|
code: 20000, |
||||
|
data: info |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// user logout
|
||||
|
{ |
||||
|
url: '/vue-admin-template/user/logout', |
||||
|
type: 'post', |
||||
|
response: _ => { |
||||
|
return { |
||||
|
code: 20000, |
||||
|
data: 'success' |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
] |
@ -0,0 +1,25 @@ |
|||||
|
/** |
||||
|
* @param {string} url |
||||
|
* @returns {Object} |
||||
|
*/ |
||||
|
function param2Obj(url) { |
||||
|
const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') |
||||
|
if (!search) { |
||||
|
return {} |
||||
|
} |
||||
|
const obj = {} |
||||
|
const searchArr = search.split('&') |
||||
|
searchArr.forEach(v => { |
||||
|
const index = v.indexOf('=') |
||||
|
if (index !== -1) { |
||||
|
const name = v.substring(0, index) |
||||
|
const val = v.substring(index + 1, v.length) |
||||
|
obj[name] = val |
||||
|
} |
||||
|
}) |
||||
|
return obj |
||||
|
} |
||||
|
|
||||
|
module.exports = { |
||||
|
param2Obj |
||||
|
} |
@ -0,0 +1,69 @@ |
|||||
|
{ |
||||
|
"name": "admin-template", |
||||
|
"version": "4.4.0", |
||||
|
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint", |
||||
|
"author": "Pan <panfree23@gmail.com>", |
||||
|
"scripts": { |
||||
|
"dev": "vue-cli-service serve", |
||||
|
"build:prod": "vue-cli-service build", |
||||
|
"build:stage": "vue-cli-service build --mode staging", |
||||
|
"preview": "node build/index.js --preview", |
||||
|
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", |
||||
|
"lint": "eslint --ext .js,.vue src", |
||||
|
"test:unit": "jest --clearCache && vue-cli-service test:unit", |
||||
|
"test:ci": "npm run lint && npm run test:unit" |
||||
|
}, |
||||
|
"dependencies": { |
||||
|
"axios": "0.18.1", |
||||
|
"core-js": "^3.22.5", |
||||
|
"element-ui": "2.13.2", |
||||
|
"js-cookie": "2.2.0", |
||||
|
"normalize.css": "7.0.0", |
||||
|
"nprogress": "0.2.0", |
||||
|
"path-to-regexp": "2.4.0", |
||||
|
"portfinder": "^1.0.21", |
||||
|
"qs": "^6.9.4", |
||||
|
"sass-resources-loader": "^2.1.1", |
||||
|
"viewerjs": "^1.9.0", |
||||
|
"vue": "2.6.10", |
||||
|
"vue-amap": "^0.5.10", |
||||
|
"vue-router": "3.0.6", |
||||
|
"vuex": "3.1.0", |
||||
|
"vuex-persistedstate": "^4.0.0" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"@vue/cli-plugin-babel": "4.4.4", |
||||
|
"@vue/cli-plugin-eslint": "4.4.4", |
||||
|
"@vue/cli-plugin-unit-jest": "4.4.4", |
||||
|
"@vue/cli-service": "4.4.4", |
||||
|
"@vue/test-utils": "1.0.0-beta.29", |
||||
|
"autoprefixer": "9.5.1", |
||||
|
"babel-eslint": "10.1.0", |
||||
|
"babel-jest": "23.6.0", |
||||
|
"babel-plugin-dynamic-import-node": "2.3.3", |
||||
|
"babel-polyfill": "^6.26.0", |
||||
|
"chalk": "2.4.2", |
||||
|
"connect": "3.6.6", |
||||
|
"eslint": "6.7.2", |
||||
|
"eslint-plugin-vue": "6.2.2", |
||||
|
"html-webpack-plugin": "3.2.0", |
||||
|
"mockjs": "1.0.1-beta3", |
||||
|
"runjs": "4.3.2", |
||||
|
"sass": "1.26.8", |
||||
|
"sass-loader": "8.0.2", |
||||
|
"script-ext-html-webpack-plugin": "2.1.3", |
||||
|
"serve-static": "1.13.2", |
||||
|
"svg-sprite-loader": "4.1.3", |
||||
|
"svgo": "1.2.2", |
||||
|
"vue-template-compiler": "2.6.10" |
||||
|
}, |
||||
|
"browserslist": [ |
||||
|
"> 1%", |
||||
|
"last 2 versions" |
||||
|
], |
||||
|
"engines": { |
||||
|
"node": ">=8.9", |
||||
|
"npm": ">= 3.0.0" |
||||
|
}, |
||||
|
"license": "MIT" |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||
|
|
||||
|
module.exports = { |
||||
|
'plugins': { |
||||
|
// to edit target browsers: use "browserslist" field in package.json
|
||||
|
'autoprefixer': {} |
||||
|
} |
||||
|
} |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 30 KiB |
@ -0,0 +1,17 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
||||
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
||||
|
<title><%= webpackConfig.name %></title> |
||||
|
</head> |
||||
|
<body> |
||||
|
<noscript> |
||||
|
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
||||
|
</noscript> |
||||
|
<div id="app"></div> |
||||
|
<!-- built files will be auto injected --> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,14 @@ |
|||||
|
<template> |
||||
|
<div id="app"> |
||||
|
<router-view /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'App', |
||||
|
mounted() { |
||||
|
|
||||
|
}, |
||||
|
} |
||||
|
</script> |
@ -0,0 +1,4 @@ |
|||||
|
import request from '@/utils/request' |
||||
|
// 上传图片
|
||||
|
|
||||
|
export const uploadFile = '/api/riskcenter/file/upload' |
@ -0,0 +1,49 @@ |
|||||
|
import request from '@/utils/request' |
||||
|
|
||||
|
//区域获取省
|
||||
|
// export function getProvince(data) {
|
||||
|
// return request({
|
||||
|
// url: '/system/region/getProvince',
|
||||
|
// method: 'get'
|
||||
|
// })
|
||||
|
// }
|
||||
|
// //根据省sid获取该省的所有市
|
||||
|
// export function getCity(data) {
|
||||
|
// return request({
|
||||
|
// url: '/system/region/getCity',
|
||||
|
// method: 'get',
|
||||
|
// params: data
|
||||
|
// })
|
||||
|
// }
|
||||
|
// //根据市sid获取该市的所有县区
|
||||
|
// export function getCounty(data) {
|
||||
|
// return request({
|
||||
|
// url: '/system/region/getCounty',
|
||||
|
// method: 'get',
|
||||
|
// params: data
|
||||
|
// })
|
||||
|
// }
|
||||
|
// 获取省/portal/v1/regions/getProvince
|
||||
|
export function getProvince(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/regions/getProvince',data, |
||||
|
method: 'get', |
||||
|
params:data, |
||||
|
}) |
||||
|
} |
||||
|
// 根据省sid获取该省的所有市
|
||||
|
export function getCity(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/regions/getCity', |
||||
|
params:data, |
||||
|
method: 'get', |
||||
|
}) |
||||
|
} |
||||
|
// 根据市sid获取该市的所有县区
|
||||
|
export function getCounty(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/regions/getCounty', |
||||
|
method: 'get', |
||||
|
params:data, |
||||
|
}) |
||||
|
} |
@ -0,0 +1,135 @@ |
|||||
|
import request from '@/utils/request' |
||||
|
|
||||
|
export function typeValues(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/dictcommons/typeValues', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据当前登录人orgSidPath(全路径sid)查询分公司
|
||||
|
export function getOrgSidByPath(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/sysstafforg/getOrgSidByPath', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据分公司sid查询分公司名称
|
||||
|
export function fetchBySid(sid) { |
||||
|
return request({ |
||||
|
url: 'portal/v1/sysorganization/fetchBySid/' + sid, |
||||
|
method: 'get' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据当前登录用户sid获取本分公司下的销售部门和销售专员
|
||||
|
export function selectOrgList(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/sysorganization/selectOrgList', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据当前登录用户全路径sidPath获取本分公司下的资方信息
|
||||
|
export function selectListByOrgPath(data) { |
||||
|
return request({ |
||||
|
url: '/riskcenter/v1/loanfinbank/selectListByOrgPath', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据当前登录用户的分公司sid获取本分公司下的车型信息
|
||||
|
export function selModelByUseOrgSid(data) { |
||||
|
return request({ |
||||
|
url: '/base/basevehmodelconfig/selModelByUseOrgSid', |
||||
|
method: 'post', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据当前登录用户的全路径sidPath、用户sid、客户类型(01个人、02企业)等获取客户信息
|
||||
|
export function selectCustomerList(data) { |
||||
|
return request({ |
||||
|
url: '/crm/v1/crmcustomertemp/selectCustomerList', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 当前用户创建申请时判断该用户是否有该菜单的操作权限
|
||||
|
export function selectHaveMessage(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/sysuser/selectHaveMessage ', |
||||
|
method: 'post', |
||||
|
data: data, |
||||
|
headers: { 'Content-Type': 'application/json' } |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据当前登录用户的角色获取菜单分页列表页面右上角按钮的隐藏
|
||||
|
export function getButtonPermissions(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/sysfunction/getButtonPermissions', |
||||
|
method: 'post', |
||||
|
data: data, |
||||
|
headers: { 'Content-Type': 'application/json' } |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据分公司sid获取该分公司下的所有供应商
|
||||
|
export function getGysByOrgSid(data) { |
||||
|
return request({ |
||||
|
url: '/base/v1/basemanufacturer/getGysByOrgSid', |
||||
|
method: 'post', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据分公司sid获取该分公司下的所有供应商
|
||||
|
export function getGysTypeByOrgSid(data) { |
||||
|
return request({ |
||||
|
url: '/base/v1/basemanufacturer/getGysTypeByOrgSid', |
||||
|
method: 'post', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据分公司全路径sid和车型sid获取合格证公告型号
|
||||
|
export function getAnnounceList(data) { |
||||
|
return request({ |
||||
|
url: '/base/v1/basevehmodelannouncementmodel/getAnnounceList', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据分公司全路径sid、当前登录用户sid、是否打包获取已备案(有效期内)的产品政策信息
|
||||
|
export function selectList(data) { |
||||
|
return request({ |
||||
|
url: '/riskcenter/v1/LoanFinPolicy/selectList', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 获取产品政策下的其它融信息,或分公司下备案通过的其它融
|
||||
|
export function selectListByOther(data) { |
||||
|
return request({ |
||||
|
url: '/riskcenter/v1/LoanFinOtherPolicy/selectList', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 销售订单--编辑、详情初始化
|
||||
|
export function fetchDetails(data) { |
||||
|
return request({ |
||||
|
url: '/buscenter/v1/bussalesorder/fetchDetailsBySid/' + data, |
||||
|
method: 'get' |
||||
|
}) |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
import request from '@/utils/request' |
||||
|
// 请求按钮权限
|
||||
|
export default { |
||||
|
|
||||
|
// 查询分页列表,输入当前路径和userSid,返回
|
||||
|
buttonPermission: function(params) { |
||||
|
return request({ |
||||
|
url: '/demopackage/v1/demo/buttonPermission', |
||||
|
method: 'post', |
||||
|
data: params |
||||
|
}) |
||||
|
} |
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
import request from '@/utils/request' |
||||
|
import qs from 'qs' |
||||
|
|
||||
|
class user { |
||||
|
login(data) { // 登录
|
||||
|
return request({ |
||||
|
url: '/system/user/login', |
||||
|
method: 'post', |
||||
|
data |
||||
|
}) |
||||
|
} |
||||
|
logout(data) { // 退出
|
||||
|
return request({ |
||||
|
url: '/portal/v1/sysuser/signOut', |
||||
|
method: 'post', |
||||
|
data: qs.stringify(data) |
||||
|
}) |
||||
|
} |
||||
|
updatePassword(data) { // 退出修改密码
|
||||
|
return request({ |
||||
|
url: '/portal/v1/sysuser/updatePassword', |
||||
|
method: 'post', |
||||
|
data: qs.stringify(data) |
||||
|
}) |
||||
|
} |
||||
|
reGetPwd(data){ |
||||
|
return request({ |
||||
|
url: `/system/user/reGetPwd/${data.userName}/${data.userPhone}`, |
||||
|
method: 'post', |
||||
|
data: qs.stringify(data) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export default new user() |
@ -0,0 +1,44 @@ |
|||||
|
import request from '@/utils/request' |
||||
|
import qs from 'qs' |
||||
|
let tokens = window.sessionStorage.getItem('token'); |
||||
|
//
|
||||
|
export function rolemenus(data) { |
||||
|
return request({ |
||||
|
url: '/system/v1/rolemenus/'+data.roleSid, |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 获取左侧菜单
|
||||
|
export function getrolemenus(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/sysmenu/sourcemenutree', |
||||
|
data: data, |
||||
|
method: 'POST', |
||||
|
async: false, |
||||
|
headers: {'Content-Type': 'application/json'} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 获取角色的主页菜单
|
||||
|
export function sourcesofrole(data) { |
||||
|
return request({ |
||||
|
url: '/system/v1/rolemenus/sourcesofrole', |
||||
|
method: 'POST', |
||||
|
data: data, |
||||
|
headers: {'Content-Type': 'application/json'} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 根据token值获取登录后的用户信息
|
||||
|
export function loginDetails(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/sysuser/loginDetails', |
||||
|
method: 'post', |
||||
|
data: data, |
||||
|
headers: { |
||||
|
'Content-Type': 'application/json' |
||||
|
} |
||||
|
}) |
||||
|
} |
@ -0,0 +1,44 @@ |
|||||
|
import request from '@/utils/request' |
||||
|
import qs from 'qs' |
||||
|
//登录
|
||||
|
export function login(data) { |
||||
|
return request({ |
||||
|
url: '/portal/v1/sysuser/login', |
||||
|
method: 'post', |
||||
|
data: data, |
||||
|
headers: {'Content-Type': 'application/json'} |
||||
|
}) |
||||
|
} |
||||
|
// 用户注册
|
||||
|
export function registUser(data) { |
||||
|
return request({ |
||||
|
url: '/system/user/save', |
||||
|
method: 'post', |
||||
|
data, |
||||
|
headers:{'Content-Type':'application/x-www-form-urlencoded;'} |
||||
|
}) |
||||
|
} |
||||
|
// 获取手机验证码
|
||||
|
export function getVerificationCode(data) { |
||||
|
return request({ |
||||
|
url: '/system/user/getVerificationCode', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 获取登录验证码
|
||||
|
export function imgCode() { |
||||
|
return request({ |
||||
|
url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(), |
||||
|
method: 'get' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 获取用信息
|
||||
|
export function getInfo(token) { |
||||
|
return request({ |
||||
|
url: '/system/user/loginDetails', |
||||
|
method: 'post', |
||||
|
}) |
||||
|
} |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 91 B |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 944 B |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 640 B |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 4.1 KiB |