当前位置: 首页 > news >正文

基于jeecgboot-vue3的Flowable流程支持bpmn流程设计器与仿钉钉流程设计器-编辑多版本处理

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。

1、前端编辑带有仿钉钉流程的处理

/** 编辑流程设计弹窗页面 */const handleLoadXml = (row) => {console.log("handleLoadXml row",row)const params = {flowKey: row.key,version: row.version} queryByKeyAndVersion(params).then(res => {console.log("queryByKeyAndVersion res",res)if (res.code === 200 && res.result.hasOwnProperty("id")) {ddDesignerData.id = res.result.flowKeyddDesignerData.name = res.result.nameflowJsonData.value = JSON.parse(res.result.flowJson)flowJsonData.value.category = row.categoryflowJsonData.value.appType = row.appTypeddDesignerData.version = res.result.versiondesignerData.form.processType.push({id: row.category,appType: row.appType})ddDesignerOpen.value = true}else {designerData.title = "流程设计 - " + row.name;designerData.deploymentId = row.deploymentId;designerData.form = {processType: [],processName: row.name,processKey: row.key}if (row &&row.deploymentId) {const selectItem = categorys.value.find(item => item.id == row.category);modelForm.processType = selectItem; //以便编辑保存的时候获取到processTypedesignerData.form.processType.push(selectItem);designerData.loading = true;console.log("designerData",designerData)handleReadImage(row.deploymentId);designerData.title = "编辑流程图";  }xmlFrame.width = '90%'}})  }

2、后端检查是否有相应的仿钉钉flowKey和版本号相同的仿钉钉数据

<mapper namespace="org.jeecg.modules.flowable.FlowDd.mapper.FlowDdMapper"><select id="selectByKeyAndVersion" resultType="org.jeecg.modules.flowable.FlowDd.entity.FlowDd">select * from flow_ddwhere flow_key= #{flowKey} and version = #{version} limit 1</select>
</mapper>

3、前端编辑后保存

const ddSave = (data: any) => {console.log("ddSave data",data)saveXmlJson(data).then(res => {if(res.code === 200) {createMessage.success(res.message);ddDesignerData.loading = false;ddDesignerOpen.value = false;getList();}  })}  

其中前端数据如下:

const save = () => {const processModel = {code: pCode.value,name: pName.value,icon: {name: 'el:HomeFilled',color: '#409EFF'},process: props.process,flowJson: JSON.stringify(props.process),category: props.processType[0].id,appType: props.processType[0].appType,enable: true,version: props.version,sort: 0,groupId: '',remark: ''}emit('save', processModel);
}

4、后端保存跟原来差不多

@Override@Transactional(rollbackFor = Exception.class)public Result saveDdModel(ProcessModel processModel) {try {FlowSaveXmlVo vo = new FlowSaveXmlVo();BpmnModel bpmnModel = processModel.toBpmnModel();FlowDd flowDd = new FlowDd();flowDd.setId(processModel.getId());flowDd.setName(processModel.getName());flowDd.setFlowKey(processModel.getCode());flowDd.setVersion(processModel.getVersion()+1);//String flowJson = JSON.toJSONString(processModel);//有问题,会转换成大写的问题String flowJson = processModel.getFlowJson();flowDd.setFlowJson(flowJson);flowDdService.save(flowDd);String xml = new String(new BpmnXMLConverter().convertToXML(bpmnModel));vo.setAppType(processModel.getAppType());vo.setCategory(processModel.getCategory());vo.setXml(xml);vo.setDesignerType("DingDing");return this.saveXmlMode(vo);} catch (Exception e) {e.printStackTrace();throw new RuntimeException("创建失败: e=" + e.getMessage());}}

5、效果图

上面是v2版本了,对应bpmn图

编辑仿钉钉界面

仿钉钉保存后数据

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • NLP入门——RNN、LSTM模型的搭建、训练与预测
  • 解决 Vscode不支持c++11的语法
  • SQL Server Query Store Settings (查询存储设置)
  • 08 模型演化根本 深度学习推荐算法的五大范式
  • 【Wamp】局域网设备访问WampServer | 使用域名访问Wamp | Wamp配置HTTPS
  • Go 协程通道使用注意
  • 在设计电气系统时,电气工程师需要考虑哪些关键因素?
  • 云计算数据中心(二)
  • 【C语言】条件运算符详解 - 《 A ? B : C 》
  • java代理模式之JDK动态代理
  • Bigdata-Docker构建大数据学习开发环境
  • git回退分支版本git reset --hard HEAD
  • Beelzebub过程记录及工具集
  • PG大会周五于杭州举办;Pika发布4.0;阿里云MySQL上线Zero-ETL集成能力
  • vue3前端页面下载excel模版
  • @angular/forms 源码解析之双向绑定
  • [译]前端离线指南(上)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017-09-12 前端日报
  • 2017前端实习生面试总结
  • Angular 响应式表单之下拉框
  • CSS盒模型深入
  • es6
  • JavaScript中的对象个人分享
  • JS 面试题总结
  • Linux CTF 逆向入门
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • PHP变量
  • react-native 安卓真机环境搭建
  • 程序员最讨厌的9句话,你可有补充?
  • 使用parted解决大于2T的磁盘分区
  • 数组的操作
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微服务入门【系列视频课程】
  • 问题之ssh中Host key verification failed的解决
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 仓管云——企业云erp功能有哪些?
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #HarmonyOS:Web组件的使用
  • #php的pecl工具#
  • #QT(TCP网络编程-服务端)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (1)(1.11) SiK Radio v2(一)
  • (13)DroneCAN 适配器节点(一)
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (备份) esp32 GPIO
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (超详细)语音信号处理之特征提取
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)SpringBoot3---尚硅谷总结
  • (已解决)报错:Could not load the Qt platform plugin “xcb“