diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java index 5e61dfb..c6bedcd 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java @@ -59,7 +59,20 @@ public class FlowInstance { private FlowListener listener; - public FlowInstance(@NonNull FlowListener listener, UserSession us) { + public static FlowInstance createById(UserSession us, FlowListener listener, long billId, long taskId) { + FlowInstance flowInstance = new FlowInstance(listener, us); + flowInstance.load(billId, taskId); + return flowInstance; + } + + public static FlowInstance createByBillType(UserSession us, FlowListener listener, long billType) { + FlowInstance flowInstance = new FlowInstance(listener, us); + flowInstance.create(billType); + return flowInstance; + } + + + private FlowInstance(@NonNull FlowListener listener, UserSession us) { this.listener = listener; this.us = us; } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowDelHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowDelHandler.java new file mode 100644 index 0000000..2e6989e --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowDelHandler.java @@ -0,0 +1,22 @@ +package cc.smtweb.system.bpm.web.engine.model.flow.listcard.single; + +import cc.smtweb.framework.core.db.vo.ModelTable; +import cc.smtweb.system.bpm.web.engine.flow.FlowInstance; +import cc.smtweb.system.bpm.web.engine.flow.FlowListener; +import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleDelHandler; + +/** + * Created by Akmm at 2022-09-01 15:03 + * 流程删除 + */ +public class FlowDelHandler extends LCSingleDelHandler implements FlowListener { + protected FlowInstance flowInstance; + @Override + protected void localDel(long id, ModelTable table) { + long taskId = params.readLong("taskId"); + flowInstance = FlowInstance.createById(us, this, id, taskId); + flowInstance.delete(); + super.localDel(id, table); + + } +} diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleLoadHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleLoadHandler.java index d19cb26..a6ab893 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleLoadHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleLoadHandler.java @@ -30,9 +30,8 @@ public class FlowSingleLoadHandler extends LCSingleLoadHandler implements FlowLi @Override protected void afterAdd(SwMap ret, SwMap bean) { - FlowInstance flowInstance = new FlowInstance(this, us); - flowInstance.create(form.getBillType()); - + flowInstance = FlowInstance.createByBillType(us, this, form.getBillType()); + PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets); ModelTable table = cardDataset.getModelTable(); bean.put(table.getIdField(), flowInstance.getProcInst().getId()); @@ -57,8 +56,7 @@ public class FlowSingleLoadHandler extends LCSingleLoadHandler implements FlowLi ret.put(cardDataset.name, data); //加载流程信息 - flowInstance = new FlowInstance(this, us); - flowInstance.load(id, taskId); + flowInstance = FlowInstance.createById(us,this, id, taskId); ret.put(FlowHelper.DATASET_NAME_FLOW, DynRetBean.createBean(flowInstance.getProcInst())); ret.put(FlowHelper.DATASET_NAME_COMMENT, DynRetBean.createList(SwListData.create(flowInstance.loadComment(), 0))); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleSaveHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleSaveHandler.java index f1ce123..7645739 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleSaveHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleSaveHandler.java @@ -35,11 +35,10 @@ public class FlowSingleSaveHandler extends LCSingleSave data = data.readMap("form"); if (data == null) throw new BizException("没有找到待保存的流程数据!"); - flowInstance = new FlowInstance(this, us); if (bean.isNew()) { - flowInstance.create(form.getBillType()); + flowInstance = FlowInstance.createByBillType(us, this, form.getBillType()); } else { - flowInstance.load(id, taskId); + flowInstance = FlowInstance.createById(us,this, id, taskId); } flowInstance.readFromPage(data); flowInstance.setBillInfo(getBillCode(), getBillInfo(), getBillUrl()); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java index b3775d1..999b452 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java @@ -25,6 +25,6 @@ public class FlowSingleService extends LCSingleService { @Override protected LCSingleDelHandler getDelHandler() { - return super.getDelHandler(); + return new FlowDelHandler(); } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/normal/LCNormalDelHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/normal/LCNormalDelHandler.java index fb2bb21..8bf25ad 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/normal/LCNormalDelHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/normal/LCNormalDelHandler.java @@ -29,7 +29,7 @@ public class LCNormalDelHandler extends LCSingleDelHandler { //数据集 String dataSet = params.readString("dataset"); PageDataset delDataSet = this.datasets.findByName(dataSet); - Assert.notNull(delDataSet,"未获取到数据集:"+dataSet); + Assert.notNull(delDataSet, "未获取到数据集:" + dataSet); // checkBean(delDataSet, id); // @@ -50,7 +50,7 @@ public class LCNormalDelHandler extends LCSingleDelHandler { AbstractCache cache = CacheManager.getIntance().getCache(table.getName()); cache.remove(id); } - localDelSuccess(id, table); + afterCommit(id, table); } }); return R.success(); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleDelHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleDelHandler.java index d1f976c..90ab129 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleDelHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleDelHandler.java @@ -57,17 +57,26 @@ public class LCSingleDelHandler extends AbstractDynPageHandler { AbstractCache cache = CacheManager.getIntance().getCache(table.getName()); cache.remove(id); } - localDelSuccess(id, table); + afterCommit(id, table); + } + + @Override + public void doAfterDbRollback() { + afterRollback(id); } }); return R.success(); } - protected void localDel(long id, ModelTable table) { + //回调:::删除之后 + protected void localDel(long id, ModelTable table) {} + //回调:::提交成功后 + protected void afterCommit(long id, ModelTable table) { } - protected void localDelSuccess(long id, ModelTable table) { + //回调:::提交失败,事务回滚后 + protected void afterRollback(long id) { }