From 7c64fc6244ff3556e4f1951fcf7aec2543d67187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 22 Dec 2023 13:35:50 +0800 Subject: [PATCH] 'commit' --- .../Collect/Controller/CollectController.java | 76 +++++++++++++++---- .../QingLong/Collect/Model/CollectModel.java | 59 ++++++++++++++ 2 files changed, 121 insertions(+), 14 deletions(-) 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 0c44d65d..699ca69f 100644 --- a/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java +++ b/src/main/java/com/dsideal/QingLong/Collect/Controller/CollectController.java @@ -3,10 +3,12 @@ package com.dsideal.QingLong.Collect.Controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dsideal.QingLong.Collect.Model.CollectModel; +import com.dsideal.QingLong.Interceptor.EmptyInterface; import com.dsideal.QingLong.Interceptor.IsLoginInterface; import com.dsideal.QingLong.Interceptor.IsNumericInterface; import com.dsideal.QingLong.Util.CommonUtil; import com.dsideal.QingLong.Util.ExcelUtil; +import com.dsideal.QingLong.Util.ImportExcelKit; import com.dsideal.QingLong.Util.SessionKit; import com.jfinal.aop.Before; import com.jfinal.core.Controller; @@ -33,17 +35,14 @@ public class CollectController extends Controller { UploadFile excelFile = getFile();//得到文件对象 //操作人员 String person_id = SessionKit.get(getRequest(), getResponse(), "person_id"); - //有哪些角色是可以发布任务的角色? - List roleList = cm.getPersonPublishJobRole(person_id); - if (roleList.size() == 0) { - Map map = new HashMap(); - map.put("success", false); - map.put("message", "你不具备发布数据采集任务的角色,请让系统管理员进行配置后重试!"); - renderJson(map); + //检查当前登录人员是不是发布任务的角色 + Kv kvCheck = cm.checkPublishRole(person_id); + if (!kvCheck.getBoolean("success")) { + renderJson(kvCheck); return; } - //发布角色,目前写死成第一个,如果以后有用户反馈需要角色切换,就再开发功能进行应对 - int publish_role_id = roleList.get(0).getInt("duties_id"); + //获取登录人员第一个发布任务的角色是什么 + int publish_role_id = kvCheck.getInt("publish_role_id"); String fileName = excelFile.getFileName(); String suffix = fileName.substring(fileName.lastIndexOf(".") + 1).trim(); @@ -129,8 +128,14 @@ public class CollectController extends Controller { @IsLoginInterface({}) @IsNumericInterface({"job_id", "sheet_index"}) public void getSheetStruct(int job_id, int sheet_index) { + //获取数据表的整体配置信息 + Record record = cm.getSheet(job_id, sheet_index); + Kv kv = Kv.create(); + kv.set("record", record); + List list = cm.getSheetStruct(job_id, sheet_index); - renderJson(CommonUtil.renderJsonForLayUI(list)); + kv.set("list", CommonUtil.renderJsonForLayUI(list)); + renderJson(kv); } /** @@ -149,6 +154,14 @@ public class CollectController extends Controller { @Before({POST.class}) @IsLoginInterface({}) public void saveSheet(String json) { + //操作人员 + String person_id = SessionKit.get(getRequest(), getResponse(), "person_id"); + //检查当前登录人员是不是发布任务的角色 + Kv kvCheck = cm.checkPublishRole(person_id); + if (!kvCheck.getBoolean("success")) { + renderJson(kvCheck); + return; + } JSONArray ja; try { ja = JSONArray.parseArray(json); @@ -159,8 +172,7 @@ public class CollectController extends Controller { renderJson(kv); return; } - //遍历每行数据,根据data_type_id+ t_collect_datatype 表 ,修改 pg_data_type,web_data_type,excel_data_type三个属性 - //然后再保存 + //保存 List writeList = new ArrayList<>(); for (Object o : ja) { JSONObject jo = (JSONObject) o; @@ -199,7 +211,16 @@ public class CollectController extends Controller { @Before({POST.class}) @IsLoginInterface({}) public void checkSheet(int job_id, int sheet_index) { - cm.checkSheet(job_id,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", "保存成功!"); @@ -213,8 +234,35 @@ public class CollectController extends Controller { */ @Before({POST.class}) @IsLoginInterface({}) - public void saveJob(int job_id) { + @IsNumericInterface({"job_id"}) + @EmptyInterface({"job_name"}) + public void saveJob(int job_id, String job_name) { + //操作人员 + String person_id = SessionKit.get(getRequest(), getResponse(), "person_id"); + //检查当前登录人员是不是发布任务的角色 + Kv kvCheck = cm.checkPublishRole(person_id); + if (!kvCheck.getBoolean("success")) { + renderJson(kvCheck); + return; + } + //保存任务名称 + cm.saveJob(job_id, job_name); + + //判断表是不是已存在 + List listJobSheet = cm.getJobSheet(job_id); + for (Kv kv : kvList) { + String tableName = kv.getStr("table_name"); + if (ImportExcelKit.isTableExist(tableName)) { + System.out.println("表" + tableName + "已存在,不能删除,程序无法继续!"); + return; + } + } + //返回成功 + Map map = new HashMap(); + map.put("success", true); + map.put("message", "保存成功!"); + renderJson(map); } /** 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 45a72b3c..c83baaa5 100644 --- a/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java +++ b/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java @@ -1,7 +1,9 @@ package com.dsideal.QingLong.Collect.Model; 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.jfinal.aop.Before; import com.jfinal.ext.interceptor.GET; import com.jfinal.ext.interceptor.POST; @@ -10,7 +12,9 @@ import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class CollectModel { @@ -123,6 +127,18 @@ public class CollectModel { return Db.find(sql, job_id); } + /** + * 功能:获取指定任务+指定 Sheet_index的Sheet相关信息 + * + * @param job_id + * @param sheet_index + * @return + */ + public Record getSheet(int job_id, int sheet_index) { + String sql = "select * from t_collect_job_sheet where job_id=? and sheet_index=? order by sheet_index"; + return Db.findFirst(sql, job_id, sheet_index); + } + /** * 功能:获取指定Sheet的表结构,也就是列的信息 * @@ -160,4 +176,47 @@ public class CollectModel { Db.update(sql, DateTime.now(), job_id, sheet_index); } + /** + * 功能:检查当前登录人员是不是有发布任务的角色 + * + * @param person_id + * @return + */ + public Kv checkPublishRole(String person_id) { + Kv kv = Kv.create(); + //有哪些角色是可以发布任务的角色? + List roleList = getPersonPublishJobRole(person_id); + if (roleList.size() == 0) { + + kv.set("success", false); + kv.set("message", "你不具备发布数据采集任务的角色,请让系统管理员进行配置后重试!"); + return kv; + } + //发布角色,目前写死成第一个,如果以后有用户反馈需要角色切换,就再开发功能进行应对 + kv.set("publish_role_id", roleList.get(0).getInt("duties_id")); + kv.set("success", true); + kv.set("message", "检查通过!"); + return kv; + } + + /** + * 功能:保存任务并建表 + * + * @param job_id + */ + public void saveJob(int job_id, String job_name) { + String sql = "update t_collect_job set job_name=? where job_id=?"; + Db.update(sql, job_name, job_id); + } + + /** + * 功能:获取指定JOB_ID下的所有Sheet表的相关信息,准备用这些信息创建数据库表 + * + * @param job_id + * @return + */ + public List getJobSheet(int job_id) { + String sql = "select * from t_collect_job_sheet where job_id=?"; + return Db.find(sql, job_id); + } } \ No newline at end of file