From 48d38493dac8a9187b5cdf81809a4e2fd2ac4c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 28 Dec 2023 19:26:56 +0800 Subject: [PATCH] 'commit' --- .../Collect/Controller/CollectController.java | 10 ++++++ .../QingLong/Collect/Model/CollectModel.java | 33 ++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java b/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java index d0d0ff64..d71463a9 100644 --- a/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java +++ b/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java @@ -906,6 +906,16 @@ public class CollectController extends Controller { renderJson(map); return; } + //检查字段名是否重复 + if (cm.checkColumnNameDuplicate(json)) { + Map map = new HashMap(); + map.put("success", false); + map.put("message", "表名" + table_name + "中存在重复列名或与保留字冲突,不能创建,请检查!"); + renderJson(map); + return; + } + + //通过检查 int job_id = cm.addFormJob(person_id, publish_role_id, job_name, table_name, json); Map map = new HashMap(); map.put("success", true); diff --git a/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java b/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java index a8306210..132897d4 100644 --- a/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java +++ b/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java @@ -2,7 +2,6 @@ package com.dsideal.QingLong.Collect.Model; import cn.hutool.core.date.DateTime; import cn.hutool.core.io.FileUtil; -import com.YunXiao.Model.BaseModel; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dsideal.QingLong.Collect.Const.DataTypeConst; @@ -271,6 +270,20 @@ public class CollectModel { return Db.find(sql, job_id); } + /** + * 功能:建表时有哪些字段名是保留字,不能用的 + * + * @return + */ + public Set getBlzColumn() { + Set set = new HashSet<>(); + set.add("id");//主键 + set.add("bureau_id");//发布单位 + set.add("person_id");//发布者 + set.add("job_id");//任务号 + return set; + } + /** * 功能:指定任务+指定SheetIndex下,是不是存在字段名称重复的情况 * @@ -279,11 +292,29 @@ public class CollectModel { * @return */ public List checkColumnNameDuplicate(int job_id, int sheet_index) { + Set blzList = getBlzColumn();//检查是不是与保留字重复 String sql = "select column_name,count(1) as c from t_collect_job_sheet_col where job_id=? and sheet_index=? group by column_name having count(1)>1"; List list = Db.find(sql, job_id, sheet_index); + for (Record record : list) { + String column_name = record.getStr("column_name"); + int c = record.getInt("c"); + if (blzList.contains(column_name)) record.set(column_name, c + 1); + } return list; } + public boolean checkColumnNameDuplicate(String json) { + Set blzList = getBlzColumn();//检查是不是与保留字重复 + JSONArray ja = JSONArray.parseArray(json); + for (Object o : ja) { + JSONObject jo = (JSONObject) o; + String column_name = jo.getString("id");//字段名 + if (blzList.contains(column_name)) return false; + blzList.add(column_name); + } + return true; + } + /** * 功能:是不是指定任务的所有Sheet全部都确认通过 *