作者:Eddy  历史版本:1  最后编辑:龚清  更新时间:2024-11-20 15:41

适用版本:v3.3.6+;
目前仅提供:数据获取、数据保存接口说明;

dependency

Local版本

<dependency>
    <groupId>com.lc.ibps.provider.base</groupId>
    <artifactId>ibps-provider-form</artifactId>
</dependency>

FeignClient版本

<dependency>
    <groupId>com.lc.ibps.provider.base</groupId>
    <artifactId>ibps-provider-form-client</artifactId>
</dependency>

配置说明

添加了相关依赖后直接调用即可,以上两个依赖二选一。

API说明

获取数据、保存数据
接口:com.lc.ibps.form.api.IBoInstanceService
实现:com.lc.ibps.form.provider.BoInstanceProvider


    /**
     * 通过BODef的code初始化DataObject对象,并将数据data装载到对象中
     * <pre>
     * 初始化时会自动补齐所有属性。
     * 比如BODef有name属性,而传入的data数据中没有name的值,则会补齐name并将值设置为空
     * </pre>
     * @param code bo编码
     * @param data bo实例数据,其中bo、subBo、sonBo是bo编码,bm、mc是bo的编码
     *            <pre>
     *                     json-->{
     *                             bo:{
     *                                      bm:'zs', mc:'张三', 
     *                                      subBo:[{bm:'zxs', mc:'张小三'}],
     *                                      sonBo:[{bm:'zxxs', mc:'张小小三'}]
     *                                 }
     *                             }
     *            </pre>
     * @return
     */
    APIResult<DataObjectModel> createDataObject(DataObjectVo dataObjectVo);

    /**
     * 根据保存模式、实例ID、bo编码 获取实例数据
     *
     * @param saveMode 数据保存模式 {@link DataSaveMode}
     * @param bizId 业务id
     * @param code bo编码
     * @return
     */
    APIResult<DataObjectModel> getDataObject(String saveMode, String bizId, String boCode, Integer boVersion);

    /**
     * 保存实例
     * 需要 分布式事务
     * @param saveMode  数据保存模式 {@link DataSaveMode}
     * @param dataObject 数据对象
     * @return
     */
    APIResult<com.lc.ibps.base.bo.model.BoResultVo> save(DataObjectModel dataObject);
}

使用示例

package com.lc.ibps.skeleton.provider;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.lc.ibps.base.bo.constants.DataSaveMode;
import com.lc.ibps.base.bo.model.BoResultVo;
import com.lc.ibps.base.bo.model.DataObjectModel;
import com.lc.ibps.base.bo.persistence.vo.DataObjectVo;
import com.lc.ibps.cloud.entity.APIResult;
import com.lc.ibps.form.api.IBoInstanceService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

/**
 * 基础模型(业务对象)
 *
 * <pre> 
 * 构建组:ibps-provider-skeleton
 * 作者:zhongjh
 * 邮箱:zjh20140614@163.com
 * 日期:2021年1月4日-上午9:23:40
 * 版权:广州流辰信息技术有限公司版权所有
 * </pre>
 */
@Api(tags = "基础模型", value = "基础模型")
@RestController
@RequestMapping(value = "/form/action")
public class FormActionProvider {

    @Resource
    private IBoInstanceService boInstance;

    //获取数据
    @ApiOperation(value = "get", notes = "get")
    @RequestMapping(value = "/get",method = RequestMethod.GET)
    public String get() {
        APIResult<DataObjectModel> result = boInstance.getDataObject(DataSaveMode.TABLE, "2", "t_test", 1);
        return result.toJsonString();
    }

    //保存数据
    @ApiOperation(value = "save", notes = "save")
    @RequestMapping(value = "/save",method = RequestMethod.GET)
    public String save() {
        DataObjectVo dataObjectVo = new DataObjectVo();
        dataObjectVo.setCode("t_test");
        dataObjectVo.setVersion(1);
        dataObjectVo.setData("{\"money\":\"922337203685477580\",\"name\":\"jim\",\"id\":\"2\"}");
        APIResult<DataObjectModel> dataObjectModel = boInstance.createDataObject(dataObjectVo);
        DataObjectModel dataObject = new DataObjectModel();
        if(dataObjectModel.isSuccess()) {
            dataObject = dataObjectModel.getData();
        }

        dataObject.setFormOptions(null);
        dataObject.setSaveMode(DataSaveMode.TABLE);

        APIResult<BoResultVo> result = boInstance.save(dataObject);
        return result.toJsonString();
    }

}