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