@@ -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()); | ||||
} | } | ||||
@@ -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("没有待保存的数据!"); | ||||
} | } | ||||
@@ -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("没有待保存的数据!"); | ||||
} | } | ||||
@@ -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; | ||||
@@ -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; | ||||
} | } | ||||
@@ -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); | |||||
} | } | ||||
/** | /** | ||||
@@ -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) {} | |||||
} | } |
@@ -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 { | |||||
} |
@@ -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); | |||||
} | } | ||||
} | } |
@@ -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); | ||||
@@ -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); | ||||
@@ -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); | |||||
} | |||||
} | } |
@@ -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(); | |||||
} | |||||
} |
@@ -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) { | ||||
@@ -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); | ||||
@@ -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); | ||||
@@ -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("编码不能为空!"); | ||||
} | } | ||||
@@ -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); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -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); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -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; | |||||
} | |||||
} | } | ||||
@@ -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() { | ||||
} | } | ||||
@@ -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()); | |||||
} | } | ||||
//删除 | //删除 | ||||
@@ -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() { | ||||
@@ -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(); | ||||
@@ -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) { | |||||
} | } | ||||
} | } |
@@ -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()); | ||||
} | } | ||||
@@ -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); | |||||
} | } |