Browse Source

优化

master
God 2 years ago
parent
commit
9dd89eb242
  1. 98
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFiling.java
  2. 93
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDetailsVo.java
  3. 91
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDto.java
  4. 109
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeign.java
  5. 108
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeignFallback.java
  6. 67
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingQuery.java
  7. 80
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingVo.java
  8. 37
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingCompleteDto.java
  9. 25
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingNodeQuery.java
  10. 26
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingNodeVo.java
  11. 48
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingTaskQuery.java
  12. 24
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/SubmitBusValcustFilingDto.java
  13. 70
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingMapper.java
  14. 60
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingMapper.xml
  15. 142
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingRest.java
  16. 496
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java
  17. 37
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  18. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  19. 14
      anrui-reportcenter-ui/.editorconfig
  20. 10
      anrui-reportcenter-ui/.env.development
  21. 9
      anrui-reportcenter-ui/.env.production
  22. 8
      anrui-reportcenter-ui/.env.staging
  23. 4
      anrui-reportcenter-ui/.eslintignore
  24. 199
      anrui-reportcenter-ui/.eslintrc.js
  25. 16
      anrui-reportcenter-ui/.gitignore
  26. 28
      anrui-reportcenter-ui/.project
  27. 5
      anrui-reportcenter-ui/.travis.yml
  28. 21
      anrui-reportcenter-ui/LICENSE
  29. 0
      anrui-reportcenter-ui/README-zh.md
  30. 90
      anrui-reportcenter-ui/README.md
  31. 14
      anrui-reportcenter-ui/babel.config.js
  32. 35
      anrui-reportcenter-ui/build/index.js
  33. 24
      anrui-reportcenter-ui/jest.config.js
  34. 9
      anrui-reportcenter-ui/jsconfig.json
  35. 57
      anrui-reportcenter-ui/mock/index.js
  36. 81
      anrui-reportcenter-ui/mock/mock-server.js
  37. 29
      anrui-reportcenter-ui/mock/table.js
  38. 84
      anrui-reportcenter-ui/mock/user.js
  39. 25
      anrui-reportcenter-ui/mock/utils.js
  40. 69
      anrui-reportcenter-ui/package.json
  41. 8
      anrui-reportcenter-ui/postcss.config.js
  42. BIN
      anrui-reportcenter-ui/public/favicon.ico
  43. BIN
      anrui-reportcenter-ui/public/image/liuchengtu.jpg
  44. 17
      anrui-reportcenter-ui/public/index.html
  45. 14
      anrui-reportcenter-ui/src/App.vue
  46. 4
      anrui-reportcenter-ui/src/api/Common/Upload.js
  47. 49
      anrui-reportcenter-ui/src/api/Common/areaPicker.js
  48. 135
      anrui-reportcenter-ui/src/api/Common/dictcommons.js
  49. 13
      anrui-reportcenter-ui/src/api/Common/permission.js
  50. 36
      anrui-reportcenter-ui/src/api/User/login.js
  51. 44
      anrui-reportcenter-ui/src/api/system/Role/role.js
  52. 44
      anrui-reportcenter-ui/src/api/user.js
  53. BIN
      anrui-reportcenter-ui/src/assets/404_images/404.png
  54. BIN
      anrui-reportcenter-ui/src/assets/404_images/404_cloud.png
  55. BIN
      anrui-reportcenter-ui/src/assets/home/anrui.png
  56. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon1.png
  57. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon2.png
  58. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon3.png
  59. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon4.png
  60. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon5.png
  61. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon6.png
  62. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon7.png
  63. BIN
      anrui-reportcenter-ui/src/assets/home/bIcon8.png
  64. BIN
      anrui-reportcenter-ui/src/assets/home/bottomBg.png
  65. BIN
      anrui-reportcenter-ui/src/assets/home/line.png
  66. BIN
      anrui-reportcenter-ui/src/assets/home/ltBg.png
  67. BIN
      anrui-reportcenter-ui/src/assets/home/ltIcon1.png
  68. BIN
      anrui-reportcenter-ui/src/assets/home/ltIcon2.png
  69. BIN
      anrui-reportcenter-ui/src/assets/home/ltIcon3.png
  70. BIN
      anrui-reportcenter-ui/src/assets/home/ltIcon4.png
  71. BIN
      anrui-reportcenter-ui/src/assets/home/notice.png
  72. BIN
      anrui-reportcenter-ui/src/assets/home/rtBg.png
  73. BIN
      anrui-reportcenter-ui/src/assets/images/arrow.png
  74. BIN
      anrui-reportcenter-ui/src/assets/images/bdrysh.png
  75. BIN
      anrui-reportcenter-ui/src/assets/images/btn.png
  76. BIN
      anrui-reportcenter-ui/src/assets/images/cdgl.png
  77. BIN
      anrui-reportcenter-ui/src/assets/images/cxjl.png
  78. BIN
      anrui-reportcenter-ui/src/assets/images/czsc.png
  79. BIN
      anrui-reportcenter-ui/src/assets/images/dwrysh.png
  80. BIN
      anrui-reportcenter-ui/src/assets/images/dwxxgl.png
  81. BIN
      anrui-reportcenter-ui/src/assets/images/dy.png
  82. BIN
      anrui-reportcenter-ui/src/assets/images/head.png
  83. BIN
      anrui-reportcenter-ui/src/assets/images/info.png
  84. BIN
      anrui-reportcenter-ui/src/assets/images/jcxx.png
  85. BIN
      anrui-reportcenter-ui/src/assets/images/jggl.png
  86. BIN
      anrui-reportcenter-ui/src/assets/images/jlsc.png
  87. BIN
      anrui-reportcenter-ui/src/assets/images/jsgl.png
  88. BIN
      anrui-reportcenter-ui/src/assets/images/jsxd.png
  89. BIN
      anrui-reportcenter-ui/src/assets/images/login/OAKQ.png
  90. BIN
      anrui-reportcenter-ui/src/assets/images/login/bg2-img.png
  91. BIN
      anrui-reportcenter-ui/src/assets/images/login/bgimg.jpg
  92. BIN
      anrui-reportcenter-ui/src/assets/images/login/nose.png
  93. BIN
      anrui-reportcenter-ui/src/assets/images/login/pasw.png
  94. BIN
      anrui-reportcenter-ui/src/assets/images/login/user.png
  95. BIN
      anrui-reportcenter-ui/src/assets/images/lzrysh.png
  96. BIN
      anrui-reportcenter-ui/src/assets/images/org/headerimg.png
  97. BIN
      anrui-reportcenter-ui/src/assets/images/org/jian.png
  98. BIN
      anrui-reportcenter-ui/src/assets/images/org/sfz.png
  99. BIN
      anrui-reportcenter-ui/src/assets/images/org/sqs.png
  100. BIN
      anrui-reportcenter-ui/src/assets/images/org/success.png

98
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFiling.java

@ -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
}

93
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDetailsVo.java

@ -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
}

91
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingDto.java

@ -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
}

109
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeign.java

@ -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);
}

108
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingFeignFallback.java

@ -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;
}
}

67
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingQuery.java

@ -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;
}

80
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/BusValcustFilingVo.java

@ -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;
}

37
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingCompleteDto.java

@ -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;
}

25
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingNodeQuery.java

@ -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;
}

26
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingNodeVo.java

@ -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;
}

48
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/BusValcustFilingTaskQuery.java

@ -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;
}

24
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvalcustfiling/flowable/SubmitBusValcustFilingDto.java

@ -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;
}

70
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingMapper.java

@ -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);
}

60
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingMapper.xml

@ -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>

142
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingRest.java

@ -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);
}
}

496
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvalcustfiling/BusValcustFilingService.java

@ -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("操作失败!提交的数据不一致!");
}
}

37
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -61,6 +61,8 @@ import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto;
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.fin.api.finbillapplication.*;
@ -205,6 +207,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
private FlowFeign flowFeign;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
@Autowired
private BusValcustFilingFeign busValcustFilingFeign;
private QueryWrapper<FinBillApplication> createQueryWrapper(FinBillApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -753,6 +757,38 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
List<FinBillVehicleVo> finBillVehicleVos = finBillVehicleService.fetchVehBySid(businessSid);
List<FinBillTrailerVo> finBillTrailerVos = finBillTrailerService.fetchByMainSid(businessSid);
if (!data.getSingleFinalPrice().equals(finBillApplication.getOneBillMoney())){//是高低开
BusValcustFilingDto busValcustFilingDto = new BusValcustFilingDto();
busValcustFilingDto.setCreateBySid(finBillApplication.getCreateBySid());
busValcustFilingDto.setCreateByName(finBillApplication.getCreateByName());
busValcustFilingDto.setOrgSidPath(finBillApplication.getOrgSidPath());
busValcustFilingDto.setUseOrgSid(finBillApplication.getUseOrgSid());
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(finBillApplication.getUseOrgSid()).getData();
busValcustFilingDto.setUseOrgName(sysOrganizationVo.getName());
busValcustFilingDto.setApplyDeptSid(finBillApplication.getDeptSid());
busValcustFilingDto.setApplyDeptName(finBillApplication.getDeptName());
busValcustFilingDto.setContractNo(finBillApplication.getContractNo());
busValcustFilingDto.setModelSid(finBillApplication.getModelSid());
busValcustFilingDto.setModelName(finBillApplication.getModelName());
String vinSid = "";
String vinNo = "";
for (FinBillVehicleVo finBillVehicleVo : finBillVehicleVos) {
vinSid = vinSid + finBillVehicleVo.getVehSid() + ",";
vinNo = vinNo + finBillVehicleVo.getVinNo() + ",";
}
busValcustFilingDto.setVinSid(vinSid.substring(0,vinSid.lastIndexOf(",")));
busValcustFilingDto.setVinNo(vinNo.substring(0,vinNo.lastIndexOf(",")));
BigDecimal money = finBillApplication.getOneBillMoney().subtract(data.getSingleFinalPrice());
int i = money.compareTo(BigDecimal.ZERO);
if (i == 1){
busValcustFilingDto.setIsGdk("0");
}else {
busValcustFilingDto.setIsGdk("1");
}
busValcustFilingDto.setMoney(money.abs().toString());
busValcustFilingDto.setSaleOrderSid(busSalesOrder.getSid());
busValcustFilingFeign.save(busValcustFilingDto);
}else {//不是高低开
for (FinBillVehicleVo finBillVehicleVo : finBillVehicleVos) {
int count = finVehicleInvoiceService.selectCountByVinSid(finBillVehicleVo.getVehSid());
if (count == 0) {
@ -845,6 +881,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if (oneBillMoney == null) {
busSalesOrderFeign.updateOneBillMoneyByOrderSid(busSalesOrder.getSid(), finBillApplication.getOneBillMoney().toString());
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();

1
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -55,6 +55,7 @@ public enum ProcDefEnum {
DEALERFILINGAPPLY("经销商备案", "process_jdu35cog:3:2577504"),
LOANTEMPLATEAPPLY("定制金融方案", "process_9q5omebi:2:2685008"),
LOANHOMEVISITAPPEALAPPLY("家访考察申诉", "process_8ujil3h3:1:3665004"),
BUSVALCUSTFILING("价值客户备案申请", "process_n8fwpitk:1:4825004"),
/******************************测试流程id*********************************************/

14
anrui-reportcenter-ui/.editorconfig

@ -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

10
anrui-reportcenter-ui/.env.development

@ -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"

9
anrui-reportcenter-ui/.env.production

@ -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"

8
anrui-reportcenter-ui/.env.staging

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'staging'
# base api
VUE_APP_BASE_API = '/stage-api'

4
anrui-reportcenter-ui/.eslintignore

@ -0,0 +1,4 @@
build/*.js
src/assets
public
dist

199
anrui-reportcenter-ui/.eslintrc.js

@ -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']
}
}

16
anrui-reportcenter-ui/.gitignore

@ -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

28
anrui-reportcenter-ui/.project

@ -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>

5
anrui-reportcenter-ui/.travis.yml

@ -0,0 +1,5 @@
language: node_js
node_js: 10
script: npm run test
notifications:
email: false

21
anrui-reportcenter-ui/LICENSE

@ -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
anrui-reportcenter-ui/README-zh.md

90
anrui-reportcenter-ui/README.md

@ -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
![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
## 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

14
anrui-reportcenter-ui/babel.config.js

@ -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']
}
}
}

35
anrui-reportcenter-ui/build/index.js

@ -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}`)
}

24
anrui-reportcenter-ui/jest.config.js

@ -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/'
}

9
anrui-reportcenter-ui/jsconfig.json

@ -0,0 +1,9 @@
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"]
}

57
anrui-reportcenter-ui/mock/index.js

@ -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
}

81
anrui-reportcenter-ui/mock/mock-server.js

@ -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))
}
}
})
}

29
anrui-reportcenter-ui/mock/table.js

@ -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
}
}
}
}
]

84
anrui-reportcenter-ui/mock/user.js

@ -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'
}
}
}
]

25
anrui-reportcenter-ui/mock/utils.js

@ -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
}

69
anrui-reportcenter-ui/package.json

@ -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"
}

8
anrui-reportcenter-ui/postcss.config.js

@ -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': {}
}
}

BIN
anrui-reportcenter-ui/public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
anrui-reportcenter-ui/public/image/liuchengtu.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

17
anrui-reportcenter-ui/public/index.html

@ -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>

14
anrui-reportcenter-ui/src/App.vue

@ -0,0 +1,14 @@
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App',
mounted() {
},
}
</script>

4
anrui-reportcenter-ui/src/api/Common/Upload.js

@ -0,0 +1,4 @@
import request from '@/utils/request'
// 上传图片
export const uploadFile = '/api/riskcenter/file/upload'

49
anrui-reportcenter-ui/src/api/Common/areaPicker.js

@ -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,
})
}

135
anrui-reportcenter-ui/src/api/Common/dictcommons.js

@ -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'
})
}

13
anrui-reportcenter-ui/src/api/Common/permission.js

@ -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
})
}
}

36
anrui-reportcenter-ui/src/api/User/login.js

@ -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()

44
anrui-reportcenter-ui/src/api/system/Role/role.js

@ -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'
}
})
}

44
anrui-reportcenter-ui/src/api/user.js

@ -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',
})
}

BIN
anrui-reportcenter-ui/src/assets/404_images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
anrui-reportcenter-ui/src/assets/404_images/404_cloud.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
anrui-reportcenter-ui/src/assets/home/anrui.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bIcon8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
anrui-reportcenter-ui/src/assets/home/bottomBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
anrui-reportcenter-ui/src/assets/home/line.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

BIN
anrui-reportcenter-ui/src/assets/home/ltBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
anrui-reportcenter-ui/src/assets/home/ltIcon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
anrui-reportcenter-ui/src/assets/home/ltIcon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
anrui-reportcenter-ui/src/assets/home/ltIcon3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
anrui-reportcenter-ui/src/assets/home/ltIcon4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
anrui-reportcenter-ui/src/assets/home/notice.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

BIN
anrui-reportcenter-ui/src/assets/home/rtBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
anrui-reportcenter-ui/src/assets/images/arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
anrui-reportcenter-ui/src/assets/images/bdrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-reportcenter-ui/src/assets/images/btn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
anrui-reportcenter-ui/src/assets/images/cdgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
anrui-reportcenter-ui/src/assets/images/cxjl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
anrui-reportcenter-ui/src/assets/images/czsc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-reportcenter-ui/src/assets/images/dwrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-reportcenter-ui/src/assets/images/dwxxgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-reportcenter-ui/src/assets/images/dy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
anrui-reportcenter-ui/src/assets/images/head.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
anrui-reportcenter-ui/src/assets/images/info.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
anrui-reportcenter-ui/src/assets/images/jcxx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
anrui-reportcenter-ui/src/assets/images/jggl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
anrui-reportcenter-ui/src/assets/images/jlsc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
anrui-reportcenter-ui/src/assets/images/jsgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
anrui-reportcenter-ui/src/assets/images/jsxd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
anrui-reportcenter-ui/src/assets/images/login/OAKQ.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
anrui-reportcenter-ui/src/assets/images/login/bg2-img.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
anrui-reportcenter-ui/src/assets/images/login/bgimg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

BIN
anrui-reportcenter-ui/src/assets/images/login/nose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

BIN
anrui-reportcenter-ui/src/assets/images/login/pasw.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
anrui-reportcenter-ui/src/assets/images/login/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
anrui-reportcenter-ui/src/assets/images/lzrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-reportcenter-ui/src/assets/images/org/headerimg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
anrui-reportcenter-ui/src/assets/images/org/jian.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
anrui-reportcenter-ui/src/assets/images/org/sfz.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
anrui-reportcenter-ui/src/assets/images/org/sqs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
anrui-reportcenter-ui/src/assets/images/org/success.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save