|
@@ -1367,10 +1367,11 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
List<Map<String, Object>> fieldMap = jdbcTemplate.queryForList("select distinct COLUMN_NAME as fieldName, CHARACTER_MAXIMUM_LENGTH as fieldLength from information_schema.COLUMNS where TABLE_NAME = '" + tableName +
|
|
|
"' and COLUMN_NAME in (" + fields + ")");
|
|
|
Map<String, Integer> map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
|
|
|
- if (v.get("fieldLength") == null) {
|
|
|
+ try {
|
|
|
+ return Integer.parseInt(v.get("fieldLength") + "");
|
|
|
+ } catch (Exception e) {
|
|
|
return 0;
|
|
|
}
|
|
|
- return Integer.parseInt(v.get("fieldLength") + "");
|
|
|
}, Math::max));
|
|
|
|
|
|
List<WbsFormElement> elementList = jdbcTemplate.query("SELECT id,e_key,e_length from m_wbs_form_element WHERE f_id = (SELECT id from m_table_info WHERE tab_en_name = '" + tableName
|
|
@@ -1379,21 +1380,25 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
sql.append("alter table ").append(tableName);
|
|
|
elementList.forEach(element -> {
|
|
|
String data = fieldNameAndLengthMap.get(element.getEKey());
|
|
|
- if (data != null && element.getELength() != null && data.length() > element.getELength()) {
|
|
|
+ Integer fieldLength = map.get(element.getEKey());
|
|
|
+ if (data != null && element.getELength() != null && data.length() > fieldLength) {
|
|
|
int length = data.length();
|
|
|
// 取整
|
|
|
length = (length / 10 + 1) * 10;
|
|
|
- Integer fieldLength = map.get(element.getEKey());
|
|
|
- if (fieldLength != null && fieldLength < element.getELength()) {
|
|
|
+ if (length < element.getELength()) {
|
|
|
+ length = element.getELength();
|
|
|
+ element.setELength(null);
|
|
|
+ } else {
|
|
|
element.setELength(length);
|
|
|
- sql.append(" modify column ").append(element.getEKey()).append(" ").append("varchar").append("(").append(length).append("),");
|
|
|
}
|
|
|
+ sql.append(" modify column ").append(element.getEKey()).append(" ").append("varchar").append("(").append(length).append("),");
|
|
|
}
|
|
|
});
|
|
|
if (sql.indexOf("modify") > 0) {
|
|
|
+ sql.deleteCharAt(sql.length() - 1);
|
|
|
TransactionStatus transactionStatus = this.beginTransaction(transactionManager1);
|
|
|
try {
|
|
|
- jdbcTemplate.batchUpdate("update m_wbs_form_element set e_length = ? where id = ?", elementList.stream().map(element -> new Object[]{element.getELength(), element.getId()}).collect(Collectors.toList()));
|
|
|
+ jdbcTemplate.batchUpdate("update m_wbs_form_element set e_length = ? where id = ?", elementList.stream().filter(element -> element.getELength() != null).map(element -> new Object[]{element.getELength(), element.getId()}).collect(Collectors.toList()));
|
|
|
jdbcTemplate.execute(sql.toString());
|
|
|
transactionManager1.commit(transactionStatus);
|
|
|
} catch (Exception e) {
|