Browse Source

流程引擎-删除

4.0
郑根木 2 years ago
parent
commit
0901fb476b
7 changed files with 56 additions and 15 deletions
  1. +14
    -1
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java
  2. +22
    -0
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowDelHandler.java
  3. +3
    -5
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleLoadHandler.java
  4. +2
    -3
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleSaveHandler.java
  5. +1
    -1
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java
  6. +2
    -2
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/normal/LCNormalDelHandler.java
  7. +12
    -3
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleDelHandler.java

+ 14
- 1
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java View File

@@ -59,7 +59,20 @@ public class FlowInstance {


private FlowListener listener; 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.listener = listener;
this.us = us; this.us = us;
} }


+ 22
- 0
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowDelHandler.java View File

@@ -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);
}
}

+ 3
- 5
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleLoadHandler.java View File

@@ -30,9 +30,8 @@ public class FlowSingleLoadHandler extends LCSingleLoadHandler implements FlowLi


@Override @Override
protected void afterAdd(SwMap ret, SwMap bean) { 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); PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets);
ModelTable table = cardDataset.getModelTable(); ModelTable table = cardDataset.getModelTable();
bean.put(table.getIdField(), flowInstance.getProcInst().getId()); bean.put(table.getIdField(), flowInstance.getProcInst().getId());
@@ -57,8 +56,7 @@ public class FlowSingleLoadHandler extends LCSingleLoadHandler implements FlowLi
ret.put(cardDataset.name, data); 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_FLOW, DynRetBean.createBean(flowInstance.getProcInst()));
ret.put(FlowHelper.DATASET_NAME_COMMENT, DynRetBean.createList(SwListData.create(flowInstance.loadComment(), 0))); ret.put(FlowHelper.DATASET_NAME_COMMENT, DynRetBean.createList(SwListData.create(flowInstance.loadComment(), 0)));


+ 2
- 3
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleSaveHandler.java View File

@@ -35,11 +35,10 @@ public class FlowSingleSaveHandler<T extends DefaultEntity> extends LCSingleSave
data = data.readMap("form"); data = data.readMap("form");
if (data == null) throw new BizException("没有找到待保存的流程数据!"); if (data == null) throw new BizException("没有找到待保存的流程数据!");


flowInstance = new FlowInstance(this, us);
if (bean.isNew()) { if (bean.isNew()) {
flowInstance.create(form.getBillType());
flowInstance = FlowInstance.createByBillType(us, this, form.getBillType());
} else { } else {
flowInstance.load(id, taskId);
flowInstance = FlowInstance.createById(us,this, id, taskId);
} }
flowInstance.readFromPage(data); flowInstance.readFromPage(data);
flowInstance.setBillInfo(getBillCode(), getBillInfo(), getBillUrl()); flowInstance.setBillInfo(getBillCode(), getBillInfo(), getBillUrl());


+ 1
- 1
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java View File

@@ -25,6 +25,6 @@ public class FlowSingleService extends LCSingleService {


@Override @Override
protected LCSingleDelHandler getDelHandler() { protected LCSingleDelHandler getDelHandler() {
return super.getDelHandler();
return new FlowDelHandler();
} }
} }

+ 2
- 2
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/normal/LCNormalDelHandler.java View File

@@ -29,7 +29,7 @@ public class LCNormalDelHandler extends LCSingleDelHandler {
//数据集 //数据集
String dataSet = params.readString("dataset"); String dataSet = params.readString("dataset");
PageDataset delDataSet = this.datasets.findByName(dataSet); PageDataset delDataSet = this.datasets.findByName(dataSet);
Assert.notNull(delDataSet,"未获取到数据集:"+dataSet);
Assert.notNull(delDataSet, "未获取到数据集:" + dataSet);
// //
checkBean(delDataSet, id); checkBean(delDataSet, id);
// //
@@ -50,7 +50,7 @@ public class LCNormalDelHandler extends LCSingleDelHandler {
AbstractCache cache = CacheManager.getIntance().getCache(table.getName()); AbstractCache cache = CacheManager.getIntance().getCache(table.getName());
cache.remove(id); cache.remove(id);
} }
localDelSuccess(id, table);
afterCommit(id, table);
} }
}); });
return R.success(); return R.success();


+ 12
- 3
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleDelHandler.java View File

@@ -57,17 +57,26 @@ public class LCSingleDelHandler extends AbstractDynPageHandler {
AbstractCache cache = CacheManager.getIntance().getCache(table.getName()); AbstractCache cache = CacheManager.getIntance().getCache(table.getName());
cache.remove(id); cache.remove(id);
} }
localDelSuccess(id, table);
afterCommit(id, table);
}

@Override
public void doAfterDbRollback() {
afterRollback(id);
} }
}); });
return R.success(); 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) {


} }




Loading…
Cancel
Save