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 fields) { return getInsertSql(fieldMetaEntity, fields, null); } public static StringBuilder getInsertSql(FieldMetaEntity fieldMetaEntity, List 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; } }