From cfd21d1e31b673e0091f377764cdc7a0b7b1bde5 Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Tue, 9 Aug 2022 15:00:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=92=8Cpc=E6=B5=81=E7=A8=8B=E6=8F=90=E4=BA=A4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=81=E5=8A=9E=E7=90=86=E3=80=81=E9=A9=B3=E5=9B=9E?= =?UTF-8?q?=E3=80=81=E7=BB=88=E6=AD=A2=E3=80=81=E6=92=A4=E5=9B=9E=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=B7=BB=E5=8A=A0=E3=80=81=E8=8E=B7=E5=8F=96=E4=B8=8A?= =?UTF-8?q?=E4=B8=80=E7=8E=AF=E8=8A=82=E3=80=81=E8=8E=B7=E5=8F=96=E4=B8=8B?= =?UTF-8?q?=E4=B8=80=E7=8E=AF=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/bussalesorder/BusSalesOrderFeign.java | 15 ++- .../BusSalesOrderFeignFallback.java | 17 ++- .../flowable/BusSaleOrderNodeQuery.java | 23 ++++ .../flowable/BusSaleOrderNodeVo.java | 26 +++++ .../{ => flowable}/BusSalesOrderFlowDto.java | 2 +- .../BusSalesOrderFlowQuery.java | 2 +- .../biz/bussalesorder/BusSalesOrderRest.java | 19 +++- .../bussalesorder/BusSalesOrderService.java | 105 +++++++++++++----- .../saleOrders/AppBusSalesOrderFeign.java | 30 +++++ .../AppBusSalesOrderFeignFallback.java | 28 +++++ .../saleOrders/flowable/SaleOrderDto.java | 37 ++++++ .../saleOrders/flowable/SaleOrderQuery.java | 25 +++++ .../flowable/SaleOrderTaskQuery.java | 47 ++++++++ .../saleOrders/AppBusSalesOrderRest.java | 28 +++++ .../saleOrders/AppBusSalesOrderService.java | 100 ++++++++++++++++- 15 files changed, 466 insertions(+), 38 deletions(-) create mode 100644 anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeQuery.java create mode 100644 anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeVo.java rename anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/{ => flowable}/BusSalesOrderFlowDto.java (94%) rename anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/{ => flowable}/BusSalesOrderFlowQuery.java (95%) create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderDto.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderQuery.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderTaskQuery.java diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java index 65af9ccdf4..5e53558e23 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java @@ -29,8 +29,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitMo import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitModelInfoVo; import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppInitModelQuery; import com.yxt.anrui.buscenter.api.bussalesorder.app.order.*; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitAllOrderDto; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitSalesOrderDto; +import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -41,6 +40,7 @@ import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.List; /** * Project: anrui-buscenter(业务管理)
@@ -100,7 +100,7 @@ public interface BusSalesOrderFeign { @ApiOperation(value = "驳回任务") @PutMapping("/reject") @ResponseBody - ResultBean reject(@RequestBody BusSalesOrderFlowDto dto); + ResultBean taskReject(@RequestBody BusSalesOrderFlowDto dto); @ApiOperation(value = "终止任务") @PutMapping("/breakProcess") @@ -112,6 +112,15 @@ public interface BusSalesOrderFeign { @ResponseBody ResultBean revokeProcess(@RequestBody BusSalesOrderFlowDto dto); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap BusSaleOrderNodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap BusSaleOrderNodeQuery query); + /*-------------------------------------App销售订单接口------------------------------------------------*/ diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java index 13c4ff62ee..a91f881bc0 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeignFallback.java @@ -29,13 +29,14 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitMo import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitModelInfoVo; import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppInitModelQuery; import com.yxt.anrui.buscenter.api.bussalesorder.app.order.*; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitAllOrderDto; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitSalesOrderDto; +import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Component; +import java.util.List; + /** * Project: anrui-buscenter(业务管理)
* File: BusSalesOrderFeignFallback.java
@@ -90,7 +91,7 @@ public class BusSalesOrderFeignFallback implements BusSalesOrderFeign { } @Override - public ResultBean reject(BusSalesOrderFlowDto dto) { + public ResultBean taskReject(BusSalesOrderFlowDto dto) { return null; } @@ -104,6 +105,16 @@ public class BusSalesOrderFeignFallback implements BusSalesOrderFeign { return null; } + @Override + public ResultBean> getPreviousNodesForReject(BusSaleOrderNodeQuery query) { + return null; + } + + @Override + public ResultBean> getNextNodesForSubmit(BusSaleOrderNodeQuery query) { + return null; + } + @Override public ResultBean saleOrderState(String saleOrderSid) { return null; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeQuery.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeQuery.java new file mode 100644 index 0000000000..a8770f1a2d --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeQuery.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.buscenter.api.bussalesorder.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/8/9 13:38 + * @Description + */ +@Data +public class BusSaleOrderNodeQuery implements Query { + private static final long serialVersionUID = -2159093302374297017L; + + @ApiModelProperty(value = "环节定义id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeVo.java new file mode 100644 index 0000000000..14ddea7edc --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeVo.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.buscenter.api.bussalesorder.flowable; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/8/9 13:40 + * @Description + */ +@Data +public class BusSaleOrderNodeVo implements Vo { + private static final long serialVersionUID = -8875596875280744529L; + + @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-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFlowDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSalesOrderFlowDto.java similarity index 94% rename from anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFlowDto.java rename to anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSalesOrderFlowDto.java index 1dd5744ae0..03634d1b4e 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFlowDto.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSalesOrderFlowDto.java @@ -1,4 +1,4 @@ -package com.yxt.anrui.buscenter.api.bussalesorder; +package com.yxt.anrui.buscenter.api.bussalesorder.flowable; import com.yxt.common.core.dto.Dto; import io.swagger.annotations.ApiModelProperty; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFlowQuery.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSalesOrderFlowQuery.java similarity index 95% rename from anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFlowQuery.java rename to anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSalesOrderFlowQuery.java index 67eb121fed..dcf34db5b5 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFlowQuery.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSalesOrderFlowQuery.java @@ -1,4 +1,4 @@ -package com.yxt.anrui.buscenter.api.bussalesorder; +package com.yxt.anrui.buscenter.api.bussalesorder.flowable; import com.yxt.common.core.query.Query; import io.swagger.annotations.ApiModelProperty; diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java index f1c14851e3..995da96fca 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java @@ -31,8 +31,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitMo import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitModelInfoVo; import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppInitModelQuery; import com.yxt.anrui.buscenter.api.bussalesorder.app.order.*; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitAllOrderDto; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitSalesOrderDto; +import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.common.core.query.PagerQuery; @@ -47,6 +46,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.List; + /** * Project: anrui-buscenter(业务管理)
* File: BusSalesOrderFeignFallback.java
@@ -137,8 +138,8 @@ public class BusSalesOrderRest implements BusSalesOrderFeign { } @Override - public ResultBean reject(BusSalesOrderFlowDto dto) { - return busSalesOrderService.reject(dto); + public ResultBean taskReject(BusSalesOrderFlowDto dto) { + return busSalesOrderService.taskReject(dto); } @Override @@ -151,6 +152,16 @@ public class BusSalesOrderRest implements BusSalesOrderFeign { return busSalesOrderService.revokeProcess(dto); } + @Override + public ResultBean> getPreviousNodesForReject(BusSaleOrderNodeQuery query) { + return busSalesOrderService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean> getNextNodesForSubmit(BusSaleOrderNodeQuery query) { + return busSalesOrderService.getNextNodesForSubmit(query); + } + @Override @ApiOperation("初始化销售订单状态") diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java index f800db4078..4c9b78f75c 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java @@ -27,6 +27,7 @@ package com.yxt.anrui.buscenter.biz.bussalesorder; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo; @@ -50,8 +51,7 @@ import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDto; import com.yxt.anrui.buscenter.api.bussalesorder.*; import com.yxt.anrui.buscenter.api.bussalesorder.app.model.*; import com.yxt.anrui.buscenter.api.bussalesorder.app.order.*; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitAllOrderDto; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitSalesOrderDto; +import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*; import com.yxt.anrui.buscenter.api.bussalesorderdeposit.BusSalesOrderDeposit; import com.yxt.anrui.buscenter.api.bussalesorderdeposit.BusSalesOrderDepositDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorderdeposit.BusSalesOrderDepositDto; @@ -117,6 +117,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * Project: anrui-buscenter(业务管理)
@@ -799,16 +800,16 @@ public class BusSalesOrderService extends MybatisBaseService resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid); if (resultBean.getSuccess()) { orgSid = resultBean.getData(); } return orgSid; - } + }*/ - private void modifyFlowState(String businessSid, String proDefId, String nodeState, + /* private void modifyFlowState(String businessSid, String proDefId, String nodeState, String procInsId, String taskDefKey, String taskId) { baseMapper.modifyFlowState(businessSid, @@ -816,7 +817,7 @@ public class BusSalesOrderService extends MybatisBaseService> resultBean = flowTaskFeign.taskReject(flowTaskVo); @@ -906,8 +907,7 @@ public class BusSalesOrderService extends MybatisBaseService variables = new HashMap<>(); - + Map variables = getOrderMap(busSalesOrder); flowTaskVo.setValues(variables); ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); if (!resultBean.getSuccess()) { @@ -2228,19 +2228,7 @@ public class BusSalesOrderService extends MybatisBaseService variables = new HashMap<>(); - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - variables.put("app", appMap); - //是否是全款 - variables.put("isLoan", "01".equals(busSalesOrder.getPayTypeKey())); - //查询是否超权限 - BusSalesOrderPowerVo busSalesOrderPowerVo = isHavePower(businessSid); - //销售部经理是否超权限 - variables.put("isPrice", busSalesOrderPowerVo.getIsHavePower()); - //总经理是否超权限 - variables.put("isPrice1", busSalesOrderPowerVo.getIsPower()); - variables.put("isLoan1", "3".equals(busSalesOrder.getType())); + Map variables = getOrderMap(busSalesOrder); //用户的部门全路径sid bv.setOrgSidPath(orgSidPath); //业务sid @@ -2249,7 +2237,7 @@ public class BusSalesOrderService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); if (!voResultBean.getSuccess()) { @@ -2321,8 +2309,7 @@ public class BusSalesOrderService extends MybatisBaseService variables = new HashMap<>(); - + Map variables = getOrderMap(busSalesOrder); bv.setFormVariables(variables); if (bv.getTaskId().equals(busSalesOrder.getTaskId())) { ResultBean resultBean = flowableFeign.handleProsess(bv); @@ -2339,4 +2326,72 @@ public class BusSalesOrderService extends MybatisBaseService> getPreviousNodesForReject(BusSaleOrderNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //根据业务sid查询订单信息 + BusSalesOrder busSalesOrder = fetchBySid(query.getBusinessSid()); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = getOrderMap(busSalesOrder); + bv.setFormVariables(variables); + bv.setModelId(ProcDefEnum.SALESORDER.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), BusSaleOrderNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + /** + * 获取下一环节信息 + * + * @param query + * @return + */ + public ResultBean> getNextNodesForSubmit(BusSaleOrderNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //根据业务sid查询订单信息 + BusSalesOrder busSalesOrder = fetchBySid(query.getBusinessSid()); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = getOrderMap(busSalesOrder); + bv.setFormVariables(variables); + bv.setModelId(ProcDefEnum.SALESORDER.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), BusSaleOrderNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + /** + * 根据销售订单信息组装流程中的网关信息数据 + * + * @param busSalesOrder 销售订单信息 + * @return + */ + public Map getOrderMap(BusSalesOrder busSalesOrder) { + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", busSalesOrder.getSid()); + variables.put("app", appMap); + //是否是全款 + variables.put("isLoan", "01".equals(busSalesOrder.getPayTypeKey())); + //查询是否超权限 + BusSalesOrderPowerVo busSalesOrderPowerVo = isHavePower(busSalesOrder.getSid()); + //销售部经理是否超权限 + variables.put("isPrice", busSalesOrderPowerVo.getIsHavePower()); + //总经理是否超权限 + variables.put("isPrice1", busSalesOrderPowerVo.getIsPower()); + //是否排产 + variables.put("isLoan1", "3".equals(busSalesOrder.getType())); + return variables; + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java index 7d9695659c..dc9fb69249 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeign.java @@ -32,6 +32,9 @@ import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfo import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositListVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderQuery; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderTaskQuery; import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SubmitOrderDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoVo; @@ -221,10 +224,37 @@ public interface AppBusSalesOrderFeign { @ResponseBody ResultBean getSaleOrderDetail(@PathVariable(value = "saleOrderSid") String sid); + /*-----------------------------------------流程------------------------------------------*/ + @ApiOperation("提交销售订单") @PostMapping("/submitSaleOrderInfo") @ResponseBody ResultBean submitSaleOrderInfo(@RequestBody SubmitOrderDto dto); + @ApiOperation("办理") + @PutMapping("/agreeSaleOrderInfo") + @ResponseBody + ResultBean agreeSaleOrderInfo(@RequestBody SaleOrderDto dto); + + @ApiOperation("驳回") + @PutMapping("/rejectSaleOrderInfo") + @ResponseBody + ResultBean rejectSaleOrderInfo(@RequestBody SaleOrderTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recallSaleOrderInfo") + @ResponseBody + ResultBean recallSaleOrderInfo(@RequestBody SaleOrderTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stopSaleOrderInfo") + @ResponseBody + ResultBean stopSaleOrderInfo(@RequestBody SaleOrderTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@SpringQueryMap SaleOrderQuery query); + } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java index 1d485890a8..6dff6fc74c 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/AppBusSalesOrderFeignFallback.java @@ -31,6 +31,9 @@ import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfo import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositListVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderQuery; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderTaskQuery; import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SubmitOrderDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoVo; @@ -195,4 +198,29 @@ public class AppBusSalesOrderFeignFallback implements AppBusSalesOrderFeign { public ResultBean submitSaleOrderInfo(SubmitOrderDto dto) { return null; } + + @Override + public ResultBean agreeSaleOrderInfo(SaleOrderDto dto) { + return null; + } + + @Override + public ResultBean rejectSaleOrderInfo(SaleOrderTaskQuery query) { + return null; + } + + @Override + public ResultBean recallSaleOrderInfo(SaleOrderTaskQuery query) { + return null; + } + + @Override + public ResultBean stopSaleOrderInfo(SaleOrderTaskQuery query) { + return null; + } + + @Override + public ResultBean getFlowOperateTitle(SaleOrderQuery query) { + return null; + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderDto.java new file mode 100644 index 0000000000..5066fe5adb --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderDto.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/8/9 14:09 + * @Description + */ +@Data +public class SaleOrderDto implements Dto { + private static final long serialVersionUID = 3626473483180150495L; + + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:procInsId") + @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderQuery.java new file mode 100644 index 0000000000..db06b6b239 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Author dimengzhe + * @Date 2022/8/9 14:15 + * @Description + */ +@Data +public class SaleOrderQuery implements Query { + private static final long serialVersionUID = 5514095179438249641L; + + @ApiModelProperty(value = "节点key") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + @NotNull(message = "参数错误:next") + private Integer next; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderTaskQuery.java new file mode 100644 index 0000000000..dd4821a3ac --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/SaleOrderTaskQuery.java @@ -0,0 +1,47 @@ +package com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/8/9 14:11 + * @Description + */ +@Data +public class SaleOrderTaskQuery implements Query { + private static final long serialVersionUID = -7082170710942810289L; + + /** + * 终止、驳回、撤回 + */ + @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") + @JsonProperty("procInsId") + private String instanceId; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java index b2b7e96e61..8f80f1f1f0 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderRest.java @@ -32,6 +32,9 @@ import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfo import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositListVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderQuery; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderTaskQuery; import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SubmitOrderDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoVo; @@ -283,4 +286,29 @@ public class AppBusSalesOrderRest implements AppBusSalesOrderFeign { return appBusSalesOrderService.submitSaleOrderInfo(dto); } + @Override + public ResultBean agreeSaleOrderInfo(SaleOrderDto dto) { + return appBusSalesOrderService.agreeSaleOrderInfo(dto); + } + + @Override + public ResultBean rejectSaleOrderInfo(SaleOrderTaskQuery query) { + return appBusSalesOrderService.rejectSaleOrderInfo(query); + } + + @Override + public ResultBean recallSaleOrderInfo(SaleOrderTaskQuery query) { + return appBusSalesOrderService.recallSaleOrderInfo(query); + } + + @Override + public ResultBean stopSaleOrderInfo(SaleOrderTaskQuery query) { + return appBusSalesOrderService.stopSaleOrderInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(SaleOrderQuery query) { + return appBusSalesOrderService.getFlowOperateTitle(query); + } + } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java index f212df8f23..dedbff21d5 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/saleOrders/AppBusSalesOrderService.java @@ -34,7 +34,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitMo import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppBusSaleOrderInitModelInfoVo; import com.yxt.anrui.buscenter.api.bussalesorder.app.model.AppInitModelQuery; import com.yxt.anrui.buscenter.api.bussalesorder.app.order.*; -import com.yxt.anrui.buscenter.api.bussalesorder.flowable.SubmitSalesOrderDto; +import com.yxt.anrui.buscenter.api.bussalesorder.flowable.*; import com.yxt.anrui.buscenter.api.bussalesorderdeposit.BusSalesOrderDepositFeign; import com.yxt.anrui.buscenter.api.bussalesorderdeposit.app.AppBusSalesOrderDepositDto; import com.yxt.anrui.buscenter.api.bussalesorderdeposit.app.AppBusSalesOrderDepositVo; @@ -57,6 +57,10 @@ import com.yxt.anrui.buscenter.api.bussalesorderprice.app.AppBusSalesOrderPriceV import com.yxt.anrui.crm.api.crmvehicledemand.AppCrmOrderVehicleDemandQuery; import com.yxt.anrui.crm.api.crmvehicledemand.AppOrderCrmVehicleDemandVo; import com.yxt.anrui.crm.api.crmvehicledemand.CrmVehicledemandFeign; +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.terminal.api.autoservice.saleOrders.depositinfo.DepositInfoDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfoQuery; import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositInfoVo; @@ -64,6 +68,9 @@ import com.yxt.anrui.terminal.api.autoservice.saleOrders.depositinfo.DepositList import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountListVo; import com.yxt.anrui.terminal.api.autoservice.saleOrders.discount.DiscountVo; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderDto; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderQuery; +import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SaleOrderTaskQuery; import com.yxt.anrui.terminal.api.autoservice.saleOrders.flowable.SubmitOrderDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoDto; import com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance.InsuranceInfoVo; @@ -82,6 +89,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.Collections; import java.util.List; @@ -119,6 +127,10 @@ public class AppBusSalesOrderService { private BusSalesOrderDepositFeign busSalesOrderDepositFeign; @Autowired private BusMainDepositFeign busMainDepositFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysUserFeign sysUserFeign; /************************************* 销售订单接口 *********************************************/ @@ -436,4 +448,90 @@ public class AppBusSalesOrderService { } return rb.success(); } + + public ResultBean agreeSaleOrderInfo(SaleOrderDto dto) { + ResultBean rb = ResultBean.fireFail(); + //根据用户sid获取staffSid + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + BusSalesOrderFlowQuery busSalesOrderFlowQuery = new BusSalesOrderFlowQuery(); + BeanUtil.copyProperties(dto, busSalesOrderFlowQuery); + busSalesOrderFlowQuery.setOrgSidPath(orgSidPath); + ResultBean resultBean = busSalesOrderFeign.complete(busSalesOrderFlowQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectSaleOrderInfo(SaleOrderTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BusSalesOrderFlowDto busSalesOrderFlowDto = new BusSalesOrderFlowDto(); + BeanUtil.copyProperties(query, busSalesOrderFlowDto); + ResultBean resultBean = busSalesOrderFeign.taskReject(busSalesOrderFlowDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallSaleOrderInfo(SaleOrderTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BusSalesOrderFlowDto busSalesOrderFlowDto = new BusSalesOrderFlowDto(); + BeanUtil.copyProperties(query, busSalesOrderFlowDto); + ResultBean resultBean = busSalesOrderFeign.revokeProcess(busSalesOrderFlowDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopSaleOrderInfo(SaleOrderTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BusSalesOrderFlowDto busSalesOrderFlowDto = new BusSalesOrderFlowDto(); + BeanUtil.copyProperties(query, busSalesOrderFlowDto); + ResultBean resultBean = busSalesOrderFeign.breakProcess(busSalesOrderFlowDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(SaleOrderQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + BusSaleOrderNodeQuery getNodeQuery = new BusSaleOrderNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = busSalesOrderFeign.getPreviousNodesForReject(getNodeQuery); + if (getPreviousNodesForReject.getSuccess()) { + getPreviousNodesForReject.getData().removeAll(Collections.singleton(null)); + data = getPreviousNodesForReject.getData().get(0).getName(); + } else { + return rb.setMsg(getPreviousNodesForReject.getMsg()); + } + } else if (next == 1) { + ResultBean> getNextNodesForSubmit = busSalesOrderFeign.getNextNodesForSubmit(getNodeQuery); + if (getNextNodesForSubmit.getSuccess()) { + getNextNodesForSubmit.getData().removeAll(Collections.singleton(null)); + data = getNextNodesForSubmit.getData().get(0).getName(); + } else { + return rb.setMsg(getNextNodesForSubmit.getMsg()); + } + } else { + return rb.setMsg("参数错误:next"); + } + return rb.success().setData(data); + } } \ No newline at end of file