Merge remote-tracking branch 'origin/master'
commit
cf972cef0c
@ -0,0 +1,16 @@
|
||||
package org.dromara.common.constant;
|
||||
|
||||
/**
|
||||
* 数据库常量信息
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface DatabaseConstants {
|
||||
|
||||
/**
|
||||
* 生产计划表名前缀
|
||||
*/
|
||||
String TABLE_NAME_PROD_PLAN_INFO_PREFIX = "prod_plan_info";
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package org.dromara.common.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.InsertProvider;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.common.provider.DynamicBaseSqlProvider;
|
||||
|
||||
@Mapper
|
||||
public interface DynamicBaseSqlMapper<T> extends BaseMapper<T> {
|
||||
// 自定义动态插入方法,接收表名和对象作为参数
|
||||
@InsertProvider(type = DynamicBaseSqlProvider.class, method = "dynamicInsert")
|
||||
int dynamicInsert(@Param("tableName") String tableName, @Param("tableNamePrefix") String tableNamePrefix,@Param("entity") T entity);
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package org.dromara.common.provider;
|
||||
|
||||
import org.apache.ibatis.jdbc.SQL;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public class DynamicBaseSqlProvider {
|
||||
public String dynamicInsert(Map<String, Object> params) {
|
||||
String tableName = (String) params.get("tableName");
|
||||
// Object entity = params.get("entity");
|
||||
String tableNamePrefix = (String) params.get("tableNamePrefix");
|
||||
|
||||
SQL sql = new SQL();
|
||||
sql.INSERT_INTO(tableName);
|
||||
switch(tableNamePrefix){
|
||||
case "prod_plan_info":
|
||||
sql.INTO_COLUMNS("plan_code", "material_id", "material_bom_id","plan_amount","dispatch_amount");
|
||||
sql.INTO_VALUES("#{entity.planCode}", "#{entity.materialId}", "#{entity.materialBomId}", "#{entity.planAmount}", "#{entity.dispatchAmount}");
|
||||
break;
|
||||
}
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
|
||||
public String selectByDynamicTableName(Map<String, Object> params) {
|
||||
String tableName = (String) params.get("tableName");
|
||||
return new SQL() {{
|
||||
SELECT("*");
|
||||
FROM(tableName);
|
||||
}}.toString();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue