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 7958b99bee..7b1aaa46b1 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 @@ -314,4 +314,9 @@ public interface BusSalesOrderFeign { @GetMapping("/selectBusinessSidByQKKP") @ResponseBody ResultBean> selectBusinessSidByQKKP(@RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath); + + @ApiOperation("销售订单流程预演测试") + @GetMapping("/yuyanTestBean") + @ResponseBody + ResultBean yuyanTestBean(@SpringQueryMap BusSaleOrderNodeQuery query); } \ No newline at end of file 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 b0e6cdf81c..b492783e65 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 @@ -290,4 +290,9 @@ public class BusSalesOrderFeignFallback implements BusSalesOrderFeign { public ResultBean> selectBusinessSidByQKKP(String userSid, String orgPath) { return null; } + + @Override + public ResultBean yuyanTestBean(BusSaleOrderNodeQuery query) { + return null; + } } \ No newline at end of file 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 ac079b0fda..db07e46645 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 @@ -371,4 +371,9 @@ public class BusSalesOrderRest implements BusSalesOrderFeign { public ResultBean> selectBusinessSidByQKKP(String userSid, String orgPath) { return busSalesOrderService.selectBusinessSidByQKKP(userSid,orgPath); } + + @Override + public ResultBean yuyanTestBean(BusSaleOrderNodeQuery query) { + return busSalesOrderService.yuyanTestBean(query); + } } 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 dc4c7b0d25..9592987e2d 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 @@ -134,6 +134,7 @@ import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.FlowableQuery; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; @@ -6556,4 +6557,23 @@ public class BusSalesOrderService extends MybatisBaseService selectByContractNoToVin(String contractId) { return baseMapper.selectByContractNoToVin(contractId); } + + public ResultBean yuyanTestBean(BusSaleOrderNodeQuery query) { + ResultBean rb = ResultBean.fireFail(); + //根据业务sid查询订单信息 + BusSalesOrder busSalesOrder = fetchBySid(query.getBusinessSid()); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = getOrderMap(busSalesOrder); + String modelId = busSalesOrder.getProcDefId(); + if(StringUtils.isBlank(modelId)){ + modelId = ProcDefEnum.SALESORDER.getProDefId(); + } + FlowableQuery flowableQuery = new FlowableQuery(); + flowableQuery.setModelId(modelId); + flowableQuery.setMap(variables); + ResultBean>> yuyanTest = flowTaskFeign.yuyanTest(flowableQuery); + List> S = yuyanTest.getData(); + + return rb.success().setData(yuyanTest.getData()); + } } \ No newline at end of file diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeign.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeign.java index 376f0bdc55..c36947c457 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeign.java +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeign.java @@ -185,4 +185,8 @@ public interface FlowTaskFeign { @ApiOperation(value = "根据流程实例的id获取最新待办环节") @PostMapping(value = "/获取上一个环节") ResultBean getPreviousNodesForReject(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "流程预演测试") + @PostMapping(value = "/yuyanTest") + ResultBean>> yuyanTest(@RequestBody FlowableQuery flowableQuery); } diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeignFallBack.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeignFallBack.java index 8bb749c80a..bb4d972d01 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeignFallBack.java +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowTaskFeignFallBack.java @@ -183,4 +183,9 @@ public class FlowTaskFeignFallBack implements FlowTaskFeign { return null; } + @Override + public ResultBean>> yuyanTest(FlowableQuery flowableQuery) { + return null; + } + } diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowableQuery.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowableQuery.java new file mode 100644 index 0000000000..e8984a0899 --- /dev/null +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/FlowableQuery.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.flowable.api.flowtask; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +/** + * @description: 预演流程参数 + * @author: dimengzhe + * @date: 2023/5/30 + **/ +@Data +public class FlowableQuery { + + private String modelId; + + private Map map = new HashMap<>(); +} diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskController.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskController.java index 1314912fb8..1f7bb67d54 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskController.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskController.java @@ -29,7 +29,6 @@ import org.flowable.engine.repository.ProcessDefinition; import org.flowable.task.api.Task; import org.flowable.task.api.history.HistoricTaskInstance; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -330,4 +329,9 @@ public class FlowTaskController implements FlowTaskFeign { public ResultBean getPreviousNodesForReject(BusinessVariables bv) { return flowTaskService.getPreviousNodesForReject(bv); } + + @Override + public ResultBean>> yuyanTest(FlowableQuery flowableQuery) { + return flowTaskService.yuyanTest(flowableQuery); + } } diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java index 625a6bf017..a299867ca1 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java @@ -2074,4 +2074,36 @@ public class FlowTaskService extends MybatisBaseService> rb = new ResultBean>(); return rb.success().setData(page); } + + public ResultBean>> yuyanTest(FlowableQuery flowableQuery) { + ResultBean>> rb = ResultBean.fireFail(); + List> list = new ArrayList<>(); + String modelId = flowableQuery.getModelId(); + Map map = flowableQuery.getMap(); + List flowElements = processService.calApprovePath("", modelId,map); + List collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList()); + for (int i = 0; i < collect.size(); i++) { + Map itemMap = new HashMap<>(); + FlowElement item = collect.get(i); + log.info("flowElement:{}", item); + log.info("nodeName:{}", item.getName()); + itemMap.put("nodeName",item.getName()); + log.info("nodeId:{}", item.getId()); + itemMap.put("nodeId",item.getId()); + String s = JSON.toJSONString(item); + JSONObject jsonObject = JSONObject.parseObject(s); + log.info("item:{}", jsonObject); + Object candidateGroups = jsonObject.get("candidateGroups"); + JSONArray candidateGroups_arr = new JSONArray(); + if (candidateGroups != null) { + candidateGroups_arr = JSONArray.parseArray(candidateGroups.toString()); + } + if (candidateGroups_arr.size() > 0) { + log.info("candidateGroups_sid:{}", candidateGroups_arr.get(0)); + } + log.info("candidateGroups:{}", candidateGroups_arr); + list.add(itemMap); + } + return rb.success().setData(list); + } } \ No newline at end of file