package com.product.datasource.utils;
|
|
import cn.hutool.core.util.ArrayUtil;
|
import com.product.common.utils.StringUtils;
|
import com.product.core.entity.FieldMetaEntity;
|
|
import java.util.List;
|
|
/**
|
* @Author cheng
|
* @Date 2022/7/6 17:30
|
* @Desc
|
*/
|
public class BatchUtil {
|
public static StringBuilder getInsertSql(FieldMetaEntity fieldMetaEntity) {
|
return getInsertSql(fieldMetaEntity, ArrayUtil.map(fieldMetaEntity.getFields(), String::valueOf), null);
|
}
|
|
public static StringBuilder getInsertSql(FieldMetaEntity fieldMetaEntity, List<String> fields) {
|
return getInsertSql(fieldMetaEntity, fields, null);
|
}
|
|
public static StringBuilder getInsertSql(FieldMetaEntity fieldMetaEntity, List<String> fields, String automaticallyPrimaryField) {
|
if (fieldMetaEntity != null && !ArrayUtil.isEmpty(fieldMetaEntity.getFields())) {
|
int index = StringUtils.isEmpty(automaticallyPrimaryField) ? -1 : fields.indexOf(automaticallyPrimaryField.toLowerCase());
|
if (!StringUtils.isEmpty(automaticallyPrimaryField) && index == -1) {
|
fields.add(automaticallyPrimaryField);
|
index = fields.size() - 1;
|
}
|
StringBuilder sql = new StringBuilder(" insert into ").append(fieldMetaEntity.getTableName()[0]).append(" ( ");
|
for (int i = 0; i < fields.size(); i++) {
|
String field = fields.get(i);
|
if (i > 0) {
|
sql.append(",");
|
}
|
sql.append(field);
|
}
|
sql.append(") values (");
|
for (int i = 0; i < fields.size(); i++) {
|
if (i > 0) {
|
sql.append(",");
|
}
|
if (index > -1 && i == index) {
|
//mes特殊处理 调用mes数据库函数生成自增主键
|
String o = fieldMetaEntity.getTableName()[0].toString();
|
if ("T_WIP_DETAIL".equalsIgnoreCase(o)) {
|
o = "WIP_DETAIL";
|
}
|
sql.append("getnewid('").append(o).append("')");
|
} else {
|
sql.append(" ? ");
|
}
|
}
|
sql.append(" ) ");
|
if (index > -1) {
|
fields.remove(index);
|
}
|
return sql;
|
}
|
return null;
|
}
|
|
public static StringBuilder getUpdateSql(FieldMetaEntity fieldMetaEntity, String filter) {
|
if (fieldMetaEntity != null && !ArrayUtil.isEmpty(fieldMetaEntity.getFields())) {
|
StringBuilder sql = new StringBuilder(" UPDATE ").append(fieldMetaEntity.getTableName()[0]).append(" SET ");
|
Object[] fields = fieldMetaEntity.getFields();
|
for (int i = 0; i < fields.length; i++) {
|
if (i > 0) {
|
sql.append(",");
|
}
|
sql.append(fields[i]).append("= ?");
|
|
}
|
sql.append(" WHERE (").append(filter).append(") ");
|
return sql;
|
}
|
return null;
|
}
|
|
|
}
|