main
黄海 2 years ago
parent 0bbf15a96b
commit e08fcbd640

@ -129,7 +129,7 @@ public class CreateTable {
//检查通过,处理建表逻辑
for (Kv kv : kvList) {
String tableName = kv.getStr("table_name");
ImportExcelKit.createTable(tableName, kv);//创建表
//ImportExcelKit.createTable(tableName, kv);//创建表
}
//检查是不是需要对指定列进行加红星+Comment操作

@ -14,9 +14,11 @@ import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.POST;
import com.jfinal.ext.interceptor.GET;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.kit.Kv;
import com.jfinal.upload.UploadFile;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.*;
@ -150,8 +152,10 @@ public class CollectController extends Controller {
* Sheet
*/
@Before({POST.class})
@IsNumericInterface({"job_id", "sheet_index"})
@EmptyInterface({"json", "table_name"})
@IsLoginInterface({})
public void saveSheet(String json) {
public void saveSheet(int job_id, int sheet_index, String json, String table_name) {
//操作人员
String person_id = SessionKit.get(getRequest(), getResponse(), "person_id");
//检查当前登录人员是不是发布任务的角色
@ -174,8 +178,6 @@ public class CollectController extends Controller {
List<Record> writeList = new ArrayList<>();
for (Object o : ja) {
JSONObject jo = (JSONObject) o;
int job_id = jo.getInteger("job_id");
int sheet_index = jo.getInteger("sheet_index");
int column_index = jo.getInteger("column_index");
int data_type_id = jo.getInteger("data_type_id");
String column_name = jo.getString("column_name");
@ -193,37 +195,13 @@ public class CollectController extends Controller {
record.set("options", options);
writeList.add(record);
}
cm.saveSheet(writeList);
cm.saveSheet(job_id, sheet_index,writeList, table_name);
Map map = new HashMap();
map.put("success", true);
map.put("message", "保存成功!");
renderJson(map);
}
/**
* job_id+sheet_index
*
* @param job_id
* @param sheet_index
*/
@Before({POST.class})
@IsLoginInterface({})
public void checkSheet(int job_id, int sheet_index) {
//操作人员
String person_id = SessionKit.get(getRequest(), getResponse(), "person_id");
//检查当前登录人员是不是发布任务的角色
Kv kvCheck = cm.checkPublishRole(person_id);
if (!kvCheck.getBoolean("success")) {
renderJson(kvCheck);
return;
}
cm.checkSheet(job_id, sheet_index);
Map map = new HashMap();
map.put("success", true);
map.put("message", "保存成功!");
renderJson(map);
}
/**
*
@ -265,12 +243,63 @@ public class CollectController extends Controller {
return;
}
}
//检查通过,处理建表逻辑
for (Record record : listJobSheet) {
//String tableName = record.getStr("table_name");
//ImportExcelKit.createTable(tableName, kv);//创建表
}
// //检查通过,处理建表逻辑
// for (Record record : listJobSheet) {
// //String tableName = record.getStr("table_name");
// ImportExcelKit.createTable(tableName, kv);//创建表
// }
//
// //检查是不是需要对指定列进行加红星+Comment操作
// int sheetIdx = 0;
// for (Kv kv : kvList) {
// int start_row = kv.getInt("start_row");
// int end_row = kv.getInt("end_row");
// List<Record> list = (List<Record>) kv.get("list");
// int colIdx = 0;
// for (Record record : list) {
// boolean allow_blank = record.getBoolean("allow_blank");
// if (!allow_blank) {
// //一行时,星号加在一行
// //二行时,星号加在二行
// XSSFCell cell = wb.getSheetAt(sheetIdx).getRow(end_row).getCell(colIdx);
// if (StrKit.isBlank(cell.getStringCellValue())) {
// cell = wb.getSheetAt(sheetIdx).getRow(start_row).getCell(colIdx);
// }
// ExcelUtil.addStar(wb, cell);
// ExcelUtil.addComment(wb, cell, "此单元格内容必须输入!");
// }
// colIdx++;
// }
// sheetIdx++;
// }
//
// //检查是不是需要对于指定的Sheet+指定的列生成下拉框
// sheetIdx = 0;
// for (Kv kv : kvList) {
// int data_start_row = kv.getInt("data_start_row");
// List<Record> list = (List<Record>) kv.get("list");
// int colIdx = 0;
// for (Record record : list) {
// String options = record.getStr("options");
// if (!StrKit.isBlank(options)) {
// ExcelUtil.addValidation(wb, sheetIdx, options, data_start_row, data_start_row + 20000, colIdx, colIdx);//范围
// }
// colIdx++;
// }
// sheetIdx++;
// }
//
// // 取消每一个表单的激活状态
// for (int i = 0; i < kvList.size(); i++) wb.getSheetAt(i).setSelected(false);
// // 设置活动表单为第一个表单
// wb.setActiveSheet(0);
//
// //保存
// FileOutputStream fileOut = new FileOutputStream(source);
// wb.write(fileOut);
// //关闭Excel
// wb.close();
//
//返回成功
Map map = new HashMap();
map.put("success", true);

@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
import com.dsideal.QingLong.Interceptor.EmptyInterface;
import com.dsideal.QingLong.Interceptor.IsLoginInterface;
import com.dsideal.QingLong.Interceptor.IsNumericInterface;
import com.dsideal.QingLong.Util.ImportExcelKit;
import com.jfinal.aop.Before;
import com.jfinal.ext.interceptor.GET;
import com.jfinal.ext.interceptor.POST;
@ -127,6 +128,17 @@ public class CollectModel {
return Db.find(sql, job_id);
}
/**
* JOB_IDSheet
*
* @param job_id
* @return
*/
public List<Record> getJobSheet(int job_id) {
String sql = "select * from t_collect_job_sheet where job_id=?";
return Db.find(sql, job_id);
}
/**
* + Sheet_indexSheet
*
@ -156,25 +168,16 @@ public class CollectModel {
*
* @param writeList
*/
public void saveSheet(List<Record> writeList) {
public void saveSheet(int job_id, int sheet_index, List<Record> writeList, String table_name) {
if (writeList.size() == 0) return;
int job_id = writeList.get(0).getInt("job_id");
int sheet_index = writeList.get(0).getInt("sheet_index");
String sql = "delete from t_collect_job_sheet_col where job_id=? and sheet_index=?";
Db.update(sql, job_id, sheet_index);
Db.batchSave("t_collect_job_sheet_col", writeList, 100);
//确认job_id+sheet_index完成
sql = "update t_collect_job_sheet set table_name=?,is_check=1,check_time=? where job_id=? and sheet_index=?";
Db.update(sql, table_name, DateTime.now(), job_id, sheet_index);
}
/**
* job_id+sheet_index
*
* @param job_id
* @param sheet_index
*/
public void checkSheet(int job_id, int sheet_index) {
String sql = "update t_collect_job_sheet set is_check=1,check_time=? where job_id=? and sheet_index=?";
Db.update(sql, DateTime.now(), job_id, sheet_index);
}
/**
*
@ -209,16 +212,6 @@ public class CollectModel {
Db.update(sql, job_name, job_id);
}
/**
* JOB_IDSheet
*
* @param job_id
* @return
*/
public List<Record> getJobSheet(int job_id) {
String sql = "select * from t_collect_job_sheet where job_id=?";
return Db.find(sql, job_id);
}
/**
* Sheet
@ -238,4 +231,94 @@ public class CollectModel {
kv.set("success", true);
return kv;
}
/**
*
*
* @return
*/
public static Kv createTable(int job_id, int sheet_index) {
// Record input = List < Record > list = (List<Record>) input.get("list");
// String sheetName = input.getStr("sheet_name");
// String upload_excel_filename = input.getStr("upload_excel_filename");
// String colSql = "", commentSql = "";
// for (Record record : list) {
// String column_name = record.getStr("column_name").toLowerCase();
// colSql += column_name + " " + record.getStr("column_type");//varchar(2048)
// String memo = record.getStr("memo");
// if (record.getBoolean("allow_blank") == null || !record.getBoolean("allow_blank")) colSql += " NOT NULL ";
// colSql += ",";
// commentSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"" + column_name + "\" IS '" + memo + "';\n";
// }
// String finalSql = "CREATE TABLE \"public\".\"" + tableName + "\" (";
// finalSql += "\"id\" serial4,";
// finalSql += "\"bureau_id\" char(36) NOT NULL,";
// finalSql += "\"person_id\" char(36) NOT NULL,";
// finalSql += colSql;
// finalSql += "PRIMARY KEY (\"id\")";
// finalSql += ");\n";
//
// finalSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"id\" IS '主键自增长ID';\n";
// finalSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"bureau_id\" IS '单位ID';\n";
// finalSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"person_id\" IS '上传人员ID';\n";
// finalSql += commentSql;
// finalSql += "COMMENT ON TABLE \"public\".\"" + tableName + "\" IS '" + sheetName + "';";
// //添加索引
// finalSql += "CREATE INDEX ON \"public\".\"" + tableName + "\" (\"bureau_id\");";
// finalSql += "CREATE INDEX ON \"public\".\"" + tableName + "\" (\"person_id\");";
// Db.update(finalSql);
//
// //写入模板与表结构的关系t_collect_mapping
// String sql = "delete from t_collect_mapping where table_name=?";
// Db.update(sql, tableName);
//
// int sheet_index = input.getInt("sheet_index");
// String sheet_name = input.getStr("sheet_name");
// List<Record> writeList = new ArrayList<>();
// for (int i = 0; i < list.size(); i++) {
// Record record = new Record();
// record.set("table_name", tableName);
// record.set("column_name", list.get(i).getStr("column_name"));
// record.set("excel_column_idx", i);
// record.set("memo", list.get(i).getStr("memo"));
// record.set("allow_blank", list.get(i).getBoolean("allow_blank"));
// record.set("column_type", ImportExcelKit.convertDataType(list.get(i).getStr("column_type")));
// record.set("upload_excel_filename", upload_excel_filename);
// record.set("sheet_index", sheet_index);
// record.set("sheet_name", sheet_name);
// record.set("options", list.get(i).getStr("options"));
// writeList.add(record);
// }
// Db.batchSave("t_collect_mapping", writeList, 100);
//
// //记录模板文件的头文件位置,开始行,结束行,开始列,结束列
// sql = "delete from t_collect_config where upload_excel_filename=? and table_name=?";
// Db.update(sql, upload_excel_filename, tableName);
//
// int start_row = input.getInt("start_row");
// int end_row = input.getInt("end_row");
// int start_column = input.getInt("start_column");
// int end_column = input.getInt("end_column");
// int data_start_row = input.getInt("data_start_row");
// int column_num = input.getInt("column_num");
//
// Record record = new Record();
// record.set("upload_excel_filename", upload_excel_filename);
// record.set("table_name", tableName);
// record.set("start_row", start_row);
// record.set("end_row", end_row);
// record.set("start_column", start_column);
// record.set("end_column", end_column);
// record.set("sheet_index", sheet_index);
// record.set("sheet_name", sheet_name);
// record.set("data_start_row", data_start_row);
// record.set("column_num", column_num);
// Db.save("t_collect_config", "id", record);
Kv kv = Kv.create();
kv.set("success", true);
kv.set("message", "表结构创建成功!");
return kv;
}
}

@ -1,6 +1,5 @@
package com.dsideal.QingLong.Util;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
@ -28,96 +27,6 @@ public class ImportExcelKit {
else if (pgColumnDataType.startsWith("date")) res = "Date";
return res;
}
/**
*
*
* @param tableName
* @param input
* @return
*/
public static Kv createTable(String tableName, Kv input) {
List<Record> list = (List<Record>) input.get("list");
String sheetName = input.getStr("sheet_name");
String upload_excel_filename = input.getStr("upload_excel_filename");
String colSql = "", commentSql = "";
for (Record record : list) {
String column_name = record.getStr("column_name").toLowerCase();
colSql += column_name + " " + record.getStr("column_type");//varchar(2048)
String memo = record.getStr("memo");
if (record.getBoolean("allow_blank") == null || !record.getBoolean("allow_blank")) colSql += " NOT NULL ";
colSql += ",";
commentSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"" + column_name + "\" IS '" + memo + "';\n";
}
String finalSql = "CREATE TABLE \"public\".\"" + tableName + "\" (";
finalSql += "\"id\" serial4,";
finalSql += "\"bureau_id\" char(36) NOT NULL,";
finalSql += "\"person_id\" char(36) NOT NULL,";
finalSql += colSql;
finalSql += "PRIMARY KEY (\"id\")";
finalSql += ");\n";
finalSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"id\" IS '主键自增长ID';\n";
finalSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"bureau_id\" IS '单位ID';\n";
finalSql += "COMMENT ON COLUMN \"public\".\"" + tableName + "\".\"person_id\" IS '上传人员ID';\n";
finalSql += commentSql;
finalSql += "COMMENT ON TABLE \"public\".\"" + tableName + "\" IS '" + sheetName + "';";
//添加索引
finalSql += "CREATE INDEX ON \"public\".\"" + tableName + "\" (\"bureau_id\");";
finalSql += "CREATE INDEX ON \"public\".\"" + tableName + "\" (\"person_id\");";
Db.update(finalSql);
//写入模板与表结构的关系t_collect_mapping
String sql = "delete from t_collect_mapping where table_name=?";
Db.update(sql, tableName);
int sheet_index = input.getInt("sheet_index");
String sheet_name = input.getStr("sheet_name");
List<Record> writeList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Record record = new Record();
record.set("table_name", tableName);
record.set("column_name", list.get(i).getStr("column_name"));
record.set("excel_column_idx", i);
record.set("memo", list.get(i).getStr("memo"));
record.set("allow_blank", list.get(i).getBoolean("allow_blank"));
record.set("column_type", convertDataType(list.get(i).getStr("column_type")));
record.set("upload_excel_filename", upload_excel_filename);
record.set("sheet_index", sheet_index);
record.set("sheet_name", sheet_name);
record.set("options", list.get(i).getStr("options"));
writeList.add(record);
}
Db.batchSave("t_collect_mapping", writeList, 100);
//记录模板文件的头文件位置,开始行,结束行,开始列,结束列
sql = "delete from t_collect_config where upload_excel_filename=? and table_name=?";
Db.update(sql, upload_excel_filename, tableName);
int start_row = input.getInt("start_row");
int end_row = input.getInt("end_row");
int start_column = input.getInt("start_column");
int end_column = input.getInt("end_column");
int data_start_row = input.getInt("data_start_row");
int column_num = input.getInt("column_num");
Record record = new Record();
record.set("upload_excel_filename", upload_excel_filename);
record.set("table_name", tableName);
record.set("start_row", start_row);
record.set("end_row", end_row);
record.set("start_column", start_column);
record.set("end_column", end_column);
record.set("sheet_index", sheet_index);
record.set("sheet_name", sheet_name);
record.set("data_start_row", data_start_row);
record.set("column_num", column_num);
Db.save("t_collect_config", "id", record);
Kv kv = Kv.create();
kv.set("success", true);
kv.set("message", "表结构创建成功!");
return kv;
}
/**
*

Loading…
Cancel
Save