From 834e6b8a7a55834e48edec690e2fb0e33347ad8a Mon Sep 17 00:00:00 2001
From: God <10745413@qq.com>
Date: Thu, 22 Sep 2022 17:13:21 +0800
Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E5=AF=B9=E6=8E=A5=E5=AE=8C?=
=?UTF-8?q?=E5=96=84=E4=B8=93=E9=A1=B9=E8=BF=94=E5=88=A9=E5=88=86=E9=85=8D?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=B5=81=E7=A8=8B=E6=8E=A5=E5=8F=A3?=
=?UTF-8?q?=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../biz/basevehicle/BaseVehicleMapper.xml | 11 +-
.../anrui/flowable/api/utils/ProcDefEnum.java | 1 +
.../ScmSpecialrebatedistributeDetailsVo.java | 2 +
.../ScmSpecialrebatedistributeDto.java | 2 +
.../ScmSpecialrebatedistributeFeign.java | 43 +++
...mSpecialrebatedistributeFeignFallback.java | 45 ++++
.../flow/GetNodeQuery.java | 25 ++
.../flow/GetNodeVo.java | 25 ++
...ScmSpecialRebatedistributeCompleteDto.java | 42 +++
.../ScmSpecialRebatedistributeTaskQuery.java | 56 ++++
.../SubmitScmSpecialRebatedistributeDto.java | 21 ++
.../ScmSpecialrebatedistributeMapper.java | 3 +
.../ScmSpecialrebatedistributeMapper.xml | 15 ++
.../ScmSpecialrebatedistributeRest.java | 53 +++-
.../ScmSpecialrebatedistributeService.java | 247 +++++++++++++++++-
...ScmSpecialrebatedistributedetailMapper.xml | 1 +
.../ScmSpecialrebateVehsRest.java | 2 +-
17 files changed, 586 insertions(+), 8 deletions(-)
create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeQuery.java
create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeVo.java
create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeCompleteDto.java
create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeTaskQuery.java
create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/SubmitScmSpecialRebatedistributeDto.java
diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
index 3752cda217..c0cce3ae42 100644
--- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
+++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
@@ -1122,8 +1122,11 @@
\ No newline at end of file
diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
index c3dd66e0d0..b15a784f1f 100644
--- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
+++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
@@ -36,6 +36,7 @@ public enum ProcDefEnum {
SCMVEHREBATECHECKAPPLY("单车返利核对申请","process_3xtbbru8:1:560004"),
SCMSPECIALREBATEWITHAPPLY("专项返利预提申请","process_l0yxpgs2:1:590004"),
SCMSPECIALREBATECHECKAPPLY("专项返利核对申请","process_qw22vupn:1:590008"),
+ SCMSPECIALREBATECHEDISTRIBUTE("专项返利分配申请","process_h3w1aval:1:615004"),
CONTRACTAPPLY("合同审核","process_gd8c9xd5:1:545008"),
;
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDetailsVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDetailsVo.java
index 2354831025..bf279aa154 100644
--- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDetailsVo.java
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDetailsVo.java
@@ -54,6 +54,8 @@ public class ScmSpecialrebatedistributeDetailsVo implements Vo {
private String sid; // sid
+ @ApiModelProperty("创建人sid")
+ private String createBySid; // 创建人sid
@ApiModelProperty("品牌sid")
private String brandSid; // 品牌sid
@ApiModelProperty("品牌名称")
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDto.java
index 6a25fda199..2ba1144b12 100644
--- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDto.java
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeDto.java
@@ -54,6 +54,8 @@ public class ScmSpecialrebatedistributeDto implements Dto {
private String sid; // sid
+ @ApiModelProperty("创建人sid")
+ private String createBySid; // 创建人sid
@ApiModelProperty("品牌sid")
private String brandSid; // 品牌sid
@ApiModelProperty("品牌名称")
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeign.java
index 4b0910b9b8..64c71ee120 100644
--- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeign.java
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeign.java
@@ -25,14 +25,22 @@
*********************************************************/
package com.yxt.anrui.scm.api.scmspecialrebatedistribute;
+import com.yxt.anrui.scm.api.flow.FlowTaskVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeQuery;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.ScmSpecialRebatedistributeCompleteDto;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.SubmitScmSpecialRebatedistributeDto;
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 io.swagger.annotations.ApiParam;
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;
/**
@@ -75,4 +83,39 @@ public interface ScmSpecialrebatedistributeFeign {
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid);
+
+ /**************************************专项返利分配审批流程*******************************************/
+
+ @ApiOperation("提交专项返利分配申请")
+ @PostMapping("/submitSpecialRebatedistribute")
+ public ResultBean submitSpecialRebatedistribute(@RequestBody @Valid SubmitScmSpecialRebatedistributeDto dto);
+
+ @ApiOperation(value = "办理(同意)")
+ @PostMapping("/complete")
+ public ResultBean complete(@Valid @RequestBody ScmSpecialRebatedistributeCompleteDto dto);
+
+ @ApiOperation(value = "撤回流程")
+ @PostMapping(value = "/revokeProcess")
+ public ResultBean revokeProcess(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
+
+ @ApiOperation(value = "驳回任务")
+ @PostMapping(value = "/reject")
+ public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
+
+ @ApiOperation(value = "终止任务")
+ @PostMapping(value = "/breakProcess")
+ public ResultBean breakProcess(@RequestBody FlowTaskVo flowTaskVo);
+
+ @ApiOperation(value = "流程历史流转记录")
+ @GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
+ public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
+
+ @ApiOperation(value = "获取下一个环节")
+ @GetMapping(value = "/getNextNodesForSubmit")
+ ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap GetNodeQuery query);
+
+ @ApiOperation(value = "获取上一个环节")
+ @GetMapping(value = "/getPreviousNodesForReject")
+ ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap GetNodeQuery query);
+
}
\ No newline at end of file
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeignFallback.java
index bc79a1b092..87951882ac 100644
--- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeignFallback.java
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/ScmSpecialrebatedistributeFeignFallback.java
@@ -25,6 +25,11 @@
*********************************************************/
package com.yxt.anrui.scm.api.scmspecialrebatedistribute;
+import com.yxt.anrui.scm.api.flow.FlowTaskVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeQuery;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.ScmSpecialRebatedistributeCompleteDto;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.SubmitScmSpecialRebatedistributeDto;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@@ -69,4 +74,44 @@ public class ScmSpecialrebatedistributeFeignFallback implements ScmSpecialrebate
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmspecialrebatedistribute/fetchDetailsBySid无法访问");
}
+
+ @Override
+ public ResultBean submitSpecialRebatedistribute(SubmitScmSpecialRebatedistributeDto dto) {
+ return null;
+ }
+
+ @Override
+ public ResultBean complete(ScmSpecialRebatedistributeCompleteDto dto) {
+ return null;
+ }
+
+ @Override
+ public ResultBean revokeProcess(FlowTaskVo flowTaskVo) {
+ return null;
+ }
+
+ @Override
+ public ResultBean taskReject(FlowTaskVo flowTaskVo) {
+ return null;
+ }
+
+ @Override
+ public ResultBean breakProcess(FlowTaskVo flowTaskVo) {
+ return null;
+ }
+
+ @Override
+ public ResultBean flowRecord(String procInsId) {
+ return null;
+ }
+
+ @Override
+ public ResultBean> getNextNodesForSubmit(GetNodeQuery query) {
+ return null;
+ }
+
+ @Override
+ public ResultBean> getPreviousNodesForReject(GetNodeQuery query) {
+ return null;
+ }
}
\ No newline at end of file
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeQuery.java
new file mode 100644
index 0000000000..038060f7bc
--- /dev/null
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeQuery.java
@@ -0,0 +1,25 @@
+package com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow;
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Map;
+
+/**
+ * @Author dimengzhe
+ * @Date 2022/6/28 10:42
+ * @Description
+ */
+@Data
+public class GetNodeQuery implements Query {
+ private static final long serialVersionUID = -5674867230708197611L;
+
+ @ApiModelProperty(value = "环节定义id")
+ @NotBlank(message = "参数错误:taskDefKey")
+ private String taskDefKey;
+
+ @ApiModelProperty(value = "分支字段及业务字段")
+ private Map formVariables;
+}
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeVo.java
new file mode 100644
index 0000000000..dbb74260e6
--- /dev/null
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/GetNodeVo.java
@@ -0,0 +1,25 @@
+package com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow;
+
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author dimengzhe
+ * @Date 2022/6/28 11:09
+ * @Description
+ */
+@Data
+public class GetNodeVo implements Vo {
+ private static final long serialVersionUID = 8802774014747063504L;
+ @ApiModelProperty(value = "节点名称")
+ private String name;
+ @ApiModelProperty(value = "节点id")
+ private String id;
+ @ApiModelProperty(value = "审批组")
+ private List candidateGroups;
+ @ApiModelProperty(value = "是否是最后环节")
+ private String endTask;
+}
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeCompleteDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeCompleteDto.java
new file mode 100644
index 0000000000..aebd137fe2
--- /dev/null
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeCompleteDto.java
@@ -0,0 +1,42 @@
+package com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow;
+
+import com.yxt.common.core.dto.Dto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author dimengzhe
+ * @Date 2022/6/28 9:01
+ * @Description
+ */
+@Data
+public class ScmSpecialRebatedistributeCompleteDto implements Dto {
+ private static final long serialVersionUID = 3240453987322803352L;
+ @ApiModelProperty(value = "用户sid")
+ @NotBlank(message = "参数错误:userSid")
+ private String userSid;
+ @ApiModelProperty(value = "用户全路径sid")
+ @NotBlank(message = "参数错误:orgSidPath")
+ private String orgSidPath;
+ @ApiModelProperty(value = "节点id")
+ @NotBlank(message = "参数错误:taskDefKey")
+ private String taskDefKey;
+ @ApiModelProperty(value = "任务id")
+ @NotBlank(message = "参数错误:taskId")
+ private String taskId;
+ @ApiModelProperty(value = "流程id")
+ @NotBlank(message = "参数错误:instanceId")
+ private String instanceId;
+ @ApiModelProperty(value = "意见")
+// @NotBlank(message = "参数错误:comment")
+ private String comment;
+ @ApiModelProperty(value = "业务sid")
+ @NotBlank(message = "参数错误:businessSid")
+ private String businessSid;
+ @ApiModelProperty(value = "分支字段及业务字段")
+ private Map formVariables = new HashMap<>();
+}
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeTaskQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeTaskQuery.java
new file mode 100644
index 0000000000..5a735630d0
--- /dev/null
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/ScmSpecialRebatedistributeTaskQuery.java
@@ -0,0 +1,56 @@
+package com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow;
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Author dimengzhe
+ * @Date 2022/6/28 17:29
+ * @Description 终止、撤回、驳回查询参数
+ */
+@Data
+public class ScmSpecialRebatedistributeTaskQuery implements Query {
+ private static final long serialVersionUID = -4006020771892400451L;
+ /**
+ * 终止、驳回、撤回
+ */
+ @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")
+ private String instanceId;
+ /*@ApiModelProperty("用户Id")
+ private String userId;
+ @ApiModelProperty("节点")
+ private String targetKey;
+ @ApiModelProperty("流程变量信息")
+ private Map values = new HashMap<>();
+ @ApiModelProperty("审批人")
+ private String assignee;
+ @ApiModelProperty("候选人")
+ private List candidateUsers = new ArrayList<>();
+ @ApiModelProperty("审批组")
+ private List candidateGroups = new ArrayList<>();*/
+}
diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/SubmitScmSpecialRebatedistributeDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/SubmitScmSpecialRebatedistributeDto.java
new file mode 100644
index 0000000000..847e3f1e74
--- /dev/null
+++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebatedistribute/flow/SubmitScmSpecialRebatedistributeDto.java
@@ -0,0 +1,21 @@
+package com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow;
+
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.ScmSpecialrebatedistributeDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author dimengzhe
+ * @Date 2022/6/27 13:38
+ * @Description
+ */
+@Data
+public class SubmitScmSpecialRebatedistributeDto extends ScmSpecialrebatedistributeDto {
+ private static final long serialVersionUID = 378585162071125756L;
+ @ApiModelProperty("意见")
+ private String comment;
+ @ApiModelProperty("流程实例id")
+ private String instanceId;
+ @ApiModelProperty("任务id")
+ private String taskId;
+}
diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.java
index 54eb323839..9a722e7b68 100644
--- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.java
+++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.java
@@ -36,6 +36,7 @@ import com.yxt.anrui.scm.api.scmspecialrebatedistribute.ScmSpecialrebatedistribu
import com.yxt.anrui.scm.api.scmspecialrebatedistribute.ScmSpecialrebatedistributeVo;
import java.util.List;
+import java.util.Map;
/**
* Project: anrui-scm(专项返利分配)
@@ -64,4 +65,6 @@ public interface ScmSpecialrebatedistributeMapper extends BaseMapper selectListVo();
int selectBySid(String join);
+
+ int updateFlowFiled(Map beanToMap);
}
\ No newline at end of file
diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.xml
index af05982b9d..8a29f32fa9 100644
--- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.xml
+++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeMapper.xml
@@ -17,4 +17,19 @@
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
+
+
+ UPDATE scm_specialrebatedistribute
+ SET nodeState=#{nodeState}, nodeSid=#{taskDefKey}
+
+ , procDefId=#{procDefId}
+
+
+ , procInstId=#{procInsId}
+
+
+ , taskId=#{taskId}
+
+ WHERE sid=#{sid}
+
\ No newline at end of file
diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeRest.java
index be71caec12..fb777a46f9 100644
--- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeRest.java
+++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeRest.java
@@ -25,6 +25,14 @@
*********************************************************/
package com.yxt.anrui.scm.biz.scmspecialrebatedistribute;
+import cn.hutool.core.bean.BeanUtil;
+import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
+import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
+import com.yxt.anrui.scm.api.flow.FlowTaskVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeQuery;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.ScmSpecialRebatedistributeCompleteDto;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.SubmitScmSpecialRebatedistributeDto;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@@ -80,7 +88,7 @@ public class ScmSpecialrebatedistributeRest implements ScmSpecialrebatedistribut
@Override
@ApiOperation("根据sid批量删除")
- @PostMapping("/delBySids")
+ @DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
return scmSpecialrebatedistributeService.delAll(sids);
}
@@ -91,4 +99,47 @@ public class ScmSpecialrebatedistributeRest implements ScmSpecialrebatedistribut
public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){
return scmSpecialrebatedistributeService.fetchDetailsVoBySid(sid);
}
+
+ @Override
+ public ResultBean submitSpecialRebatedistribute(SubmitScmSpecialRebatedistributeDto dto) {
+ return scmSpecialrebatedistributeService.submitSpecialRebatedistribute(dto);
+ }
+
+ @Override
+ public ResultBean complete(ScmSpecialRebatedistributeCompleteDto dto) {
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(dto, bv);
+ bv.setModelId(ProcDefEnum.SCMSPECIALREBATECHEDISTRIBUTE.getProDefId());
+ return scmSpecialrebatedistributeService.complete(bv);
+ }
+
+ @Override
+ public ResultBean revokeProcess(FlowTaskVo flowTaskVo) {
+ return scmSpecialrebatedistributeService.revokeProcess(flowTaskVo);
+ }
+
+ @Override
+ public ResultBean taskReject(FlowTaskVo flowTaskVo) {
+ return scmSpecialrebatedistributeService.taskReject(flowTaskVo);
+ }
+
+ @Override
+ public ResultBean breakProcess(FlowTaskVo flowTaskVo) {
+ return scmSpecialrebatedistributeService.breakProcess(flowTaskVo);
+ }
+
+ @Override
+ public ResultBean flowRecord(String procInsId) {
+ return scmSpecialrebatedistributeService.flowRecord(procInsId);
+ }
+
+ @Override
+ public ResultBean> getNextNodesForSubmit(GetNodeQuery query) {
+ return scmSpecialrebatedistributeService.getNextNodesForSubmit(query);
+ }
+
+ @Override
+ public ResultBean> getPreviousNodesForReject(GetNodeQuery query) {
+ return scmSpecialrebatedistributeService.getPreviousNodesForReject(query);
+ }
}
diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeService.java
index fb8412a7c1..2faa915c11 100644
--- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeService.java
+++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistribute/ScmSpecialrebatedistributeService.java
@@ -26,9 +26,22 @@
package com.yxt.anrui.scm.biz.scmspecialrebatedistribute;
import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yxt.anrui.scm.api.scmspecialrebate.ScmStayDisRebateVo;
+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.utils.ProcDefEnum;
+import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
+import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
+import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
+import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
+import com.yxt.anrui.portal.api.sysuser.SysUserVo;
+import com.yxt.anrui.scm.api.flow.FlowTaskVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeQuery;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.GetNodeVo;
+import com.yxt.anrui.scm.api.scmspecialrebatedistribute.flow.SubmitScmSpecialRebatedistributeDto;
import com.yxt.anrui.scm.api.scmspecialrebatedistributedetail.ScmSpecialrebatedistributedetail;
import com.yxt.anrui.scm.api.scmspecialrebatedistributedetail.ScmSpecialrebatedistributedetailDetailsVo;
import com.yxt.anrui.scm.api.scmspecialrebatedistributedetail.ScmSpecialrebatedistributedetailDto;
@@ -50,7 +63,8 @@ import com.yxt.anrui.scm.api.scmspecialrebatedistribute.ScmSpecialrebatedistribu
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* Project: anrui-scm(专项返利分配)
@@ -72,6 +86,14 @@ public class ScmSpecialrebatedistributeService extends MybatisBaseService createQueryWrapper(ScmSpecialrebatedistributeQuery query) {
// todo: 这里根据具体业务调整查询条件
@@ -113,7 +135,7 @@ public class ScmSpecialrebatedistributeService extends MybatisBaseService insertByDto(ScmSpecialrebatedistributeDto dto) {
@@ -181,4 +203,221 @@ public class ScmSpecialrebatedistributeService extends MybatisBaseService userVoResultBean = sysUserFeign.fetchBySid(dto.getCreateBySid());
+ if (!userVoResultBean.getSuccess()) {
+ return rb.setMsg(userVoResultBean.getMsg());
+ }
+ //根据staffSid获取用户的组织全路径
+ ResultBean orgByStaffSid = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
+ if (!orgByStaffSid.getSuccess()) {
+ return rb.setMsg(orgByStaffSid.getMsg());
+ }
+ //用户的组织全路径
+ String orgSidPath = orgByStaffSid.getData().getOrgSidPath();
+ ScmSpecialrebatedistribute scmSpecialrebatedistribute = fetchBySid(dto.getSid());
+ int r = submitBusinessData(dto, scmSpecialrebatedistribute);
+ if (r == 3) {
+ return rb.setMsg("该申请不存在");
+ }
+ if (r == 0) {
+ return rb.setMsg("操作失败!提交的数据不一致");
+ }
+ //新增修改保存
+ ResultBean resultBean = saveOrUpdateDto(dto);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ String businessSid = resultBean.getData();
+ //创建BusinessVariables实体对象
+ BusinessVariables bv = new BusinessVariables();
+ //流程中的参数赋值
+ Map variables = BeanUtil.beanToMap(dto);
+ //若有网关,则赋值网关中判断的字段。
+ variables.put("businessSid", businessSid);
+ //=====================添加app所需参数
+ Map appMap = new HashMap<>();
+ appMap.put("sid",businessSid);
+ variables.put("app",appMap);
+ //用户的部门全路径sid
+ bv.setOrgSidPath(orgSidPath);
+ //业务sid
+ bv.setBusinessSid(businessSid);
+ //用户sid
+ bv.setUserSid(dto.getCreateBySid());
+ bv.setFormVariables(variables);
+ //流程定义id
+ bv.setModelId(ProcDefEnum.SCMSPECIALREBATECHEDISTRIBUTE.getProDefId());
+ if (r == 1) {
+ ResultBean voResultBean = flowableFeign.startProcess(bv);
+ UpdateFlowFieldVo ufVo = voResultBean.getData();
+ updateFlowFiled(BeanUtil.beanToMap(ufVo));
+ return voResultBean;
+ }
+ if (r == 2) {
+ // ToDo:驳回到发起人后再次提交
+ if (StringUtils.isBlank(dto.getInstanceId())) {
+ return rb.setMsg("参数错误:instanceId");
+ }
+ bv.setTaskId(scmSpecialrebatedistribute.getTaskId());
+ bv.setTaskDefKey(scmSpecialrebatedistribute.getNodeSid());
+ bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
+ bv.setInstanceId(dto.getInstanceId());
+ return complete(bv);
+ }
+ return rb;
+ }
+
+ /**
+ * 判断提交的流程是否被允许
+ *
+ * @param dto
+ * @return
+ */
+ private synchronized int submitBusinessData(SubmitScmSpecialRebatedistributeDto dto, ScmSpecialrebatedistribute scmSpecialRebatedistribute) {
+ int r = 0;
+ if (StringUtils.isBlank(dto.getSid())) {
+ r = 1;
+ } else {
+ if (scmSpecialRebatedistribute != null) {
+ String businessTaskId = scmSpecialRebatedistribute.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;
+ }
+
+ private int updateFlowFiled(Map beanToMap) {
+ return baseMapper.updateFlowFiled(beanToMap);
+ }
+
+ public ResultBean complete(BusinessVariables bv) {
+ ResultBean rb = ResultBean.fireFail();
+ ScmSpecialrebatedistribute scmSpecialrebatedistribute = fetchBySid(bv.getBusinessSid());
+ if (bv.getTaskId().equals(scmSpecialrebatedistribute.getTaskId())) {
+ ResultBean resultBean = flowableFeign.handleProsess(bv);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
+ if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
+ }
+ return rb.success().setData(resultBean.getData());
+ } else {
+ return rb.setMsg("操作失败!提交的数据不一致");
+ }
+ }
+
+ public ResultBean revokeProcess(FlowTaskVo query) {
+ ResultBean rb = ResultBean.fireFail();
+ if (StringUtils.isBlank(query.getUserSid())) {
+ return rb.setMsg("参数错误:userSid");
+ }
+ //根据业务sid查询排内购申请
+ ScmSpecialrebatedistribute scmSpecialrebatedistribute = fetchBySid(query.getBusinessSid());
+ String businessTaskId = scmSpecialrebatedistribute.getTaskId();
+ if (StringUtils.isNotBlank(businessTaskId)) {
+ if (businessTaskId.equals(query.getTaskId())) {
+ com.yxt.anrui.flowable.api.flowtask.FlowTaskVo flowTaskVo = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
+ BeanUtil.copyProperties(query, flowTaskVo);
+ flowTaskVo.setValues(BeanUtil.beanToMap(scmSpecialrebatedistribute));
+ ResultBean 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 taskReject(FlowTaskVo query) {
+ ResultBean rb = ResultBean.fireFail();
+ ScmSpecialrebatedistribute scmSpecialrebatedistribute = fetchBySid(query.getBusinessSid());
+ if (scmSpecialrebatedistribute == null) {
+ return rb.setMsg("该申请不存在");
+ }
+ String businessTaskId = scmSpecialrebatedistribute.getTaskId();
+ if (StringUtils.isNotBlank(businessTaskId)) {
+ if (businessTaskId.equals(query.getTaskId())) {
+ com.yxt.anrui.flowable.api.flowtask.FlowTaskVo flowTaskVo = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
+ BeanUtil.copyProperties(query, flowTaskVo);
+ ResultBean resultBean = flowableFeign.taskReject(flowTaskVo);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ Map map = BeanUtil.beanToMap(resultBean.getData());
+ //更新业务中的流程相关的参数
+ updateFlowFiled(map);
+ return rb.success();
+ }
+ }
+ return rb.setMsg("操作失败!提交的数据不一致!");
+ }
+
+ public ResultBean breakProcess(FlowTaskVo query) {
+ ResultBean rb = ResultBean.fireFail();
+ if (StringUtils.isBlank(query.getInstanceId())) {
+ return rb.setMsg("参数错误:instanceId");
+ }
+ if (StringUtils.isBlank(query.getUserSid())) {
+ return rb.setMsg("参数错误:userSid");
+ }
+ ScmSpecialrebatedistribute scmSpecialrebatedistribute = fetchBySid(query.getBusinessSid());
+ String businessTaskId = scmSpecialrebatedistribute.getTaskId();
+ if (StringUtils.isNotBlank(businessTaskId)) {
+ if (businessTaskId.equals(query.getTaskId())) {
+ com.yxt.anrui.flowable.api.flowtask.FlowTaskVo flowTaskVo = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
+ BeanUtil.copyProperties(query, flowTaskVo);
+ ResultBean resultBean = flowableFeign.breakProcess(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 flowRecord(String procInsId) {
+ return flowTaskFeign.businessFlowRecord(procInsId);
+ }
+
+ public ResultBean> getNextNodesForSubmit(GetNodeQuery query) {
+ ResultBean> rb = ResultBean.fireFail();
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ bv.setModelId(ProcDefEnum.SCMSPECIALREBATECHEDISTRIBUTE.getProDefId());
+ ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
+ //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
+ List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
+// List voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
+ return rb.success().setData(voList);
+ }
+
+ public ResultBean> getPreviousNodesForReject(GetNodeQuery query) {
+ ResultBean> rb = ResultBean.fireFail();
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ bv.setModelId(ProcDefEnum.SCMSPECIALREBATECHEDISTRIBUTE.getProDefId());
+ ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
+ //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
+ List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m),GetNodeVo.class)).collect(Collectors.toList());
+// List voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
+ return rb.success().setData(voList);
+ }
}
\ No newline at end of file
diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistributedetail/ScmSpecialrebatedistributedetailMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistributedetail/ScmSpecialrebatedistributedetailMapper.xml
index 1616f6839d..6549203ad6 100644
--- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistributedetail/ScmSpecialrebatedistributedetailMapper.xml
+++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatedistributedetail/ScmSpecialrebatedistributedetailMapper.xml
@@ -34,5 +34,6 @@
FROM scm_special_rebate ssr
LEFT JOIN scm_specialrebatedistributedetail ssd
ON ssd.`specialRebateSid` = ssr.`sid`
+ WHERE ssd.mainSid = #{sid}
\ No newline at end of file
diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatevehs/ScmSpecialrebateVehsRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatevehs/ScmSpecialrebateVehsRest.java
index d8d83d3f1f..e1a2abe71d 100644
--- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatevehs/ScmSpecialrebateVehsRest.java
+++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatevehs/ScmSpecialrebateVehsRest.java
@@ -80,7 +80,7 @@ public class ScmSpecialrebateVehsRest implements ScmSpecialrebateVehsFeign {
@Override
@ApiOperation("根据sid批量删除")
- @PostMapping("/delBySids")
+ @DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
scmSpecialrebateVehsService.delBySids(sids);