Browse Source

问题修改,单车返利核对流程接口开发、对接

master
God 3 years ago
parent
commit
d1ddef80c9
  1. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 14
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java
  3. 14
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundDto.java
  4. 14
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java
  5. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDetailsVo.java
  6. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDto.java
  7. 42
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeign.java
  8. 45
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeignFallback.java
  9. 25
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/GetNodeQuery.java
  10. 25
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/GetNodeVo.java
  11. 42
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/ScmVehRebateCheckApplyCompleteDto.java
  12. 56
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/ScmVehRebateCheckApplyTaskQuery.java
  13. 22
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/SubmitScmVehRebateCheckApplyDto.java
  14. 3
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyMapper.java
  15. 15
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyMapper.xml
  16. 115
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyRest.java
  17. 249
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java

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

@ -33,6 +33,7 @@ public enum ProcDefEnum {
BASESHUNINVOICAPPLY("调车开票申请","process_u4xrvaso:1:400008"), BASESHUNINVOICAPPLY("调车开票申请","process_u4xrvaso:1:400008"),
BASEVEHINSTALLMODPRICE("上装调价申请","process_s0a0svth:1:492508"), BASEVEHINSTALLMODPRICE("上装调价申请","process_s0a0svth:1:492508"),
SCMVEHREBATEWITHAPPLY("单车返利预提申请","process_qegarc7r:1:535004"), SCMVEHREBATEWITHAPPLY("单车返利预提申请","process_qegarc7r:1:535004"),
SCMVEHREBATECHECKAPPLY("单车返利核对申请","process_3xtbbru8:1:560004"),
CONTRACTAPPLY("合同审核","process_gd8c9xd5:1:545008"), CONTRACTAPPLY("合同审核","process_gd8c9xd5:1:545008"),
; ;

14
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java

@ -72,16 +72,20 @@ public class ScmApplyInbound extends BaseEntity {
@ApiModelProperty("可享受金额1") @ApiModelProperty("可享受金额1")
private BigDecimal eligibleAmountOne; private BigDecimal eligibleAmountOne;
@ApiModelProperty("政策2") @ApiModelProperty("政策2")
private String policyTwoo;
@ApiModelProperty("可享受金额2")
private BigDecimal eligibleAmountTwo;
@ApiModelProperty("政策3")
private String policyTwo; private String policyTwo;
@ApiModelProperty("可享受比例2") @ApiModelProperty("可享受比例3")
private String eligibleProportionTwo; private String eligibleProportionTwo;
@ApiModelProperty("对应金额2") @ApiModelProperty("对应金额3")
private BigDecimal corrMoneyTwo; private BigDecimal corrMoneyTwo;
@ApiModelProperty("政策3") @ApiModelProperty("政策4")
private String policyThree; private String policyThree;
@ApiModelProperty("可享受比例3") @ApiModelProperty("可享受比例4")
private String eligibleProportionThree; private String eligibleProportionThree;
@ApiModelProperty("对应金额3") @ApiModelProperty("对应金额4")
private BigDecimal corrMoneyThree; private BigDecimal corrMoneyThree;
@ApiModelProperty("金额合计") @ApiModelProperty("金额合计")
private BigDecimal moneyCount; private BigDecimal moneyCount;

14
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundDto.java

@ -93,16 +93,20 @@ public class ScmApplyInboundDto implements Dto {
@ApiModelProperty("可享受金额1") @ApiModelProperty("可享受金额1")
private BigDecimal eligibleAmountOne; private BigDecimal eligibleAmountOne;
@ApiModelProperty("政策2") @ApiModelProperty("政策2")
private String policyTwoo;
@ApiModelProperty("可享受金额2")
private BigDecimal eligibleAmountTwo;
@ApiModelProperty("政策3")
private String policyTwo; private String policyTwo;
@ApiModelProperty("可享受比例2") @ApiModelProperty("可享受比例3")
private String eligibleProportionTwo; private String eligibleProportionTwo;
@ApiModelProperty("对应金额2") @ApiModelProperty("对应金额3")
private BigDecimal corrMoneyTwo; private BigDecimal corrMoneyTwo;
@ApiModelProperty("政策3") @ApiModelProperty("政策4")
private String policyThree; private String policyThree;
@ApiModelProperty("可享受比例3") @ApiModelProperty("可享受比例4")
private String eligibleProportionThree; private String eligibleProportionThree;
@ApiModelProperty("对应金额3") @ApiModelProperty("对应金额4")
private BigDecimal corrMoneyThree; private BigDecimal corrMoneyThree;
@ApiModelProperty("金额合计") @ApiModelProperty("金额合计")
private BigDecimal moneyCount; private BigDecimal moneyCount;

14
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java

@ -84,16 +84,20 @@ public class ScmApplyInboundVo implements Vo {
@ApiModelProperty("可享受金额1") @ApiModelProperty("可享受金额1")
private BigDecimal eligibleAmountOne; private BigDecimal eligibleAmountOne;
@ApiModelProperty("政策2") @ApiModelProperty("政策2")
private String policyTwoo;
@ApiModelProperty("可享受金额2")
private BigDecimal eligibleAmountTwo;
@ApiModelProperty("政策3")
private String policyTwo; private String policyTwo;
@ApiModelProperty("可享受比例2") @ApiModelProperty("可享受比例3")
private String eligibleProportionTwo; private String eligibleProportionTwo;
@ApiModelProperty("对应金额2") @ApiModelProperty("对应金额3")
private BigDecimal corrMoneyTwo; private BigDecimal corrMoneyTwo;
@ApiModelProperty("政策3") @ApiModelProperty("政策4")
private String policyThree; private String policyThree;
@ApiModelProperty("可享受比例3") @ApiModelProperty("可享受比例4")
private String eligibleProportionThree; private String eligibleProportionThree;
@ApiModelProperty("对应金额3") @ApiModelProperty("对应金额4")
private BigDecimal corrMoneyThree; private BigDecimal corrMoneyThree;
@ApiModelProperty("金额合计") @ApiModelProperty("金额合计")
private BigDecimal moneyCount; private BigDecimal moneyCount;

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDetailsVo.java

@ -62,6 +62,8 @@ public class ScmVehrebateCheckapplyDetailsVo implements Vo {
private String brandName; // 品牌名称 private String brandName; // 品牌名称
@ApiModelProperty("核对申请标题") @ApiModelProperty("核对申请标题")
private String checkApply; // 核对申请标题 private String checkApply; // 核对申请标题
@ApiModelProperty("创建人sid")
private String createBySid; // 创建人sid
@ApiModelProperty("创建人姓名") @ApiModelProperty("创建人姓名")
private String createByName; // 创建人姓名 private String createByName; // 创建人姓名
@ApiModelProperty("使用组织sid") @ApiModelProperty("使用组织sid")

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDto.java

@ -54,6 +54,8 @@ public class ScmVehrebateCheckapplyDto implements Dto {
private String sid; // sid private String sid; // sid
@ApiModelProperty("创建人sid")
private String createBySid; // 创建人sid
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remarks; // 备注 private String remarks; // 备注
@ApiModelProperty("品牌sid") @ApiModelProperty("品牌sid")

42
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeign.java

@ -25,14 +25,22 @@
*********************************************************/ *********************************************************/
package com.yxt.anrui.scm.api.scmvehrebatecheckapply; package com.yxt.anrui.scm.api.scmvehrebatecheckapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyCompleteDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List; import java.util.List;
/** /**
@ -75,4 +83,38 @@ public interface ScmVehrebateCheckapplyFeign {
@GetMapping("/fetchDetailsBySid/{sid}") @GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody @ResponseBody
public ResultBean<ScmVehrebateCheckapplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid); public ResultBean<ScmVehrebateCheckapplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
/**************************************单车返利核对审批流程*******************************************/
@ApiOperation("提交单车返利核对申请")
@PostMapping("/submitVehRebateCheckApply")
public ResultBean submitVehRebateCheckApply(@RequestBody @Valid SubmitScmVehRebateCheckApplyDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody ScmVehRebateCheckApplyCompleteDto 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<List<GetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap GetNodeQuery query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<GetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap GetNodeQuery query);
} }

45
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeignFallback.java

@ -25,6 +25,11 @@
*********************************************************/ *********************************************************/
package com.yxt.anrui.scm.api.scmvehrebatecheckapply; package com.yxt.anrui.scm.api.scmvehrebatecheckapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyCompleteDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -69,4 +74,44 @@ public class ScmVehrebateCheckapplyFeignFallback implements ScmVehrebateCheckapp
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmvehrebatecheckapply/fetchDetailsBySid无法访问"); return rb.setMsg("接口anrui-scm/scmvehrebatecheckapply/fetchDetailsBySid无法访问");
} }
@Override
public ResultBean submitVehRebateCheckApply(SubmitScmVehRebateCheckApplyDto dto) {
return null;
}
@Override
public ResultBean complete(ScmVehRebateCheckApplyCompleteDto 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<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
return null;
}
@Override
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return null;
}
} }

25
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/GetNodeQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply.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<String, Object> formVariables;
}

25
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/GetNodeVo.java

@ -0,0 +1,25 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply.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<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

42
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/ScmVehRebateCheckApplyCompleteDto.java

@ -0,0 +1,42 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply.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 ScmVehRebateCheckApplyCompleteDto 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<String, Object> formVariables = new HashMap<>();
}

56
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/ScmVehRebateCheckApplyTaskQuery.java

@ -0,0 +1,56 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply.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 ScmVehRebateCheckApplyTaskQuery 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<String, Object> values = new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers = new ArrayList<>();
@ApiModelProperty("审批组")
private List<String> candidateGroups = new ArrayList<>();*/
}

22
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/SubmitScmVehRebateCheckApplyDto.java

@ -0,0 +1,22 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyDto;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.ScmVehRebateWithApplyDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/6/27 13:38
* @Description
*/
@Data
public class SubmitScmVehRebateCheckApplyDto extends ScmVehrebateCheckapplyDto {
private static final long serialVersionUID = 378585162071125756L;
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

3
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyMapper.java

@ -36,6 +36,7 @@ import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapply;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyVo; import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyVo;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Project: anrui-scm(单车返利核对) <br/> * Project: anrui-scm(单车返利核对) <br/>
@ -62,4 +63,6 @@ public interface ScmVehrebateCheckapplyMapper extends BaseMapper<ScmVehrebateChe
@Select("select * from scm_vehrebate_checkapply") @Select("select * from scm_vehrebate_checkapply")
List<ScmVehrebateCheckapplyVo> selectListVo(); List<ScmVehrebateCheckapplyVo> selectListVo();
int updateFlowFiled(Map<String, Object> beanToMap);
} }

15
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyMapper.xml

@ -28,4 +28,19 @@
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>
</select> </select>
<update id="updateFlowFiled">
UPDATE scm_vehrebate_checkapply
SET nodeState=#{nodeState}, nodeSid=#{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>
</mapper> </mapper>

115
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyRest.java

@ -25,7 +25,14 @@
*********************************************************/ *********************************************************/
package com.yxt.anrui.scm.biz.scmvehrebatecheckapply; package com.yxt.anrui.scm.biz.scmvehrebatecheckapply;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo; 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.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyCompleteDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import com.yxt.anrui.scm.biz.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailService; import com.yxt.anrui.scm.biz.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailService;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
@ -37,6 +44,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapply; import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapply;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyQuery; import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyVo; import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyVo;
@ -62,38 +70,81 @@ import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyFeign;
@RequestMapping("v1/scmvehrebatecheckapply") @RequestMapping("v1/scmvehrebatecheckapply")
public class ScmVehrebateCheckapplyRest implements ScmVehrebateCheckapplyFeign { public class ScmVehrebateCheckapplyRest implements ScmVehrebateCheckapplyFeign {
@Autowired @Autowired
private ScmVehrebateCheckapplyService scmVehrebateCheckapplyService; private ScmVehrebateCheckapplyService scmVehrebateCheckapplyService;
@Autowired @Autowired
private ScmVehrebateCheckapplydetailService scmVehrebateCheckapplydetailService; private ScmVehrebateCheckapplydetailService scmVehrebateCheckapplydetailService;
@Override @Override
@ApiOperation("根据条件分页查询数据的列表") @ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage") @PostMapping("/listPage")
public ResultBean<PagerVo<ScmVehrebateCheckapplyVo>> listPage(@RequestBody PagerQuery<ScmVehrebateCheckapplyQuery> pq){ public ResultBean<PagerVo<ScmVehrebateCheckapplyVo>> listPage(@RequestBody PagerQuery<ScmVehrebateCheckapplyQuery> pq) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
PagerVo<ScmVehrebateCheckapplyVo> pv = scmVehrebateCheckapplyService.listPageVo(pq); PagerVo<ScmVehrebateCheckapplyVo> pv = scmVehrebateCheckapplyService.listPageVo(pq);
return rb.success().setData(pv); return rb.success().setData(pv);
} }
@Override @Override
@ApiOperation("新增或修改") @ApiOperation("新增或修改")
@PostMapping("/save") @PostMapping("/save")
public ResultBean save(@RequestBody ScmVehrebateCheckapplyDto dto){ public ResultBean save(@RequestBody ScmVehrebateCheckapplyDto dto) {
return scmVehrebateCheckapplyService.saveOrUpdateDto(dto); return scmVehrebateCheckapplyService.saveOrUpdateDto(dto);
} }
@Override @Override
@ApiOperation("根据sid批量删除") @ApiOperation("根据sid批量删除")
@PostMapping("/delBySids") @PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){ public ResultBean delBySids(@RequestBody String[] sids) {
return scmVehrebateCheckapplyService.delAll(sids); return scmVehrebateCheckapplyService.delAll(sids);
} }
@Override @Override
@ApiOperation("根据SID获取一条记录") @ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}") @GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<ScmVehrebateCheckapplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){ public ResultBean<ScmVehrebateCheckapplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
return scmVehrebateCheckapplyService.fetchDetailsBySid(sid); return scmVehrebateCheckapplyService.fetchDetailsBySid(sid);
} }
@Override
public ResultBean submitVehRebateCheckApply(SubmitScmVehRebateCheckApplyDto dto) {
return scmVehrebateCheckapplyService.submitVehRebateCheckApply(dto);
}
@Override
public ResultBean complete(ScmVehRebateCheckApplyCompleteDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setModelId(ProcDefEnum.SCMVEHREBATECHECKAPPLY.getProDefId());
return scmVehrebateCheckapplyService.complete(bv);
}
@Override
public ResultBean revokeProcess(FlowTaskVo flowTaskVo) {
return scmVehrebateCheckapplyService.revokeProcess(flowTaskVo);
}
@Override
public ResultBean taskReject(FlowTaskVo flowTaskVo) {
return scmVehrebateCheckapplyService.taskReject(flowTaskVo);
}
@Override
public ResultBean breakProcess(FlowTaskVo flowTaskVo) {
return scmVehrebateCheckapplyService.breakProcess(flowTaskVo);
}
@Override
public ResultBean flowRecord(String procInsId) {
return scmVehrebateCheckapplyService.flowRecord(procInsId);
}
@Override
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
return scmVehrebateCheckapplyService.getNextNodesForSubmit(query);
}
@Override
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return scmVehrebateCheckapplyService.getPreviousNodesForReject(query);
}
} }

249
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java

@ -27,8 +27,22 @@ package com.yxt.anrui.scm.biz.scmvehrebatecheckapply;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
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.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetail; import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetail;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo; import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDto; import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDto;
@ -48,9 +62,8 @@ import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.*;
import java.util.Date; import java.util.stream.Collectors;
import java.util.List;
/** /**
* Project: anrui-scm(单车返利核对) <br/> * Project: anrui-scm(单车返利核对) <br/>
@ -70,6 +83,14 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
@Autowired @Autowired
ScmVehrebateCheckapplydetailService scmVehrebateCheckapplydetailService; ScmVehrebateCheckapplydetailService scmVehrebateCheckapplydetailService;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private SysUserFeign sysUserFeign;
private QueryWrapper<ScmVehrebateCheckapply> createQueryWrapper(ScmVehrebateCheckapplyQuery query) { private QueryWrapper<ScmVehrebateCheckapply> createQueryWrapper(ScmVehrebateCheckapplyQuery query) {
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
@ -137,7 +158,7 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
} }
} }
} }
return rb.success().setMsg("添加成功"); return rb.success().setMsg("添加成功").setData(sid);
} }
ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(dtoSid); ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(dtoSid);
if (scmVehrebateCheckapply == null) { if (scmVehrebateCheckapply == null) {
@ -165,13 +186,14 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
} }
} }
} }
return rb.success().setMsg("修改成功"); return rb.success().setMsg("修改成功").setData(dtoSid);
} }
public ResultBean<String> insertByDto(ScmVehrebateCheckapplyDto dto) { public ResultBean<String> insertByDto(ScmVehrebateCheckapplyDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
ScmVehrebateCheckapply entity = new ScmVehrebateCheckapply(); ScmVehrebateCheckapply entity = new ScmVehrebateCheckapply();
BeanUtil.copyProperties(dto, entity, "id", "sid"); BeanUtil.copyProperties(dto, entity, "id", "sid");
entity.setNodeState("待提交");
baseMapper.insert(entity); baseMapper.insert(entity);
return rb.success().setData(entity.getSid()); return rb.success().setData(entity.getSid());
} }
@ -243,4 +265,221 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
scmVehrebateCheckapplyDetailsVo.setScmLastVehrebateCheckapplydetailDetails(scmLastVehrebateCheckapplydetailDetailsVos); scmVehrebateCheckapplyDetailsVo.setScmLastVehrebateCheckapplydetailDetails(scmLastVehrebateCheckapplydetailDetailsVos);
return rb.success().setData(scmVehrebateCheckapplyDetailsVo); return rb.success().setData(scmVehrebateCheckapplyDetailsVo);
} }
public ResultBean submitVehRebateCheckApply(SubmitScmVehRebateCheckApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getCreateBySid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> orgByStaffSid = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!orgByStaffSid.getSuccess()) {
return rb.setMsg(orgByStaffSid.getMsg());
}
//用户的组织全路径
String orgSidPath = orgByStaffSid.getData().getOrgSidPath();
ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, scmVehrebateCheckapply);
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 = BeanUtil.beanToMap(dto);
//若有网关,则赋值网关中判断的字段。
variables.put("businessSid", businessSid);
//=====================添加app所需参数
Map<String,Object> 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.SCMVEHREBATECHECKAPPLY.getProDefId());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> 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(scmVehrebateCheckapply.getTaskId());
bv.setTaskDefKey(scmVehrebateCheckapply.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(SubmitScmVehRebateCheckApplyDto dto, ScmVehrebateCheckapply scmVehRebateCheckApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (scmVehRebateCheckApply != null) {
String businessTaskId = scmVehRebateCheckApply.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<String, Object> beanToMap) {
return baseMapper.updateFlowFiled(beanToMap);
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(bv.getBusinessSid());
if (bv.getTaskId().equals(scmVehrebateCheckapply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> 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查询排内购申请
ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(query.getBusinessSid());
String businessTaskId = scmVehrebateCheckapply.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(scmVehrebateCheckapply));
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 taskReject(FlowTaskVo query) {
ResultBean rb = ResultBean.fireFail();
ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(query.getBusinessSid());
if (scmVehrebateCheckapply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = scmVehrebateCheckapply.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<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> 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");
}
ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(query.getBusinessSid());
String businessTaskId = scmVehrebateCheckapply.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<UpdateFlowFieldVo> 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<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SCMVEHREBATECHECKAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
// List<GetNodeVo> voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SCMVEHREBATECHECKAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m),GetNodeVo.class)).collect(Collectors.toList());
// List<GetNodeVo> voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
} }
Loading…
Cancel
Save