Browse Source

代码调整:add即返回id,根据_status判断是否新增

4.0
郑根木 2 years ago
parent
commit
a852cbe539
27 changed files with 197 additions and 146 deletions
  1. +4
    -4
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcLoadHandler.java
  2. +1
    -1
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcSaveHandler.java
  3. +2
    -2
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java
  4. +11
    -10
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageSaveHandler.java
  5. +2
    -2
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynRetBean.java
  6. +7
    -10
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java
  7. +5
    -5
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowListener.java
  8. +0
    -15
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowLoadHandler.java
  9. +3
    -3
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowProvider.java
  10. +1
    -1
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleLoadHandler.java
  11. +0
    -6
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleSaveHandler.java
  12. +29
    -0
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowSingleService.java
  13. +38
    -0
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/flow/listcard/single/FlowTransHandler.java
  14. +0
    -1
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/mastersub/LCMsSaveHandler.java
  15. +4
    -9
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleLoadHandler.java
  16. +4
    -9
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleSaveHandler.java
  17. +2
    -2
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/base/billType/BillTypeSaveHandler.java
  18. +2
    -2
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/base/dict/DictHandler.java
  19. +2
    -3
      smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/area/AreaHandler.java
  20. +19
    -3
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/dao/AbstractEntityDao.java
  21. +2
    -2
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/impl/DefaultEntity.java
  22. +4
    -3
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompService.java
  23. +1
    -0
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractLoadHandler.java
  24. +1
    -2
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractSaveHandler.java
  25. +17
    -14
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultLoadHandler.java
  26. +34
    -35
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java
  27. +2
    -2
      smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/IWorker.java

+ 4
- 4
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcLoadHandler.java View File

@@ -1,6 +1,8 @@
package cc.smtweb.system.bpm.web.design.flow; package cc.smtweb.system.bpm.web.design.flow;


import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.db.DbEngine;
import cc.smtweb.framework.core.db.EntityDao;
import cc.smtweb.framework.core.exception.BizException; import cc.smtweb.framework.core.exception.BizException;
import cc.smtweb.framework.core.mvc.service.DefaultLoadHandler; import cc.smtweb.framework.core.mvc.service.DefaultLoadHandler;


@@ -13,17 +15,15 @@ public class ModelProcLoadHandler extends DefaultLoadHandler<ModelProc> {
} }


@Override @Override
protected ModelProc loadComp(long id) {
ModelProc bean = super.loadComp(id);
protected void afterLoad(ModelProc bean) {
bean.getData().remove("prc_content"); bean.getData().remove("prc_content");
return bean;
} }




//页面设计 - 加载页面model定义 //页面设计 - 加载页面model定义
public R loadModel() { public R loadModel() {
long id = params.readLong("id"); long id = params.readLong("id");
ModelProc bean = super.loadComp(id);
ModelProc bean = ModelProcCache.getInstance().get(id);
if (bean == null) throw new BizException("没有找到指定定义信息!id=" + id); if (bean == null) throw new BizException("没有找到指定定义信息!id=" + id);
return R.success(bean.getContent()); return R.success(bean.getContent());
} }


+ 1
- 1
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcSaveHandler.java View File

@@ -60,7 +60,7 @@ public class ModelProcSaveHandler extends DefaultSaveHandler<ModelProc> {
public R saveModel() { public R saveModel() {
long id = params.readLong("id"); long id = params.readLong("id");
String data = params.readString("data"); String data = params.readString("data");
bean = loadComp(id);
bean = ModelProcCache.getInstance().get(id);
if (StringUtils.isEmpty(data)) { if (StringUtils.isEmpty(data)) {
throw new BizException("没有待保存的数据!"); throw new BizException("没有待保存的数据!");
} }


+ 2
- 2
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java View File

@@ -75,7 +75,7 @@ public class ModelFormSaveHandler extends DefaultSaveHandler<ModelForm> {
public R saveDataset() { public R saveDataset() {
long id = params.readLong("id"); long id = params.readLong("id");
String data = params.readString("data"); String data = params.readString("data");
bean = loadComp(id);
bean = ModelFormCache.getInstance().get(id);
if (StringUtils.isEmpty(data)) { if (StringUtils.isEmpty(data)) {
throw new BizException("没有待保存的数据!"); throw new BizException("没有待保存的数据!");
} }
@@ -107,7 +107,7 @@ public class ModelFormSaveHandler extends DefaultSaveHandler<ModelForm> {
public R saveModel() { public R saveModel() {
long id = params.readLong("id"); long id = params.readLong("id");
String data = params.readString("data"); String data = params.readString("data");
bean = loadComp(id);
bean = ModelFormCache.getInstance().get(id);
if (StringUtils.isEmpty(data)) { if (StringUtils.isEmpty(data)) {
throw new BizException("没有待保存的数据!"); throw new BizException("没有待保存的数据!");
} }


+ 11
- 10
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageSaveHandler.java View File

@@ -14,6 +14,7 @@ import cc.smtweb.framework.core.db.vo.ModelField;
import cc.smtweb.framework.core.db.vo.ModelIndex; import cc.smtweb.framework.core.db.vo.ModelIndex;
import cc.smtweb.framework.core.db.vo.ModelTable; import cc.smtweb.framework.core.db.vo.ModelTable;
import cc.smtweb.framework.core.exception.BizException; import cc.smtweb.framework.core.exception.BizException;
import cc.smtweb.framework.core.mvc.service.DefaultSaveHandler;
import cc.smtweb.framework.core.mvc.service.TreeHelper; import cc.smtweb.framework.core.mvc.service.TreeHelper;
import cc.smtweb.framework.core.util.StringUtil; import cc.smtweb.framework.core.util.StringUtil;
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; import cc.smtweb.system.bpm.web.design.form.define.PageDataset;
@@ -33,10 +34,6 @@ import java.util.Map;
public class DynPageSaveHandler extends AbstractDynPageHandler { public class DynPageSaveHandler extends AbstractDynPageHandler {
private Map<String, List<DefaultEntity>> mapTreeBean = new HashMap<>(); private Map<String, List<DefaultEntity>> mapTreeBean = new HashMap<>();


protected void setNewId(DefaultEntity bean) {
bean.setEntityId(DbEngine.getInstance().nextId());
}

/** /**
* 保存指定数据集操作,入参:{pageId,dataset:"", data:{form:{},list: {total:0,rows:[]}}, filter:{}} * 保存指定数据集操作,入参:{pageId,dataset:"", data:{form:{},list: {total:0,rows:[]}}, filter:{}}
*/ */
@@ -50,6 +47,8 @@ public class DynPageSaveHandler extends AbstractDynPageHandler {
//对应的数据集定义 //对应的数据集定义
PageDataset pageDataSet = findDataset(dbName); PageDataset pageDataSet = findDataset(dbName);
if (pageDataSet == null) throw new BizException("没有找到指定的的数据集定义:" + dbName + "!"); if (pageDataSet == null) throw new BizException("没有找到指定的的数据集定义:" + dbName + "!");
ModelTable table = ModelTableCache.getInstance().get(pageDataSet.masterTable);

//读取待保存的bean //读取待保存的bean
DefaultEntity bean = readBeanFromPage(pageDataSet, data.readMap("form")); DefaultEntity bean = readBeanFromPage(pageDataSet, data.readMap("form"));
if (filter != null && bean.isNew()) {//有过滤条件,将关联的值设上 if (filter != null && bean.isNew()) {//有过滤条件,将关联的值设上
@@ -73,6 +72,7 @@ public class DynPageSaveHandler extends AbstractDynPageHandler {
afterRollback(bean); afterRollback(bean);
} }
}); });
bean.removeStatus();
return R.success(DynRetBean.createBean(bean.getData())); return R.success(DynRetBean.createBean(bean.getData()));
} }


@@ -133,6 +133,7 @@ public class DynPageSaveHandler extends AbstractDynPageHandler {
}); });
Map<String, DynRetBean> mapRet = new HashMap<>(map.size()); Map<String, DynRetBean> mapRet = new HashMap<>(map.size());
for (Map.Entry<String, DefaultEntity> entry : map.entrySet()) { for (Map.Entry<String, DefaultEntity> entry : map.entrySet()) {
entry.getValue().getData().remove(DefaultEntity.statusKey);
mapRet.put(entry.getKey(), DynRetBean.createBean(entry.getValue().getData())); mapRet.put(entry.getKey(), DynRetBean.createBean(entry.getValue().getData()));
} }
return R.success(mapRet); return R.success(mapRet);
@@ -148,16 +149,17 @@ public class DynPageSaveHandler extends AbstractDynPageHandler {
protected DefaultEntity readBeanFromPage(PageDataset pageDataSet, SwMap data) { protected DefaultEntity readBeanFromPage(PageDataset pageDataSet, SwMap data) {
ModelTable table = ModelTableCache.getInstance().get(pageDataSet.masterTable); ModelTable table = ModelTableCache.getInstance().get(pageDataSet.masterTable);
if (table == null) throw new BizException("没有找到待保存的表定义:" + pageDataSet.name); if (table == null) throw new BizException("没有找到待保存的表定义:" + pageDataSet.name);
long id = data.readLong(table.getIdField());

long id = params.readLong(table.getIdField());
boolean isNew = params.readBool(DefaultEntity.statusKey) || id <= 0L;


EntityDao<DefaultEntity> dao = DbEngine.getInstance().findDao(table.getName()); EntityDao<DefaultEntity> dao = DbEngine.getInstance().findDao(table.getName());
DefaultEntity bean; DefaultEntity bean;
if (id <= 0L) {
bean = dao.createBean();
bean.setIsNew(true);
if (isNew) {
bean = dao.createBean(us.getUserId());
//暂时不考虑list保存的情况 //暂时不考虑list保存的情况
bean.getData().putAll(data); bean.getData().putAll(data);
setNewId(bean);
if (bean.getEntityId() <= 0L) bean.setEntityId(DbEngine.getInstance().nextId());
} else { } else {
bean = dao.queryEntity(id); bean = dao.queryEntity(id);
if (bean == null) { if (bean == null) {
@@ -165,7 +167,6 @@ public class DynPageSaveHandler extends AbstractDynPageHandler {
} }
//暂时不考虑list保存的情况 //暂时不考虑list保存的情况
bean.getData().putAll(data); bean.getData().putAll(data);
bean.setIsNew(false);
} }


return bean; return bean;


+ 2
- 2
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynRetBean.java View File

@@ -23,8 +23,8 @@ public class DynRetBean {
SwMap form = (SwMap) swMap.clone(); SwMap form = (SwMap) swMap.clone();
DynRetBean bean = new DynRetBean(); DynRetBean bean = new DynRetBean();
bean.form = form; bean.form = form;
bean.form.remove("_def_table_name");
bean.form.remove("_status");
bean.form.remove(DefaultEntity.tableNameKey);
//bean.form.remove(DefaultEntity.statusKey);
return bean; return bean;
} }




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

@@ -15,14 +15,11 @@ import cc.smtweb.system.bpm.web.design.flow.ModelProc;
import cc.smtweb.system.bpm.web.design.flow.ModelProcHelper; import cc.smtweb.system.bpm.web.design.flow.ModelProcHelper;
import cc.smtweb.system.bpm.web.design.flow.define.Activity; import cc.smtweb.system.bpm.web.design.flow.define.Activity;
import cc.smtweb.system.bpm.web.design.flow.define.ProcInfo; import cc.smtweb.system.bpm.web.design.flow.define.ProcInfo;
import cc.smtweb.system.bpm.web.design.form.ModelForm;
import cc.smtweb.system.bpm.web.design.form.ModelFormHelper;
import cc.smtweb.system.bpm.web.engine.flow.entity.*; import cc.smtweb.system.bpm.web.engine.flow.entity.*;
import cc.smtweb.system.bpm.web.sys.user.dept.Dept; import cc.smtweb.system.bpm.web.sys.user.dept.Dept;
import cc.smtweb.system.bpm.web.sys.user.dept.DeptCache; import cc.smtweb.system.bpm.web.sys.user.dept.DeptCache;
import cc.smtweb.system.bpm.web.sys.user.party.Party; import cc.smtweb.system.bpm.web.sys.user.party.Party;
import cc.smtweb.system.bpm.web.sys.user.party.PartyCache; import cc.smtweb.system.bpm.web.sys.user.party.PartyCache;
import cc.smtweb.system.bpm.web.sys.user.user.UserCache;
import cc.smtweb.system.bpm.web.sys.user.userGroup.UserGroupHelper; import cc.smtweb.system.bpm.web.sys.user.userGroup.UserGroupHelper;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -184,7 +181,7 @@ public class FlowInstance {
getProcInstDao().updateEntity(procInst); getProcInstDao().updateEntity(procInst);


buildBillLog(FlowConst.Button.HANDLE.value, "-", actInst, null); buildBillLog(FlowConst.Button.HANDLE.value, "-", actInst, null);
listener.handle(actInst);
listener.afterHandle(actInst);
} }


//从页面参数加载流程实例 //从页面参数加载流程实例
@@ -593,7 +590,7 @@ public class FlowInstance {
getProcInstDao().updateEntity(procInst); getProcInstDao().updateEntity(procInst);


buildBillLog(FlowConst.Button.SUBMIT.value, "TODO", actInst, listInsertTask); buildBillLog(FlowConst.Button.SUBMIT.value, "TODO", actInst, listInsertTask);
listener.submit(actInst, listInsertTask);
listener.afterSubmit(actInst, listInsertTask);
} }




@@ -637,7 +634,7 @@ public class FlowInstance {
getProcInstDao().updateEntity(procInst); getProcInstDao().updateEntity(procInst);


buildBillLog(FlowConst.Button.DISUSE.value, "TODO", actInst, null); buildBillLog(FlowConst.Button.DISUSE.value, "TODO", actInst, null);
listener.disuse(actInst);
listener.afterDisuse(actInst);
} }


/** /**
@@ -739,7 +736,7 @@ public class FlowInstance {
new_acts.clear(); new_acts.clear();
new_acts.add(old_act); new_acts.add(old_act);
buildBillLog(FlowConst.Button.RETAKE.value, "TODO", actInst, new_acts); buildBillLog(FlowConst.Button.RETAKE.value, "TODO", actInst, new_acts);
listener.retake(actInst, new_acts);
listener.afterRetake(actInst, new_acts);
// comp.transCallback(FlowConst.Button.RETAKE.value, actInst, new_acts); // comp.transCallback(FlowConst.Button.RETAKE.value, actInst, new_acts);
} else { } else {
List<Task> new_acts = provider.findAfterTasks(actInst.getId()); List<Task> new_acts = provider.findAfterTasks(actInst.getId());
@@ -765,7 +762,7 @@ public class FlowInstance {
getProcInstDao().updateEntity(procInst); getProcInstDao().updateEntity(procInst);


buildBillLog(FlowConst.Button.RETAKE.value, "TODO", actInst, new_acts); buildBillLog(FlowConst.Button.RETAKE.value, "TODO", actInst, new_acts);
listener.retake(actInst, new_acts);
listener.afterRetake(actInst, new_acts);
} }
} }


@@ -814,7 +811,7 @@ public class FlowInstance {
getProcInstDao().updateEntity(procInst); getProcInstDao().updateEntity(procInst);


buildBillLog(FlowConst.Button.REJECT.value, "TODO", actInst, new_acts); buildBillLog(FlowConst.Button.REJECT.value, "TODO", actInst, new_acts);
listener.reject(actInst, new_acts);
listener.afterReject(actInst, new_acts);
// comp.transCallback(FlowConst.FlowOptType.REJECT.value, actInst, new_acts); // comp.transCallback(FlowConst.FlowOptType.REJECT.value, actInst, new_acts);
} }


@@ -858,7 +855,7 @@ public class FlowInstance {
make_acts.add(make_act); make_acts.add(make_act);


buildBillLog(FlowConst.Button.REJECT.value, "TODO", actInst, make_acts); buildBillLog(FlowConst.Button.REJECT.value, "TODO", actInst, make_acts);
listener.reject(actInst, make_acts);
listener.afterReject(actInst, make_acts);
} }


/** /**


+ 5
- 5
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowListener.java View File

@@ -13,14 +13,14 @@ public interface FlowListener {
//设置条件计算参数 //设置条件计算参数
default void setExprParam(SwMap param) {} default void setExprParam(SwMap param) {}
//提交 //提交
default void submit(Task srcTask, List<Task> dstTasks) {}
default void afterSubmit(Task srcTask, List<Task> dstTasks) {}
//取回 //取回
default void retake(Task srcTask, List<Task> dstTasks) {}
default void afterRetake(Task srcTask, List<Task> dstTasks) {}
//驳回 //驳回
default void reject(Task srcTask, List<Task> dstTasks) {}
default void afterReject(Task srcTask, List<Task> dstTasks) {}
//办理,签收 //办理,签收
default void handle(Task srcTask) {}
default void afterHandle(Task srcTask) {}
//作废 //作废
default void disuse(Task srcTask) {}
default void afterDisuse(Task srcTask) {}


} }

+ 0
- 15
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowLoadHandler.java View File

@@ -1,15 +0,0 @@
package cc.smtweb.system.bpm.web.engine.flow;

import cc.smtweb.framework.core.common.R;
import cc.smtweb.system.bpm.web.engine.dynPage.AbstractDynPageHandler;
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageLoadHandler;

/**
* Created by Akmm at 2022/4/21 17:53
* 保存指定数据集操作
* 入参:{pageId, data:}
*/
public class FlowLoadHandler extends DynPageLoadHandler {


}

+ 3
- 3
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowProvider.java View File

@@ -40,7 +40,7 @@ public class FlowProvider extends AbstractCompProvider {
return doGetData("a_" + taskId, () -> { return doGetData("a_" + taskId, () -> {
EntityDao<Task> bdao = DbEngine.getInstance().findDao(Task.class); EntityDao<Task> bdao = DbEngine.getInstance().findDao(Task.class);
Task bean = bdao.queryEntity(taskId); Task bean = bdao.queryEntity(taskId);
if (bean == null) throw new BizException("没有找到指定流程任务(id=" + taskId + ")!");
if (bean == null) return null;
EntityHelper.loadBeanText(bean.getTableName(), bean.getData(), null); EntityHelper.loadBeanText(bean.getTableName(), bean.getData(), null);
return bean; return bean;
}); });
@@ -98,10 +98,10 @@ public class FlowProvider extends AbstractCompProvider {


//寻找流程的制单任务 //寻找流程的制单任务
public Task findMakeTask(long bill_id) { public Task findMakeTask(long bill_id) {
return DbEngine.getInstance().findDao(Task.class).queryEntityWhere("where tsk_pri_id = ? and is_make = 1 ", bill_id);
return DbEngine.getInstance().findDao(Task.class).queryEntityWhere(" tsk_pri_id = ? and is_make = 1 ", bill_id);
} }


public List<Comment> findComment(long bill_id) { public List<Comment> findComment(long bill_id) {
return DbEngine.getInstance().findDao(Comment.class).queryWhere("where cmt_pri_id=? order by cmt_end_time");
return DbEngine.getInstance().findDao(Comment.class).queryWhere(" cmt_pri_id=? order by cmt_end_time", bill_id);
} }
} }

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

@@ -53,7 +53,7 @@ public class FlowSingleLoadHandler extends LCSingleLoadHandler implements FlowLi
PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets); PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets);


SwMap data = provider.loadData(filter, cardDataset); SwMap data = provider.loadData(filter, cardDataset);
ret.put(cardDataset.name, data);
ret.put(cardDataset.name, DynRetBean.createBean(data));


//加载流程信息 //加载流程信息
flowInstance = FlowInstance.createById(us,this, id, taskId); flowInstance = FlowInstance.createById(us,this, id, taskId);


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

@@ -18,12 +18,6 @@ public class FlowSingleSaveHandler<T extends DefaultEntity> extends LCSingleSave
protected FlowInstance flowInstance; protected FlowInstance flowInstance;


@Override @Override
public R save() {

return super.save();
}

@Override
protected T readBeanFromPage(PageDataset pageDataSet, SwMap pageData) { protected T readBeanFromPage(PageDataset pageDataSet, SwMap pageData) {
T bean = super.readBeanFromPage(pageDataSet, pageData); T bean = super.readBeanFromPage(pageDataSet, pageData);




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

@@ -1,7 +1,13 @@
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.single; package cc.smtweb.system.bpm.web.engine.model.flow.listcard.single;


import cc.smtweb.framework.core.annotation.SwBody;
import cc.smtweb.framework.core.annotation.SwService; import cc.smtweb.framework.core.annotation.SwService;
import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.common.SwMap;
import cc.smtweb.framework.core.db.impl.DefaultEntity; import cc.smtweb.framework.core.db.impl.DefaultEntity;
import cc.smtweb.framework.core.mvc.service.AbstractHandler;
import cc.smtweb.framework.core.mvc.service.IWorker;
import cc.smtweb.framework.core.session.UserSession;
import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleDelHandler; import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleDelHandler;
import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleLoadHandler; import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleLoadHandler;
import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleSaveHandler; import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleSaveHandler;
@@ -13,6 +19,13 @@ import cc.smtweb.system.bpm.web.engine.model.listcard.single.LCSingleService;
*/ */
@SwService @SwService
public class FlowSingleService extends LCSingleService { public class FlowSingleService extends LCSingleService {
public static final String TYPE_FLOW = "flow";
@Override
protected AbstractHandler createHandler(String type) {
if (TYPE_FLOW.equals(type)) return new FlowTransHandler();
return super.createHandler(type);
}

@Override @Override
protected LCSingleSaveHandler getSaveHandler() { protected LCSingleSaveHandler getSaveHandler() {
return new FlowSingleSaveHandler(); return new FlowSingleSaveHandler();
@@ -27,4 +40,20 @@ public class FlowSingleService extends LCSingleService {
protected LCSingleDelHandler getDelHandler() { protected LCSingleDelHandler getDelHandler() {
return new FlowDelHandler(); return new FlowDelHandler();
} }

protected R flowHandler(SwMap params, UserSession us, IWorker<FlowTransHandler> worker) {
try {
FlowTransHandler handler = (FlowTransHandler)getHandler(params, us, TYPE_FLOW);
return worker.doWork(handler);
} catch (Exception e) {
return R.error("操作失败!", e);
}
}
public R submit(@SwBody SwMap params, UserSession us) {
return flowHandler(params, us, FlowTransHandler::submit);
}

public R retake(@SwBody SwMap params, UserSession us) {
return flowHandler(params, us, FlowTransHandler::submit);
}
} }

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

@@ -0,0 +1,38 @@
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.single;

import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.common.SwMap;
import cc.smtweb.system.bpm.web.engine.dynPage.AbstractDynPageHandler;
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.flow.entity.Task;

import java.util.List;

/**
* Created by Akmm at 2022-09-01 15:03
* 流程流转
*/
public class FlowTransHandler extends AbstractDynPageHandler implements FlowListener{
//流程id
protected long billId;
//任务id
protected long taskId;
protected FlowInstance flowInstance;

private void loadFlowInstance() {
if (flowInstance == null) {
billId = params.readLong("id");
taskId = params.readLong("taskId");
flowInstance = FlowInstance.createById(us, this, billId, taskId);
}
}

public R submit() {
loadFlowInstance();
flowInstance.submit();
return R.success();
}

}

+ 0
- 1
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/mastersub/LCMsSaveHandler.java View File

@@ -122,7 +122,6 @@ public class LCMsSaveHandler extends LCSingleSaveHandler {
bean.setIsNew(true); bean.setIsNew(true);
//暂时不考虑list保存的情况 //暂时不考虑list保存的情况
bean.getData().putAll(data); bean.getData().putAll(data);
setNewId(bean);
} else { } else {
bean = dao.queryEntity(id); bean = dao.queryEntity(id);
if (bean == null) { if (bean == null) {


+ 4
- 9
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleLoadHandler.java View File

@@ -19,14 +19,9 @@ public class LCSingleLoadHandler extends AbstractDynPageHandler {
SwMap ret = new SwMap(); SwMap ret = new SwMap();
//返回的数据,以dataset.name为key,查出的结果(bean或list)为value //返回的数据,以dataset.name为key,查出的结果(bean或list)为value
PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets); PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets);
SwMap data;
//懒加载,给个空对象
if (cardDataset.lazy) {
data = new SwMap();
} else {
data = DynPageHelper.createBean(cardDataset);
}
ret.put(cardDataset.name, data);
SwMap data = DynPageHelper.createBean(cardDataset);

ret.put(cardDataset.name, DynRetBean.createBean(data));


afterAdd(ret, data); afterAdd(ret, data);
return R.success(ret); return R.success(ret);
@@ -49,7 +44,7 @@ public class LCSingleLoadHandler extends AbstractDynPageHandler {
PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets); PageDataset cardDataset = LCSingleHelper.findCardDataset(datasets);


SwMap data = provider.loadData(filter, cardDataset); SwMap data = provider.loadData(filter, cardDataset);
ret.put(cardDataset.name, data);
ret.put(cardDataset.name, DynRetBean.createBean(data));


afterLoad(ret, data); afterLoad(ret, data);
return R.success(ret); return R.success(ret);


+ 4
- 9
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/model/listcard/single/LCSingleSaveHandler.java View File

@@ -35,10 +35,6 @@ import java.util.Map;
public class LCSingleSaveHandler<T extends DefaultEntity> extends AbstractDynPageHandler { public class LCSingleSaveHandler<T extends DefaultEntity> extends AbstractDynPageHandler {
private Map<String, List<T>> mapTreeBean = new HashMap<>(); private Map<String, List<T>> mapTreeBean = new HashMap<>();


protected void setNewId(T bean) {
bean.setEntityId(DbEngine.getInstance().nextId());
}

/** /**
* 保存指定数据集操作,入参:{pageId,dataset:"", data:{form:{},list: {total:0,rows:[]}}, filter:{}} * 保存指定数据集操作,入参:{pageId,dataset:"", data:{form:{},list: {total:0,rows:[]}}, filter:{}}
*/ */
@@ -74,6 +70,7 @@ public class LCSingleSaveHandler<T extends DefaultEntity> extends AbstractDynPag
afterRollback(bean); afterRollback(bean);
} }
}); });
bean.removeStatus();
return R.success(LCSingleHelper.buildRetData(pageDataSet.name, bean.getData())); return R.success(LCSingleHelper.buildRetData(pageDataSet.name, bean.getData()));
} }


@@ -93,17 +90,15 @@ public class LCSingleSaveHandler<T extends DefaultEntity> extends AbstractDynPag
data = data.readMap("form"); data = data.readMap("form");
if (data == null) throw new BizException("没有找到待保存的表数据:" + pageDataSet.name); if (data == null) throw new BizException("没有找到待保存的表数据:" + pageDataSet.name);


long id = data.readLong(table.getIdField());

boolean isNew = data.readBool(DefaultEntity.statusKey);
EntityDao<T> dao = DbEngine.getInstance().findDao(table.getName()); EntityDao<T> dao = DbEngine.getInstance().findDao(table.getName());
T bean; T bean;
if (id <= 0L) {
if (isNew) {
bean = dao.createBean(); bean = dao.createBean();
bean.setIsNew(true);
//暂时不考虑list保存的情况 //暂时不考虑list保存的情况
bean.getData().putAll(data); bean.getData().putAll(data);
setNewId(bean);
} else { } else {
long id = data.readLong(table.getIdField());
bean = dao.queryEntity(id); bean = dao.queryEntity(id);
if (bean == null) { if (bean == null) {
throw new BizException("没有找到待保存的记录:" + table.getName() + "." + id); throw new BizException("没有找到待保存的记录:" + table.getName() + "." + id);


+ 2
- 2
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/base/billType/BillTypeSaveHandler.java View File

@@ -9,9 +9,9 @@ import org.apache.commons.lang3.StringUtils;
* Created by Akmm at 2022-08-25 19:11 * Created by Akmm at 2022-08-25 19:11
*/ */
public class BillTypeSaveHandler extends LCSingleSaveHandler<BillType> { public class BillTypeSaveHandler extends LCSingleSaveHandler<BillType> {
//id=code
@Override @Override
protected void setNewId(BillType bean) {
protected void checkBean(BillType bean) {
super.checkBean(bean);
if (StringUtils.isEmpty(bean.getCode())) { if (StringUtils.isEmpty(bean.getCode())) {
throw new BizException("编码不能为空!"); throw new BizException("编码不能为空!");
} }


+ 2
- 2
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/base/dict/DictHandler.java View File

@@ -13,7 +13,8 @@ public class DictHandler {
static class DictSaveHandler extends DynPageSaveHandler { static class DictSaveHandler extends DynPageSaveHandler {


@Override @Override
protected void setNewId(DefaultEntity bean) {
protected void checkBean(DefaultEntity bean) {
super.checkBean(bean);
//字典 id用 类型id+编码 //字典 id用 类型id+编码
if (bean instanceof Dict) { if (bean instanceof Dict) {
Dict dict = (Dict) bean; Dict dict = (Dict) bean;
@@ -26,7 +27,6 @@ public class DictHandler {
dictType.setEntityId(NumberUtil.getLongIgnoreErr(dictType.getCode())); dictType.setEntityId(NumberUtil.getLongIgnoreErr(dictType.getCode()));
return; return;
} }
super.setNewId(bean);
} }
} }
} }

+ 2
- 3
smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/area/AreaHandler.java View File

@@ -14,12 +14,11 @@ import cc.smtweb.system.bpm.web.engine.dynPage.DynPageSaveHandler;
public class AreaHandler { public class AreaHandler {
static class AreaSaveHandler extends DynPageSaveHandler { static class AreaSaveHandler extends DynPageSaveHandler {
@Override @Override
protected void setNewId(DefaultEntity bean) {
protected void checkBean(DefaultEntity bean) {
super.checkBean(bean);
if (bean instanceof Area) { if (bean instanceof Area) {
Area area = (Area) bean; Area area = (Area) bean;
area.setEntityId(NumberUtil.getLongIgnoreErr(area.getCode())); area.setEntityId(NumberUtil.getLongIgnoreErr(area.getCode()));
} else {
super.setNewId(bean);
} }
} }
} }


+ 19
- 3
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/dao/AbstractEntityDao.java View File

@@ -5,6 +5,7 @@ import cc.smtweb.framework.core.annotation.SwColumnForeign;
import cc.smtweb.framework.core.annotation.SwTable; import cc.smtweb.framework.core.annotation.SwTable;
import cc.smtweb.framework.core.cache.CacheManager; import cc.smtweb.framework.core.cache.CacheManager;
import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.common.SwEnum;
import cc.smtweb.framework.core.db.DbEngine;
import cc.smtweb.framework.core.exception.SwException; import cc.smtweb.framework.core.exception.SwException;
import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.cache.ModelTableCache;
import cc.smtweb.framework.core.db.impl.DefaultEntity; import cc.smtweb.framework.core.db.impl.DefaultEntity;
@@ -66,8 +67,8 @@ public abstract class AbstractEntityDao<T> {


tableName = table.value(); tableName = table.value();
modelTable = ModelTableCache.getInstance().getByName(tableName); modelTable = ModelTableCache.getInstance().getByName(tableName);
if(null == modelTable){
log.error("未找到缓存表结构:"+tableName);
if (null == modelTable) {
log.error("未找到缓存表结构:" + tableName);
} }
if (DefaultEntity.class.isAssignableFrom(type)) { if (DefaultEntity.class.isAssignableFrom(type)) {
for (ModelField field : modelTable.getFields()) { for (ModelField field : modelTable.getFields()) {
@@ -292,7 +293,7 @@ public abstract class AbstractEntityDao<T> {


private EntityColumn findIdColumn() { private EntityColumn findIdColumn() {
ModelField field = modelTable.findIdField(); ModelField field = modelTable.findIdField();
EntityColumn idColumn = field != null ? columns.get(field.getName()) : null;
EntityColumn idColumn = field != null ? columns.get(field.getName()): null;
if (idColumn == null) { if (idColumn == null) {
throw new DbException(tableName + " not define id column"); throw new DbException(tableName + " not define id column");
} }
@@ -402,11 +403,26 @@ public abstract class AbstractEntityDao<T> {
DefaultEntity b = (DefaultEntity) bean; DefaultEntity b = (DefaultEntity) bean;
b.init(); b.init();
b.setTableName(this.tableName); b.setTableName(this.tableName);
b.setIsNew(true);
} }
return bean; return bean;
} catch (Exception e) { } catch (Exception e) {
throw new SwException(e); throw new SwException(e);
} }
} }

public T createBean(long userId) {
T b = createBean();
if (b instanceof DefaultEntity) {
DefaultEntity bean = (DefaultEntity) b;
ModelTable table = ModelTableCache.getInstance().getByName(tableName);
ModelField field = table.findFieldByType(SwEnum.FieldType.CREATE_USER.value);
if (field != null) bean.put(field.getName(), userId);
field = table.findFieldByType(SwEnum.FieldType.UPDATE_USER.value);
if (field != null) bean.put(field.getName(), userId);
}
return b;

}
} }



+ 2
- 2
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/db/impl/DefaultEntity.java View File

@@ -16,8 +16,8 @@ import java.io.Serializable;
*/ */
public class DefaultEntity extends BaseBean implements Serializable, Cloneable { public class DefaultEntity extends BaseBean implements Serializable, Cloneable {
//表名 //表名
private final static String tableNameKey = "_def_table_name";
private final static String statusKey = "_status";
public final static String tableNameKey = "_def_table_name";
public final static String statusKey = "_status";


public DefaultEntity() { public DefaultEntity() {
} }


+ 4
- 3
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompService.java View File

@@ -2,6 +2,7 @@ package cc.smtweb.framework.core.mvc.service;


import cc.smtweb.framework.core.annotation.SwBody; import cc.smtweb.framework.core.annotation.SwBody;
import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.db.impl.DefaultEntity;
import cc.smtweb.framework.core.exception.BizException; import cc.smtweb.framework.core.exception.BizException;
import cc.smtweb.framework.core.exception.SwException; import cc.smtweb.framework.core.exception.SwException;
import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.common.SwMap;
@@ -41,17 +42,17 @@ public abstract class AbstractCompService {


//保存 //保存
public R save(@SwBody SwMap params, UserSession us) { public R save(@SwBody SwMap params, UserSession us) {
return pageHandler(params, us, TYPE_SAVE, handler -> ((AbstractSaveHandler)handler).save());
return pageHandler(params, us, TYPE_SAVE, handler -> ((DefaultSaveHandler)handler).save());
} }


//树,换爹 //树,换爹
public R trcp(@SwBody SwMap params, UserSession us) { public R trcp(@SwBody SwMap params, UserSession us) {
return pageHandler(params, us, TYPE_SAVE, handler -> ((AbstractSaveHandler)handler).changeParent());
return pageHandler(params, us, TYPE_SAVE, handler -> ((DefaultSaveHandler)handler).changeParent());
} }


//读取 //读取
public R load(@SwBody SwMap params, UserSession us) { public R load(@SwBody SwMap params, UserSession us) {
return pageHandler(params, us, TYPE_LOAD, handler -> ((AbstractLoadHandler)handler).load());
return pageHandler(params, us, TYPE_LOAD, handler -> ((DefaultLoadHandler)handler).load());
} }


//删除 //删除


+ 1
- 0
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractLoadHandler.java View File

@@ -5,6 +5,7 @@ import cc.smtweb.framework.core.common.R;
/** /**
* Created by Akmm at 2022/3/2 19:44 * Created by Akmm at 2022/3/2 19:44
*/ */
@Deprecated
public abstract class AbstractLoadHandler<T> extends AbstractHandler { public abstract class AbstractLoadHandler<T> extends AbstractHandler {


public R load() { public R load() {


+ 1
- 2
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractSaveHandler.java View File

@@ -10,12 +10,11 @@ import lombok.extern.slf4j.Slf4j;
* 保存 * 保存
*/ */
@Slf4j @Slf4j
@Deprecated
public abstract class AbstractSaveHandler<T> extends AbstractHandler { public abstract class AbstractSaveHandler<T> extends AbstractHandler {
protected T bean; protected T bean;
protected boolean isNew; protected boolean isNew;




public R save() { public R save() {
long id = readId(); long id = readId();




+ 17
- 14
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultLoadHandler.java View File

@@ -1,5 +1,6 @@
package cc.smtweb.framework.core.mvc.service; package cc.smtweb.framework.core.mvc.service;


import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.common.SwEnum;
import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.DbEngine;
import cc.smtweb.framework.core.db.EntityDao; import cc.smtweb.framework.core.db.EntityDao;
@@ -12,25 +13,27 @@ import cc.smtweb.framework.core.db.vo.ModelTable;
* Created by Akmm at 2022/3/2 19:52 * Created by Akmm at 2022/3/2 19:52
* 默认实体实现 * 默认实体实现
*/ */
public class DefaultLoadHandler<T extends DefaultEntity> extends AbstractLoadHandler<T> {
public class DefaultLoadHandler<T extends DefaultEntity> extends AbstractHandler {
protected String tableName; protected String tableName;


public DefaultLoadHandler(String tableName) {
this.tableName = tableName;
public R load() {
long id = params.readLong("id", 0L);
T bean;
final EntityDao<T> dao = DbEngine.getInstance().findDao(tableName);
if (id <= 0L) {
bean = dao.createBean(us.getUserId());
bean.setEntityId(DbEngine.getInstance().nextId());
} else {
bean = dao.queryEntity(id);
}
afterLoad(bean);
return R.success(bean);
} }


@Override
protected T createComp() {
final EntityDao<T> dao = DbEngine.getInstance().findDao(tableName);
T bean = dao.createBean();
ModelTable table = ModelTableCache.getInstance().getByName(tableName);
ModelField field = table.findFieldByType(SwEnum.FieldType.CREATE_USER.value);
if (field != null) bean.put(field.getName(), us.getUserId());
return bean;
public DefaultLoadHandler(String tableName) {
this.tableName = tableName;
} }


@Override
protected T loadComp(long id) {
return new DefaultProvider<T>(tableName).getBean(id);
protected void afterLoad(T bean) {
} }
} }

+ 34
- 35
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java View File

@@ -22,8 +22,9 @@ import java.util.List;
* Created by Akmm at 2022/3/2 19:52 * Created by Akmm at 2022/3/2 19:52
* 默认实体实现 * 默认实体实现
*/ */
public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractSaveHandler<T> {
public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractHandler{
protected String tableName; protected String tableName;
protected T bean;


private List<T> listTreeBean = null; private List<T> listTreeBean = null;


@@ -31,41 +32,44 @@ public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractSaveHan
this.tableName = tableName; this.tableName = tableName;
} }


@Override
protected T createComp() {
final EntityDao<T> dao = DbEngine.getInstance().findDao(tableName);
T bean = dao.createBean();
ModelTable table = ModelTableCache.getInstance().getByName(tableName);
ModelField field = table.findFieldByType(SwEnum.FieldType.CREATE_USER.value);
if (field != null) bean.put(field.getName(), us.getUserId());
field = table.findFieldByType(SwEnum.FieldType.UPDATE_USER.value);
if (field != null) bean.put(field.getName(), us.getUserId());
return bean;
}

@Override
protected long readId() {
public R save() {
ModelTable table = ModelTableCache.getInstance().getByName(tableName); ModelTable table = ModelTableCache.getInstance().getByName(tableName);
return params.readLong(table.getIdField());
}
long id = params.readLong(table.getIdField());
boolean isNew = params.readBool(DefaultEntity.statusKey) || id <= 0L;
final EntityDao<T> dao = DbEngine.getInstance().findDao(tableName);
if (isNew) {
bean = dao.createBean(us.getUserId());
} else {
bean = dao.queryEntity(id);
}
readFromPage();
if (bean.getEntityId() <= 0L) bean.setEntityId(DbEngine.getInstance().nextId());
checkValid();
DbEngine.getInstance().doTrans(new AbsDbWorker() {
@Override
public void work(){
saveDb();
}


@Override
protected void setNewId() {
bean.setEntityId(DbEngine.getInstance().nextId());
}
@Override
public void doAfterDbCommit(){
saveSuccess();
}


@Override
protected T loadComp(long id) {
return new DefaultProvider<T>(tableName).getBean(id);
@Override
public void doAfterDbRollback(){
saveFailed();
}
});
bean.removeStatus();
return R.success(bean);
} }


@Override
protected void readFromPage() { protected void readFromPage() {
bean.readFromMap(params); bean.readFromMap(params);
bean.setIsNew(isNew);
} }


@Override
protected void checkValid() { protected void checkValid() {
ModelTable table = ModelTableCache.getInstance().getByName(tableName); ModelTable table = ModelTableCache.getInstance().getByName(tableName);
for (ModelField field : table.getFields()) { for (ModelField field : table.getFields()) {
@@ -85,10 +89,9 @@ public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractSaveHan
} }
} }


@Override
protected void saveDb() { protected void saveDb() {
EntityDao<T> dao = DbEngine.getInstance().findDao(tableName); EntityDao<T> dao = DbEngine.getInstance().findDao(tableName);
if (isNew) {
if (bean.isNew()) {
insertBean(dao); insertBean(dao);
} else { } else {
ModelTable table = ModelTableCache.getInstance().getByName(tableName); ModelTable table = ModelTableCache.getInstance().getByName(tableName);
@@ -113,9 +116,7 @@ public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractSaveHan
} }




@Override
protected void saveSuccess() { protected void saveSuccess() {
super.saveSuccess();
ModelTable table = ModelTableCache.getInstance().getByName(tableName); ModelTable table = ModelTableCache.getInstance().getByName(tableName);
if (table.isNeedCache()) { if (table.isNeedCache()) {
AbstractCache<T> cache = CacheManager.getIntance().getCache(tableName); AbstractCache<T> cache = CacheManager.getIntance().getCache(tableName);
@@ -130,9 +131,7 @@ public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractSaveHan
} }
} }


@Override
protected void saveFailed() { protected void saveFailed() {
super.saveFailed();
ModelTable table = ModelTableCache.getInstance().getByName(tableName); ModelTable table = ModelTableCache.getInstance().getByName(tableName);
if (table.isNeedCache()) { if (table.isNeedCache()) {
AbstractCache<T> cache = CacheManager.getIntance().getCache(tableName); AbstractCache<T> cache = CacheManager.getIntance().getCache(tableName);
@@ -148,11 +147,12 @@ public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractSaveHan
long id = params.readLong("id"); long id = params.readLong("id");
long parentId = params.readLong("parent_id"); long parentId = params.readLong("parent_id");


final EntityDao<T> dao = DbEngine.getInstance().findDao(tableName);
AbstractCache<T> cache = CacheManager.getIntance().getCache(tableName); AbstractCache<T> cache = CacheManager.getIntance().getCache(tableName);
if (table.isNeedCache()) { if (table.isNeedCache()) {
bean = cache.get(id); bean = cache.get(id);
} else { } else {
bean = loadComp(id);
bean = dao.queryEntity(id);
} }
TreeHelper.getTreeHelper(tableName).checkParent(bean); TreeHelper.getTreeHelper(tableName).checkParent(bean);
//不考虑没有级次码等情况,这个在表设计时校验 //不考虑没有级次码等情况,这个在表设计时校验
@@ -162,7 +162,6 @@ public class DefaultSaveHandler<T extends DefaultEntity> extends AbstractSaveHan
DbEngine.getInstance().doTrans(new AbsDbWorker() { DbEngine.getInstance().doTrans(new AbsDbWorker() {
@Override @Override
public void work() { public void work() {
EntityDao dao = DbEngine.getInstance().findDao(tableName);
listTreeBean = TreeHelper.getTreeHelper(tableName).resetTreeLevel(bean); listTreeBean = TreeHelper.getTreeHelper(tableName).resetTreeLevel(bean);
dao.updateEntity(bean, fieldParentId.getName()); dao.updateEntity(bean, fieldParentId.getName());
} }


+ 2
- 2
smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/IWorker.java View File

@@ -6,6 +6,6 @@ import cc.smtweb.framework.core.common.R;
* Created by Akmm at 2022/3/2 19:01 * Created by Akmm at 2022/3/2 19:01
* 所有handler的接口 * 所有handler的接口
*/ */
public interface IWorker {
R doWork(AbstractHandler handler);
public interface IWorker<T extends AbstractHandler> {
R doWork(T handler);
} }

Loading…
Cancel
Save