main
黄海 2 years ago
parent 96473180e2
commit 48d38493da

@ -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);

@ -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<String> getBlzColumn() {
Set<String> 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<Record> checkColumnNameDuplicate(int job_id, int sheet_index) {
Set<String> 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<Record> 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<String> 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
*

Loading…
Cancel
Save