Skip to content

后端示例-开发

1. 使用代码生成器生成 Entity 和 Mapper

1.1 当前项目模块下的CodeGenOfficeAuto

1.2 运行CodeGenOfficeAuto

1.3 输入数据库业务表名称

2. 只需要自定义业务钩子,非手动开发的前端页面时

2.1 新建一个接口类,继承自对应业务的接口BasicOfficeAutoService

java
package jpwise.service.test;

import jpwise.base.enums.FlowRecordEnum;
import jpwise.base.service.BasicDemoService;
import jpwise.exception.BusinessException;
import jpwise.exception.DataException;
import jpwise.model.flow.FlowTaskEntity;
import jpwise.engine.model.flowengine.FlowModel;
import jpwise.base.entity.TestFlowMixLyhEntity;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author yh_liu
 * @version v1.0.0
 * @since 2025/01/15
 */
public interface TestFlowMixLyhService extends BasicDemoService<TestFlowMixLyhEntity> {

    @Override
    Map<String, Object> beforeSave(Map<String, Object> dic, Boolean isNew) throws BusinessException, DataException;

    @Override
    Map<String, Object> afterSave(Map<String, Object> dic, Boolean isNew) throws Exception;

    @Override
    List<Map<String, Object>> beforeSaveSubTable(Map<String, Object> dic, Class<?> subTableEntity, List<Map<String, Object>> subTable) throws BusinessException;

    @Override
    List<Map<String, Object>> afterSaveSubTable(Map<String, Object> dic, Class<?> subTableEntity, List<Map<String, Object>> subTable) throws BusinessException;

    @Override
    void beforeDelete(Collection<?> list) throws BusinessException;

    @Override
    void afterDelete(Collection<?> list) throws BusinessException, DataException;

    @Override
    Map<String, Object> beforeTaskExec(Map<String, Object> dic, boolean isNew, FlowTaskEntity flowTask,
                                       FlowModel flowModel, FlowRecordEnum flowRecordEnum);

    @Override
    Map<String, Object> afterTaskExec(Map<String, Object> dic, boolean isNew, FlowTaskEntity flowTask,
                                      FlowModel flowModel, FlowRecordEnum flowRecordEnum);

    @Override
    void onFlowEnd(Map<String, Object> dic, FlowTaskEntity flowTask, FlowModel flowModel, FlowRecordEnum
            flowRecordEnum) throws BusinessException, DataException;
}

2.2 实现自定义接口实现,继承BasicOfficeAutoServiceImpl

java
package jpwise.service.test;

import jpwise.base.enums.FlowRecordEnum;
import jpwise.base.service.BasicDemoService;
import jpwise.exception.BusinessException;
import jpwise.exception.DataException;
import jpwise.model.flow.FlowTaskEntity;
import jpwise.engine.model.flowengine.FlowModel;
import jpwise.base.entity.TestFlowMixLyhEntity;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author yh_liu
 * @version v1.0.0
 * @since 2025/01/15
 */
public interface TestFlowMixLyhService extends BasicDemoService<TestFlowMixLyhEntity> {

    @Override
    Map<String, Object> beforeSave(Map<String, Object> dic, Boolean isNew) throws BusinessException, DataException;

    @Override
    Map<String, Object> afterSave(Map<String, Object> dic, Boolean isNew) throws Exception;

    @Override
    List<Map<String, Object>> beforeSaveSubTable(Map<String, Object> dic, Class<?> subTableEntity, List<Map<String, Object>> subTable) throws BusinessException;

    @Override
    List<Map<String, Object>> afterSaveSubTable(Map<String, Object> dic, Class<?> subTableEntity, List<Map<String, Object>> subTable) throws BusinessException;

    @Override
    void beforeDelete(Collection<?> list) throws BusinessException;

    @Override
    void afterDelete(Collection<?> list) throws BusinessException, DataException;

    @Override
    Map<String, Object> beforeTaskExec(Map<String, Object> dic, boolean isNew, FlowTaskEntity flowTask,
                                       FlowModel flowModel, FlowRecordEnum flowRecordEnum);

    @Override
    Map<String, Object> afterTaskExec(Map<String, Object> dic, boolean isNew, FlowTaskEntity flowTask,
                                      FlowModel flowModel, FlowRecordEnum flowRecordEnum);

    @Override
    void onFlowEnd(Map<String, Object> dic, FlowTaskEntity flowTask, FlowModel flowModel, FlowRecordEnum
            flowRecordEnum) throws BusinessException, DataException;
}

3. 手动开发的前端页面时

3.1 新建一个 xxxController,继承自对应业务的接口BasicOfficeAutoController<xxxEntity>

3.2 实现自定义接口,可直接在 Controller 中实现

4. 数据流向示意图

数据流向示意图