Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug Report]: 使用BPMNElements 和 BPMNAdapter 导入 bpmn 数据,渲染的 Gateway 错位 #1954

Open
changexbc opened this issue Nov 7, 2024 · 6 comments
Assignees
Labels
bug Something isn't working

Comments

@changexbc
Copy link

changexbc commented Nov 7, 2024

使用BPMNElements 和 BPMNAdapter 导入 bpmn 数据,渲染的 Gateway 错位,代码如下

<template>
  <div>
    <a-button @click="render" >渲染 logicFlow</a-button>
    <div class="container" ref="container"></div>
  </div>
</template>

<script>
import { mixinDevice } from '@/utils/mixin'
import LogicFlow from "@logicflow/core"
import "@logicflow/core/lib/style/index.css"
import demoXml from './demoXml.js'
import {
  BPMNElements,
  BPMNAdapter } from "@logicflow/extension"
import "@logicflow/extension/lib/style/index.css"

// import moment from 'moment'
// import { axios } from '@/utils/request'

// const BASE = process.env.VUE_APP_API_BASE_ENTERTAINMENT
// const getList = (params) => axios.post(`${BASE}/corporate/payment/costList`, params)

export default {
  name: 'Flow',
  mixins: [mixinDevice],
  components: {

  },
  props: {
    value: {
      type: [String, Number],
      default: 0
    },
    show: {
      type: Boolean,
      default: false
    }
  },
  data () {
    return {
      lf: null
    }
  },
  computed: {

  },
  filters: {

  },
  created () {
  },
  mounted () {
    this.lf = new LogicFlow({
      height: 1000,
      container: this.$refs.container,
      stopScrollGraph: true,
      stopZoomGraph: true,
      metaKeyMultipleSelected: true,
      grid: {
        size: 10,
        type: "dot",
        config: {
          color: "#e9e9e9"
        }
      },
      keyboard: {
        enabled: true
      },
      snapline: true,
      plugins: [
        BPMNElements,
        BPMNAdapter
      ]
    })
    this.lf.on("node:click", (args) => {
      console.log("node:click", args.position)
    })
    this.lf.on("element:click", (args) => {
      console.log("element:click", args.e.target)
    })
  },
  methods: {
    render () {
      const xml = demoXml.data.modelXml
      this.$nextTick(() => {
        this.lf.render(xml)
        console.log(this.lf.getGraphRawData())
        console.log(123456)
        console.log(this.lf.graphModel)
        this.lf.setProperties("Flow_1jzw3lh", {
          style: {
            stroke: 'red'
          }
          // isPass: 'true'
        })
      })
    },
    showAdd () {
      this.showState.add = true
      this.getList()
    }
  },
  watch: {

  }
}
</script>
<style lang="less" scoped>
  .container {
    width: 1000px;
    height: 500px;
  }
</style>

demoXml.js 数据

export default {
  "code": "100",
  "msg": "OK",
  "data": {
      "highLightedFlows": [
          "a0fa3b56c41bb44c5aaa9d886571f4954"
      ],
      "activeActivityIds": [
          "Activity_n0sl3dp"
      ],
      "hisActiveActivityIds": [
          "Event_damihl6"
      ],
      "nullActiveActivityIds": null,
      // eslint-disable-next-line no-template-curly-in-string
      "modelXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<bpmn:definitions xmlns:bpmn=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" xmlns:dc=\"http://www.omg.org/spec/DD/20100524/DC\" xmlns:camunda=\"http://camunda.org/schema/1.0/bpmn\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:di=\"http://www.omg.org/spec/DD/20100524/DI\" xmlns:modeler=\"http://camunda.org/schema/modeler/1.0\" id=\"Definitions_06wr6gm\" targetNamespace=\"http://bpmn.io/schema/bpmn\" exporter=\"Camunda Modeler\" exporterVersion=\"5.27.0\" modeler:executionPlatform=\"Camunda Platform\" modeler:executionPlatformVersion=\"7.21.0\">\n  <bpmn:process id=\"EntertainmentExpense\" name=\"交际费流程\" isExecutable=\"true\" camunda:historyTimeToLive=\"3650\">\n    <bpmn:startEvent id=\"StartEvent_1\" name=\"开始\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.CalculateListener\" event=\"start\">\n          <camunda:field name=\"data_in\">\n            <camunda:expression>${CreateUserId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>EmpHighestOrgId</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_cal_kind\">\n            <camunda:string>Cal_EmpHighestDept</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out_is_coll\">\n            <camunda:expression>0</camunda:expression>\n          </camunda:field>\n        </camunda:executionListener>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.ProcessStartListener\" event=\"start\" />\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.CalculateListener\" event=\"start\">\n          <camunda:field name=\"data_in\">\n            <camunda:expression>${DeptOwnerId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>DeptOwnerIds</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_cal_kind\">\n            <camunda:string>ChangeToColl</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out_is_coll\">\n            <camunda:string>1</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:outgoing>Flow_0squut9</bpmn:outgoing>\n    </bpmn:startEvent>\n    <bpmn:sequenceFlow id=\"Flow_0squut9\" sourceRef=\"StartEvent_1\" targetRef=\"Activity_1pzga1t\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.EmployeeMangerListener\" event=\"take\">\n          <camunda:field name=\"data_emp\">\n            <camunda:expression>${CreateUserId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl1</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_level\">\n            <camunda:string>1</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n    </bpmn:sequenceFlow>\n    <bpmn:exclusiveGateway id=\"Gateway_0o5atgg\" name=\"发起人部门判断\">\n      <bpmn:incoming>Flow_14jw5gz</bpmn:incoming>\n      <bpmn:outgoing>Flow_0ln2i88</bpmn:outgoing>\n      <bpmn:outgoing>Flow_07sndfp</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:sequenceFlow id=\"Flow_14jw5gz\" sourceRef=\"Activity_1ltgb9b\" targetRef=\"Gateway_0o5atgg\">\n      <bpmn:extensionElements />\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_0ln2i88\" name=\"yes\" sourceRef=\"Gateway_0o5atgg\" targetRef=\"Activity_0he7ije\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.OrganizationMangerListener\" event=\"take\">\n          <camunda:field name=\"data_org\">\n            <camunda:expression>${EmpHighestOrgId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl3</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${pdata3.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:exclusiveGateway id=\"Gateway_022i3q8\" name=\"公司总裁审批\">\n      <bpmn:incoming>Flow_15mi3c7</bpmn:incoming>\n      <bpmn:incoming>Flow_07sndfp</bpmn:incoming>\n      <bpmn:outgoing>Flow_1jzw3lh</bpmn:outgoing>\n      <bpmn:outgoing>Flow_1tvbw1v</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:sequenceFlow id=\"Flow_1jzw3lh\" name=\"yes\" sourceRef=\"Gateway_022i3q8\" targetRef=\"Activity_0o0fh8w\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.ConfigurationMulListener\" event=\"take\">\n          <camunda:field name=\"data_conf\">\n            <camunda:string>公司总裁</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl4</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${(Amount&gt;150000)&amp;&amp;(pdata4.contains(EmpHighestOrgId))}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:userTask id=\"Activity_1pzga1t\" name=\"一级领导审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_0squut9</bpmn:incoming>\n      <bpmn:outgoing>Flow_0f933ug</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl1\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_1ltgb9b\" name=\"二级领导审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_0f933ug</bpmn:incoming>\n      <bpmn:outgoing>Flow_14jw5gz</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl2\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:sequenceFlow id=\"Flow_1tvbw1v\" name=\"no&#10;\" sourceRef=\"Gateway_022i3q8\" targetRef=\"Activity_1th6wtt\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.OrganizationHeaderListener\" event=\"take\">\n          <camunda:field name=\"data_org\">\n            <camunda:expression>${DeptOwnerId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl5</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!((Amount&gt;150000)&amp;&amp;(pdata4.contains(EmpHighestOrgId)))}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_04kxf0z\" sourceRef=\"Activity_0o0fh8w\" targetRef=\"Activity_1th6wtt\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.OrganizationHeaderListener\" event=\"take\">\n          <camunda:field name=\"data_org\">\n            <camunda:expression>${DeptOwnerId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl5</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n    </bpmn:sequenceFlow>\n    <bpmn:exclusiveGateway id=\"Gateway_09zrh49\" name=\"总裁审批\">\n      <bpmn:incoming>Flow_1xttmhp</bpmn:incoming>\n      <bpmn:outgoing>Flow_03jpsrl</bpmn:outgoing>\n      <bpmn:outgoing>Flow_05on1mg</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:exclusiveGateway id=\"Gateway_0d4bcrm\" name=\"人均额超标部门审批\">\n      <bpmn:incoming>Flow_05on1mg</bpmn:incoming>\n      <bpmn:incoming>Flow_0fjvtxl</bpmn:incoming>\n      <bpmn:outgoing>Flow_0vjpfg2</bpmn:outgoing>\n      <bpmn:outgoing>Flow_1m18dtu</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:sequenceFlow id=\"Flow_1xttmhp\" sourceRef=\"Activity_1th6wtt\" targetRef=\"Gateway_09zrh49\" />\n    <bpmn:sequenceFlow id=\"Flow_03jpsrl\" name=\"yes\" sourceRef=\"Gateway_09zrh49\" targetRef=\"Activity_0idxtir\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.ConfigurationMulListener\" event=\"take\">\n          <camunda:field name=\"data_conf\">\n            <camunda:string>公司总裁</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl6</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${pdata6.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_05on1mg\" name=\"no\" sourceRef=\"Gateway_09zrh49\" targetRef=\"Gateway_0d4bcrm\">\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!pdata6.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_0fjvtxl\" sourceRef=\"Activity_0idxtir\" targetRef=\"Gateway_0d4bcrm\" />\n    <bpmn:sequenceFlow id=\"Flow_0vjpfg2\" name=\"yes\" sourceRef=\"Gateway_0d4bcrm\" targetRef=\"Activity_18zcgfl\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.OrganizationHeaderListener\" event=\"take\">\n          <camunda:field name=\"data_org\">\n            <camunda:expression>${DeptOwnerId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl7</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${ExpenseDetail==\"meal\"&amp;&amp;AvgAmount&gt;300&amp;&amp;pdataBM.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_1m18dtu\" name=\"yes\" sourceRef=\"Gateway_0d4bcrm\" targetRef=\"Gateway_18ot606\">\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!(ExpenseDetail==\"meal\"&amp;&amp;AvgAmount&gt;300&amp;&amp;pdataBM.contains(EmpHighestOrgId))}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_1wnkudb\" sourceRef=\"Activity_18zcgfl\" targetRef=\"Activity_0r9wsyl\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.ConfigurationMulListener\" event=\"take\">\n          <camunda:field name=\"data_conf\">\n            <camunda:string>合规总监</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl8</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_0b8ch2d\" sourceRef=\"Activity_0r9wsyl\" targetRef=\"Gateway_18ot606\">\n      <bpmn:extensionElements />\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_04r3fxd\" sourceRef=\"Activity_1bgkmdr\" targetRef=\"Activity_090xajt\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.GeneralMulListener\" event=\"take\">\n          <camunda:field name=\"data_in\">\n            <camunda:expression>${CCFinanceLev}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl10</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n    </bpmn:sequenceFlow>\n    <bpmn:exclusiveGateway id=\"Gateway_1kvy4go\" name=\"财务经理审批判断\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.CalIntersectListener\" event=\"start\">\n          <camunda:field name=\"data_in_1\">\n            <camunda:string>DeptOwnerIds</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_in_2\">\n            <camunda:string>pdata121</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>decision11</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:incoming>Flow_1dpjm5h</bpmn:incoming>\n      <bpmn:outgoing>Flow_1dxlpii</bpmn:outgoing>\n      <bpmn:outgoing>Flow_1sgpsvk</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:exclusiveGateway id=\"Gateway_0lr1cmz\" name=\"财务总监审批\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.CalIntersectListener\" event=\"start\">\n          <camunda:field name=\"data_in_1\">\n            <camunda:string>DeptOwnerIds</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_in_2\">\n            <camunda:string>pdata121</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>decision12</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.CalIntersectListener\" event=\"start\">\n          <camunda:field name=\"data_in_1\">\n            <camunda:string>DeptOwnerIds</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_in_2\">\n            <camunda:string>pdata13</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>decision122</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:incoming>Flow_1dxlpii</bpmn:incoming>\n      <bpmn:incoming>Flow_0ceu1h0</bpmn:incoming>\n      <bpmn:outgoing>Flow_1p4ow3p</bpmn:outgoing>\n      <bpmn:outgoing>Flow_0zi8kah</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:exclusiveGateway id=\"Gateway_0b2nynv\" name=\"财务副总裁审批\">\n      <bpmn:incoming>Flow_1p4ow3p</bpmn:incoming>\n      <bpmn:incoming>Flow_08sjbdi</bpmn:incoming>\n      <bpmn:outgoing>Flow_151pnck</bpmn:outgoing>\n      <bpmn:outgoing>Flow_0ce8ksr</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:sequenceFlow id=\"Flow_1dpjm5h\" sourceRef=\"Activity_090xajt\" targetRef=\"Gateway_1kvy4go\" />\n    <bpmn:sequenceFlow id=\"Flow_1dxlpii\" name=\"no\" sourceRef=\"Gateway_1kvy4go\" targetRef=\"Gateway_0lr1cmz\">\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${(Amount&lt;5000&amp;&amp;decision11)||pdata12.contains(CreateUserId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_1p4ow3p\" name=\"no\" sourceRef=\"Gateway_0lr1cmz\" targetRef=\"Gateway_0b2nynv\">\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${(Amount&lt;10000&amp;&amp;decision12)||(Amount&lt;5000&amp;&amp;decision12)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:endEvent id=\"Event_0zb7g17\" name=\"结束\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.ProcessCompleteListener\" event=\"start\">\n          <camunda:field name=\"data_in\">\n            <camunda:expression>${CreateUserId}</camunda:expression>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:incoming>Flow_151pnck</bpmn:incoming>\n      <bpmn:incoming>Flow_1d0q614</bpmn:incoming>\n    </bpmn:endEvent>\n    <bpmn:sequenceFlow id=\"Flow_151pnck\" name=\"no\" sourceRef=\"Gateway_0b2nynv\" targetRef=\"Event_0zb7g17\">\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!pdata14.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_1sgpsvk\" name=\"yes\" sourceRef=\"Gateway_1kvy4go\" targetRef=\"Activity_15rr57j\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.GeneralMulListener\" event=\"take\">\n          <camunda:field name=\"data_in\">\n            <camunda:expression>${CCFinance}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl11</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!((Amount&lt;5000&amp;&amp;decision11)||pdata12.contains(CreateUserId))}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_0ceu1h0\" sourceRef=\"Activity_15rr57j\" targetRef=\"Gateway_0lr1cmz\" />\n    <bpmn:sequenceFlow id=\"Flow_08sjbdi\" sourceRef=\"Activity_1padyxn\" targetRef=\"Gateway_0b2nynv\" />\n    <bpmn:sequenceFlow id=\"Flow_1d0q614\" sourceRef=\"Activity_1wiva3j\" targetRef=\"Event_0zb7g17\" />\n    <bpmn:sequenceFlow id=\"Flow_0zi8kah\" name=\"yes\" sourceRef=\"Gateway_0lr1cmz\" targetRef=\"Activity_1padyxn\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.GeneralMulListener\" event=\"take\">\n          <camunda:field name=\"data_in\">\n            <camunda:expression>${CCFinance}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl12</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!((Amount&lt;10000&amp;&amp;decision12)||(Amount&lt;5000&amp;&amp;decision12))}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_0ce8ksr\" name=\"yes\" sourceRef=\"Gateway_0b2nynv\" targetRef=\"Activity_1wiva3j\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.ConfigurationMulListener\" event=\"take\">\n          <camunda:field name=\"data_conf\">\n            <camunda:string>财务副总裁</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl13</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${pdata14.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_07sndfp\" name=\"no\" sourceRef=\"Gateway_0o5atgg\" targetRef=\"Gateway_022i3q8\">\n      <bpmn:extensionElements />\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!pdata3.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_15mi3c7\" sourceRef=\"Activity_0he7ije\" targetRef=\"Gateway_022i3q8\" />\n    <bpmn:userTask id=\"Activity_0he7ije\" name=\"最高级部门负责人审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_0ln2i88</bpmn:incoming>\n      <bpmn:outgoing>Flow_15mi3c7</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl3\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_0o0fh8w\" name=\"公司总裁审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_1jzw3lh</bpmn:incoming>\n      <bpmn:outgoing>Flow_04kxf0z</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl4\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_1th6wtt\" name=\"费用归属部门审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_1tvbw1v</bpmn:incoming>\n      <bpmn:incoming>Flow_04kxf0z</bpmn:incoming>\n      <bpmn:outgoing>Flow_1xttmhp</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl5\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_0idxtir\" name=\"总裁审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_03jpsrl</bpmn:incoming>\n      <bpmn:outgoing>Flow_0fjvtxl</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl6\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_18zcgfl\" name=\"部门财务负责人审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_0vjpfg2</bpmn:incoming>\n      <bpmn:outgoing>Flow_1wnkudb</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl7\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_0r9wsyl\" name=\"合规总监审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_1wnkudb</bpmn:incoming>\n      <bpmn:outgoing>Flow_0b8ch2d</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl8\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_1bgkmdr\" name=\"合规审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_12mre1p</bpmn:incoming>\n      <bpmn:outgoing>Flow_04r3fxd</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl9\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfCompletedInstances==1}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_090xajt\" name=\"财务会计审批\" camunda:assignee=\"${user}\">\n      <bpmn:extensionElements />\n      <bpmn:incoming>Flow_04r3fxd</bpmn:incoming>\n      <bpmn:incoming>Flow_10cck4v</bpmn:incoming>\n      <bpmn:outgoing>Flow_1dpjm5h</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl10\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_15rr57j\" name=\"财务经理审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_1sgpsvk</bpmn:incoming>\n      <bpmn:outgoing>Flow_0ceu1h0</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl11\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_1padyxn\" name=\"财务总监审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_0zi8kah</bpmn:incoming>\n      <bpmn:outgoing>Flow_08sjbdi</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl12\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:userTask id=\"Activity_1wiva3j\" name=\"财务副总裁审批\" camunda:assignee=\"${user}\">\n      <bpmn:incoming>Flow_0ce8ksr</bpmn:incoming>\n      <bpmn:outgoing>Flow_1d0q614</bpmn:outgoing>\n      <bpmn:multiInstanceLoopCharacteristics camunda:collection=\"AsigneeColl13\" camunda:elementVariable=\"user\">\n        <bpmn:completionCondition xsi:type=\"bpmn:tFormalExpression\">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>\n      </bpmn:multiInstanceLoopCharacteristics>\n    </bpmn:userTask>\n    <bpmn:exclusiveGateway id=\"Gateway_18ot606\">\n      <bpmn:incoming>Flow_1m18dtu</bpmn:incoming>\n      <bpmn:incoming>Flow_0b8ch2d</bpmn:incoming>\n      <bpmn:outgoing>Flow_12mre1p</bpmn:outgoing>\n      <bpmn:outgoing>Flow_10cck4v</bpmn:outgoing>\n    </bpmn:exclusiveGateway>\n    <bpmn:sequenceFlow id=\"Flow_12mre1p\" sourceRef=\"Gateway_18ot606\" targetRef=\"Activity_1bgkmdr\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.ConfigurationMulListener\" event=\"take\">\n          <camunda:field name=\"data_conf\">\n            <camunda:string>合规成员</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl9</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${pdataBM.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_10cck4v\" sourceRef=\"Gateway_18ot606\" targetRef=\"Activity_090xajt\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.GeneralMulListener\" event=\"take\">\n          <camunda:field name=\"data_in\">\n            <camunda:expression>${CCFinanceLev}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl10</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n      <bpmn:conditionExpression xsi:type=\"bpmn:tFormalExpression\">${!pdataBM.contains(EmpHighestOrgId)}</bpmn:conditionExpression>\n    </bpmn:sequenceFlow>\n    <bpmn:sequenceFlow id=\"Flow_0f933ug\" sourceRef=\"Activity_1pzga1t\" targetRef=\"Activity_1ltgb9b\">\n      <bpmn:extensionElements>\n        <camunda:executionListener class=\"org.winhealth.rpc_camunda.camunda.executionListener.EmployeeMangerListener\" event=\"take\">\n          <camunda:field name=\"data_emp\">\n            <camunda:expression>${CreateUserId}</camunda:expression>\n          </camunda:field>\n          <camunda:field name=\"data_out\">\n            <camunda:string>AsigneeColl2</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_level\">\n            <camunda:string>2</camunda:string>\n          </camunda:field>\n          <camunda:field name=\"data_skip_by_variable\">\n            <camunda:string>whitelist2</camunda:string>\n          </camunda:field>\n        </camunda:executionListener>\n      </bpmn:extensionElements>\n    </bpmn:sequenceFlow>\n  </bpmn:process>\n  <bpmndi:BPMNDiagram id=\"BPMNDiagram_1\">\n    <bpmndi:BPMNPlane id=\"BPMNPlane_1\" bpmnElement=\"EntertainmentExpense\">\n      <bpmndi:BPMNShape id=\"_BPMNShape_StartEvent_2\" bpmnElement=\"StartEvent_1\">\n        <dc:Bounds x=\"179\" y=\"239\" width=\"36\" height=\"36\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"187\" y=\"282\" width=\"22\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_0o5atgg_di\" bpmnElement=\"Gateway_0o5atgg\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"595\" y=\"232\" width=\"50\" height=\"50\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"581.5\" y=\"292\" width=\"77\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_09zrh49_di\" bpmnElement=\"Gateway_09zrh49\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"1115\" y=\"232\" width=\"50\" height=\"50\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1118\" y=\"289\" width=\"44\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_0d4bcrm_di\" bpmnElement=\"Gateway_0d4bcrm\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"1275\" y=\"232\" width=\"50\" height=\"50\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1262\" y=\"289\" width=\"76\" height=\"27\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_1kvy4go_di\" bpmnElement=\"Gateway_1kvy4go\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"1115\" y=\"375\" width=\"50\" height=\"50\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1096\" y=\"351\" width=\"88\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_0lr1cmz_di\" bpmnElement=\"Gateway_0lr1cmz\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"895\" y=\"375\" width=\"50\" height=\"50\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"887\" y=\"351\" width=\"66\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_0b2nynv_di\" bpmnElement=\"Gateway_0b2nynv\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"685\" y=\"375\" width=\"50\" height=\"50\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"671\" y=\"351\" width=\"77\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Event_0zb7g17_di\" bpmnElement=\"Event_0zb7g17\">\n        <dc:Bounds x=\"462\" y=\"382\" width=\"36\" height=\"36\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"470\" y=\"425\" width=\"22\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_0h5e4f3_di\" bpmnElement=\"Activity_0he7ije\">\n        <dc:Bounds x=\"570\" y=\"80\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_0vpwsjq_di\" bpmnElement=\"Activity_0o0fh8w\">\n        <dc:Bounds x=\"770\" y=\"80\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_1jw00pi_di\" bpmnElement=\"Activity_1th6wtt\">\n        <dc:Bounds x=\"970\" y=\"217\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_1jd5oew_di\" bpmnElement=\"Activity_0idxtir\">\n        <dc:Bounds x=\"1090\" y=\"80\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_058mh76_di\" bpmnElement=\"Activity_18zcgfl\">\n        <dc:Bounds x=\"1250\" y=\"80\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_09f38tq_di\" bpmnElement=\"Activity_15rr57j\">\n        <dc:Bounds x=\"1090\" y=\"480\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_1u5df9u_di\" bpmnElement=\"Activity_1padyxn\">\n        <dc:Bounds x=\"870\" y=\"480\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_1xu0usp_di\" bpmnElement=\"Activity_1wiva3j\">\n        <dc:Bounds x=\"660\" y=\"480\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_09lgj3n_di\" bpmnElement=\"Activity_0r9wsyl\">\n        <dc:Bounds x=\"1410\" y=\"80\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_18ot606_di\" bpmnElement=\"Gateway_18ot606\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"1525\" y=\"232\" width=\"50\" height=\"50\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_1nqu5yk_di\" bpmnElement=\"Activity_090xajt\">\n        <dc:Bounds x=\"1500\" y=\"360\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_11qftb4_di\" bpmnElement=\"Activity_1pzga1t\">\n        <dc:Bounds x=\"290\" y=\"217\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_16u8pce_di\" bpmnElement=\"Activity_1ltgb9b\">\n        <dc:Bounds x=\"430\" y=\"217\" width=\"100\" height=\"80\" />\n        <bpmndi:BPMNLabel />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Gateway_022i3q8_di\" bpmnElement=\"Gateway_022i3q8\" isMarkerVisible=\"true\">\n        <dc:Bounds x=\"795\" y=\"232\" width=\"50\" height=\"50\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"787\" y=\"289\" width=\"66\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNShape id=\"Activity_1p6dyu7_di\" bpmnElement=\"Activity_1bgkmdr\">\n        <dc:Bounds x=\"1650\" y=\"217\" width=\"100\" height=\"80\" />\n      </bpmndi:BPMNShape>\n      <bpmndi:BPMNEdge id=\"Flow_0squut9_di\" bpmnElement=\"Flow_0squut9\">\n        <di:waypoint x=\"215\" y=\"257\" />\n        <di:waypoint x=\"290\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_14jw5gz_di\" bpmnElement=\"Flow_14jw5gz\">\n        <di:waypoint x=\"530\" y=\"257\" />\n        <di:waypoint x=\"595\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0ln2i88_di\" bpmnElement=\"Flow_0ln2i88\">\n        <di:waypoint x=\"620\" y=\"232\" />\n        <di:waypoint x=\"620\" y=\"160\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"627\" y=\"193\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_07sndfp_di\" bpmnElement=\"Flow_07sndfp\">\n        <di:waypoint x=\"645\" y=\"257\" />\n        <di:waypoint x=\"795\" y=\"257\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"672\" y=\"239\" width=\"13\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1xttmhp_di\" bpmnElement=\"Flow_1xttmhp\">\n        <di:waypoint x=\"1070\" y=\"257\" />\n        <di:waypoint x=\"1115\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_03jpsrl_di\" bpmnElement=\"Flow_03jpsrl\">\n        <di:waypoint x=\"1140\" y=\"232\" />\n        <di:waypoint x=\"1140\" y=\"160\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1147\" y=\"193\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_05on1mg_di\" bpmnElement=\"Flow_05on1mg\">\n        <di:waypoint x=\"1165\" y=\"257\" />\n        <di:waypoint x=\"1275\" y=\"257\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1183\" y=\"239\" width=\"13\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0fjvtxl_di\" bpmnElement=\"Flow_0fjvtxl\">\n        <di:waypoint x=\"1190\" y=\"120\" />\n        <di:waypoint x=\"1220\" y=\"120\" />\n        <di:waypoint x=\"1220\" y=\"257\" />\n        <di:waypoint x=\"1275\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0vjpfg2_di\" bpmnElement=\"Flow_0vjpfg2\">\n        <di:waypoint x=\"1300\" y=\"232\" />\n        <di:waypoint x=\"1300\" y=\"160\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1307\" y=\"193\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1m18dtu_di\" bpmnElement=\"Flow_1m18dtu\">\n        <di:waypoint x=\"1325\" y=\"257\" />\n        <di:waypoint x=\"1525\" y=\"257\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1591\" y=\"226\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1dpjm5h_di\" bpmnElement=\"Flow_1dpjm5h\">\n        <di:waypoint x=\"1500\" y=\"400\" />\n        <di:waypoint x=\"1165\" y=\"400\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1dxlpii_di\" bpmnElement=\"Flow_1dxlpii\">\n        <di:waypoint x=\"1115\" y=\"400\" />\n        <di:waypoint x=\"945\" y=\"400\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1063\" y=\"382\" width=\"13\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1sgpsvk_di\" bpmnElement=\"Flow_1sgpsvk\">\n        <di:waypoint x=\"1140\" y=\"425\" />\n        <di:waypoint x=\"1140\" y=\"480\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"1147\" y=\"450\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0ceu1h0_di\" bpmnElement=\"Flow_0ceu1h0\">\n        <di:waypoint x=\"1090\" y=\"520\" />\n        <di:waypoint x=\"1040\" y=\"520\" />\n        <di:waypoint x=\"1040\" y=\"400\" />\n        <di:waypoint x=\"945\" y=\"400\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1p4ow3p_di\" bpmnElement=\"Flow_1p4ow3p\">\n        <di:waypoint x=\"895\" y=\"400\" />\n        <di:waypoint x=\"735\" y=\"400\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"809\" y=\"382\" width=\"13\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0zi8kah_di\" bpmnElement=\"Flow_0zi8kah\">\n        <di:waypoint x=\"920\" y=\"425\" />\n        <di:waypoint x=\"920\" y=\"480\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"927\" y=\"450\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_08sjbdi_di\" bpmnElement=\"Flow_08sjbdi\">\n        <di:waypoint x=\"870\" y=\"520\" />\n        <di:waypoint x=\"820\" y=\"520\" />\n        <di:waypoint x=\"820\" y=\"400\" />\n        <di:waypoint x=\"735\" y=\"400\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_151pnck_di\" bpmnElement=\"Flow_151pnck\">\n        <di:waypoint x=\"685\" y=\"400\" />\n        <di:waypoint x=\"498\" y=\"400\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"585\" y=\"382\" width=\"13\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0ce8ksr_di\" bpmnElement=\"Flow_0ce8ksr\">\n        <di:waypoint x=\"710\" y=\"425\" />\n        <di:waypoint x=\"710\" y=\"480\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"717\" y=\"450\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1d0q614_di\" bpmnElement=\"Flow_1d0q614\">\n        <di:waypoint x=\"660\" y=\"520\" />\n        <di:waypoint x=\"600\" y=\"520\" />\n        <di:waypoint x=\"600\" y=\"400\" />\n        <di:waypoint x=\"498\" y=\"400\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1jzw3lh_di\" bpmnElement=\"Flow_1jzw3lh\">\n        <di:waypoint x=\"820\" y=\"232\" />\n        <di:waypoint x=\"820\" y=\"160\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"827\" y=\"193\" width=\"17\" height=\"14\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1tvbw1v_di\" bpmnElement=\"Flow_1tvbw1v\">\n        <di:waypoint x=\"845\" y=\"257\" />\n        <di:waypoint x=\"970\" y=\"257\" />\n        <bpmndi:BPMNLabel>\n          <dc:Bounds x=\"884\" y=\"243\" width=\"13\" height=\"27\" />\n        </bpmndi:BPMNLabel>\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_15mi3c7_di\" bpmnElement=\"Flow_15mi3c7\">\n        <di:waypoint x=\"670\" y=\"120\" />\n        <di:waypoint x=\"720\" y=\"120\" />\n        <di:waypoint x=\"720\" y=\"257\" />\n        <di:waypoint x=\"795\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_04kxf0z_di\" bpmnElement=\"Flow_04kxf0z\">\n        <di:waypoint x=\"870\" y=\"120\" />\n        <di:waypoint x=\"920\" y=\"120\" />\n        <di:waypoint x=\"920\" y=\"257\" />\n        <di:waypoint x=\"970\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_1wnkudb_di\" bpmnElement=\"Flow_1wnkudb\">\n        <di:waypoint x=\"1350\" y=\"120\" />\n        <di:waypoint x=\"1410\" y=\"120\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0b8ch2d_di\" bpmnElement=\"Flow_0b8ch2d\">\n        <di:waypoint x=\"1460\" y=\"160\" />\n        <di:waypoint x=\"1460\" y=\"257\" />\n        <di:waypoint x=\"1525\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_12mre1p_di\" bpmnElement=\"Flow_12mre1p\">\n        <di:waypoint x=\"1575\" y=\"257\" />\n        <di:waypoint x=\"1650\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_04r3fxd_di\" bpmnElement=\"Flow_04r3fxd\">\n        <di:waypoint x=\"1700\" y=\"297\" />\n        <di:waypoint x=\"1700\" y=\"400\" />\n        <di:waypoint x=\"1600\" y=\"400\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_10cck4v_di\" bpmnElement=\"Flow_10cck4v\">\n        <di:waypoint x=\"1550\" y=\"282\" />\n        <di:waypoint x=\"1550\" y=\"360\" />\n      </bpmndi:BPMNEdge>\n      <bpmndi:BPMNEdge id=\"Flow_0f933ug_di\" bpmnElement=\"Flow_0f933ug\">\n        <di:waypoint x=\"390\" y=\"257\" />\n        <di:waypoint x=\"430\" y=\"257\" />\n      </bpmndi:BPMNEdge>\n    </bpmndi:BPMNPlane>\n  </bpmndi:BPMNDiagram>\n</bpmn:definitions>\n",
      "modelName": "1111"
  },
  "success": true
}
截屏2024-11-07 17 41 05

logicflow/core版本

2.0.6

logicflow/extension版本

2.0.10

logicflow/engine版本

No response

浏览器&环境

Chrome

@changexbc changexbc added the bug Something isn't working label Nov 7, 2024
Copy link

github-actions bot commented Nov 7, 2024

由于所提供信息的不充分,该 issue 被暂时关闭了。请修改 issue 以提供最小可复现示例(可以通过以下方式:1. 在任意在线编码平台如 codesanbox 编写示例。将其保存到自己空间,然后贴上链接。2. 在自己 github 中创建一个最简单的示例,然后贴上 github 链接。3. 删除项目中的 node_modules 部分,打包项目,并拖拽到 issue 输入框中上传(或提供远程可下载地址))来重启 issue。

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Nov 7, 2024
@github-actions github-actions bot reopened this Nov 7, 2024
@DymoneLewis DymoneLewis self-assigned this Nov 7, 2024
@changexbc
Copy link
Author

changexbc commented Nov 8, 2024

@DymoneLewis

看了下源码好像是 plugin/bpmn-elements-adapter\constant这个文件中 GatewayConfig的宽高设置有点问题,原先是 100 * 80,设置成 50 * 50 以后是正常的。

截屏2024-11-08 17 50 08

@wumail
Copy link
Collaborator

wumail commented Nov 10, 2024

bpmn-elements-adapter这块代码感觉有点💩,啥时候可以考虑重构一下,祖宗传下来的,之前懒得搞 @DymoneLewis 😉

@DymoneLewis
Copy link
Collaborator

我看看,先改成50 50能不能临时解决一下,重构。。。后面再说吧😭前面好几个等着改

@DymoneLewis
Copy link
Collaborator

@DymoneLewis

看了下源码好像是 plugin/bpmn-elements-adapter\constant这个文件中 GatewayConfig的宽高设置有点问题,原先是 100 * 80,设置成 50 * 50 以后是正常的。

截屏2024-11-08 17 50 08

不不不,跟这个没关系,应该是网格的问题,我试了一下grid size改成100之后偏移的更严重,我看看什么原因

@DymoneLewis
Copy link
Collaborator

DymoneLewis commented Nov 21, 2024

看了一下大致原因是节点吸附网格,但是边的数据没有更新导致的错位
开发完了,明天pr下,下周发版修复

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants