一、与流程定义相关的数据库表
部署对象和流程定义相关的表
SELECT * FROM act_re_deployment #部署对象表
SELECT * FROM act_re_procdef #流程定义表
SELECT * FROM act_ge_bytearray #资源文件表 吧bpmn和图片都存进来
SELECT * FROM act_ge_property #主键生成策略表
在编写程序时,一定要加上流程引擎,切记
<code class="hljs fix has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-attribute" style="box-sizing: border-box;">//流程引擎 ProcessEngine processEngine </span>=<span class="hljs-string" style="color:#0880;box-sizing: border-box;"> ProcessEngines.getDefaultProcessEngine();</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>
部署流程定义在activiti(二)中说过哦
<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 部署流程定义 */</span> <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Test</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">deploymentProcessDefinition</span>(){ Deployment deployment = processEngine.getRepositoryService()<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//与流程定义和部署对象相关的service RepositoryService</span> .createDeployment() <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//创建一个部署对象 </span> .name(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"helloworld入门程序"</span>)<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//添加部署的名称</span> .addClasspathResource(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"diagrams/helloword.bpmn"</span>)<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//从classpath的资源中加载,一次只能加载一个文件</span> .addClasspathResource(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"diagrams/helloword.png"</span>)<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//从classpath的资源中加载,一次只能加载一个文件</span> .deploy();<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//完成部署</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"部署ID:"</span>+deployment.getId()); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"部署名称:"</span>+deployment.getName()); }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li></ul>
运行效果:
数据库中出现相关数据
act_re_deployment表中,如图:
act_re_deployment表中,如图:
act_ge_bytearray表中,如图:
act_ge_property表中,如图:
<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 查询流程定义 */</span> <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Test</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">findProcessDefinition</span>(){ List<ProcessDefinition> list = processEngine.getRepositoryService()<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//与流程定义和部署对象相关的service </span> .createProcessDefinitionQuery()<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//创建一个流程定义的查询</span> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/**查询条件 相当于加了一个where条件 */</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .deploymentId(deploymentId)//使用部署对象的ID查询</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .processDefinitionId(processDefinitionId)//使用流程定义的Id进行查询</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .processDefinitionKey(processDefinitionKey)//使用流程定义的key 进行查询</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .processDefinitionNameLike(processDefinitionNameLike)//使用流程定义的名称模糊查询</span> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/**排序*/</span> .orderByProcessDefinitionVersion().asc()<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//按照版本的升序排列</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .orderByProcessDefinitionName().desc()//按照流程定义的名称降序排列</span> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/**返回的结果集*/</span> .list();<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//返回一个集合列表 封装流程定义</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .singleResult();//返回一个结果集 一个对象</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .count();//返回结果集的数量</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .listPage(firstResult, maxResults);//分页查询</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span>(!list.isEmpty()){ <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">for</span> (ProcessDefinition processDefinition : list) { System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义ID:"</span>+processDefinition.getId());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//流程定义的key+版本+随机生成数</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义的名称:"</span>+processDefinition.getName());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//对应helloworld.bpmn文件中的name属性值</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义key:"</span>+processDefinition.getKey());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//对应helloworld.bpmn文件中的id属性值</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义的版本:"</span>+processDefinition.getVersion());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//当key相同的情况下,版本升级,默认是1</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"资源名称bpmn文件:"</span>+processDefinition.getResourceName()); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"资源名称png文件:"</span>+processDefinition.getDiagramResourceName()); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程部署ID:"</span>+processDefinition.getDeploymentId()); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"--------------------------------------"</span>); } } }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li></ul>
运行效果:
<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 删除流程定义 */</span> <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Test</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">deleteProcessDefintion</span>(){ String deploymentId = <span class="hljs-string" style="color:#0880;box-sizing: border-box;">"1"</span>; <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 不带级联的删除 * 只能删除没有启动的流程,如果流程启动,就会抛出异常 */</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// processEngine.getRepositoryService()</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">// .deleteDeployment(deploymentId);//使用部署ID完成删除</span> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 级联删除 * 不管流程是否启动 都可以删除 */</span> processEngine.getRepositoryService() .deleteDeployment(deploymentId, <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">true</span>); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"删除成功!!!"</span>); }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li></ul>
如果效果显示“删除成功”则说明删除成功
<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 查看流程图 *<span class="hljs-javadoctag" style="color:#66066;box-sizing: border-box;"> @throws</span> IOException */</span> <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Test</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">viewPic</span>() <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">throws</span> IOException{ <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 将生成的图片放到文件夹下 */</span> String deploymentId = <span class="hljs-string" style="color:#0880;box-sizing: border-box;">"301"</span>; <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//获取图片的资源名称</span> <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//获取数据库中的存的资源名称 一个dpmn 一个png 所以为集合</span> List<String> list = processEngine.getRepositoryService() .getDeploymentResourceNames(deploymentId); String resourceName = <span class="hljs-string" style="color:#0880;box-sizing: border-box;">""</span>; <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span>(!list.isEmpty()){ <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">for</span>(String name : list){ <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//如果结尾为png的 则取到</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span>(name.indexOf(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">".png"</span>)>=<span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span>){ resourceName = name; } } } <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//获取图片的输入流</span> InputStream in = processEngine.getRepositoryService() .getResourceAsStream(deploymentId, resourceName); <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//将图片生成到D盘的目录下</span> File file = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> File(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"D:/"</span>+resourceName); <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//将输入流的图片写到D盘下</span> FileUtils.copyInputStreamToFile(in, file); }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li></ul>
<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 查询最新版本的流程定义 * 查询所有的deploymentID最新的版本 */</span> <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Test</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">findLaonstVersiProcessDefinition</span>(){ <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//按照流程定义的版本正序排列</span> List<ProcessDefinition> list = processEngine.getRepositoryService() .createProcessDefinitionQuery() .orderByProcessDefinitionVersion().asc() .list(); <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 附加!!!! * Map<String,ProcessDefinition> * * map集合的key:流程定义的key * map集合的value:流程定义的对象 * map集合的特点:当map集合key值相同的情况下,后一次的值将替换前一次的值 */</span> Map<String,ProcessDefinition> map = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> LinkedHashMap<String, ProcessDefinition>(); <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span>(!list.isEmpty()){ <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">for</span>(ProcessDefinition pd : list){ map.put(pd.getKey(), pd); } } List<ProcessDefinition> pdList = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> ArrayList<ProcessDefinition>(map.values()); <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span>(!pdList.isEmpty()){ <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">for</span> (ProcessDefinition processDefinition : pdList) { System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义ID:"</span>+processDefinition.getId());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//流程定义的key+版本+随机生成数</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义的名称:"</span>+processDefinition.getName());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//对应helloworld.bpmn文件中的name属性值</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义key:"</span>+processDefinition.getKey());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//对应helloworld.bpmn文件中的id属性值</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程定义的版本:"</span>+processDefinition.getVersion());<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//当key相同的情况下,版本升级,默认是1</span> System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"资源名称bpmn文件:"</span>+processDefinition.getResourceName()); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"资源名称png文件:"</span>+processDefinition.getDiagramResourceName()); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"流程部署ID:"</span>+processDefinition.getDeploymentId()); System.out.println(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"--------------------------------------"</span>); } } }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li></ul>
运行效果:
<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-javadoc" style="color:#8800;box-sizing: border-box;">/** * 附加!!! * 删除流程定义(删除key相同的所有不同版本的流程定义) */</span> <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Test</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">deleteProcessDefinitionByKey</span>(){ <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//流程定义的key</span> String processDefinitionKey = <span class="hljs-string" style="color:#0880;box-sizing: border-box;">"helloworld"</span>; <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//先使用流程定义的key查询流程定义,查询出所有的版本</span> List<ProcessDefinition> list = processEngine.getRepositoryService() .createProcessDefinitionQuery() .processDefinitionKey(processDefinitionKey)<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//使用流程定义的key查询</span> .list(); <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//遍历,获取每个流程定义的部署ID</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span>(!list.isEmpty()){ <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">for</span>(ProcessDefinition processDefinition : list){ <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//获取部署ID</span> String deploymentId = processDefinition.getDeploymentId(); processEngine.getRepositoryService() .deleteDeployment(deploymentId,<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">true</span>); System.out.println(deploymentId+<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"--------删除成功"</span>); } } }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="box-sizing: border-box; display: block; position: absolute; height: 60px; right: 30px; top: 5px; font-size: 14px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"><a target=_blank target="_blank" style="color: rgb(202, 0, 0); text-decoration: none; box-sizing: border-box;"><img src="http://static.blog.youkuaiyun.com/images/save_snippets.png" style="border: none; box-sizing: border-box; max-width: 100%;" alt="" /></a></div><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li></ul>