From 52d2480ecc27f8ce883bf189c0925eedbd186af7 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 15 Aug 2023 17:47:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A8=E6=80=81=E8=A1=A8=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exl/common/TableCreateSqlUtil.java | 17 ++++++ .../controller/ExlTableDataController.java | 53 +++++++++++++++++-- 2 files changed, 65 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java b/src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java index 5eb675f2..d443f11a 100644 --- a/src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java +++ b/src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java @@ -1,5 +1,6 @@ package com.qs.serve.modules.exl.common; +import com.alibaba.fastjson.JSONObject; import com.qs.serve.modules.exl.entity.ExlColumnConf; import java.util.HashMap; @@ -41,4 +42,20 @@ public class TableCreateSqlUtil { return result.append(") COMMENT = '"+tableRemark+"' ").toString(); } + public static String buildUnionId(List columnList, JSONObject jsonObject ){ + StringBuilder unionId = new StringBuilder(); + for (ExlColumnConf columnConf : columnList) { + if(columnConf.getKeyFlag().equals(1)){ + String val = jsonObject.getString(columnConf.getColumnName()); + val = val == null||val.length()<1? "null_":val+"_"; + unionId.append(val); + } + } + String tmp = unionId.toString().replace("null_",""); + if(tmp.length()<1){ + return null; + } + return unionId.toString(); + } + } diff --git a/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java b/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java index 5bd5b562..d30c2e30 100644 --- a/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java +++ b/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java @@ -1,14 +1,19 @@ package com.qs.serve.modules.exl.controller; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.IdUtil; +import com.qs.serve.common.util.JsonUtil; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.exl.common.ExlConst; +import com.qs.serve.modules.exl.common.QsSqlSessionUtil; +import com.qs.serve.modules.exl.common.TableCreateSqlUtil; import com.qs.serve.modules.exl.entity.ExlColumnConf; import com.qs.serve.modules.exl.entity.ExlTableConf; import com.qs.serve.modules.exl.entity.dto.ExlConditionDto; @@ -19,6 +24,7 @@ import com.qs.serve.modules.exl.service.ExlColumnConfService; import com.qs.serve.modules.exl.service.ExlTableConfService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.SqlSessionTemplate; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -42,7 +48,7 @@ public class ExlTableDataController { private ExlTableConfService exlTableConfService; private ExlColumnConfService exlColumnConfService; - + private SqlSessionTemplate sqlSessionTemplate; private ExlTableConfMapper exlTableConfMapper; /** @@ -109,11 +115,48 @@ public class ExlTableDataController { * @return */ @PostMapping("/batchSave/{tableConfigId}") - public R batchSave(@RequestBody List param){ - for (Object obj : param) { - + public R batchSave(@PathVariable Long tableConfigId, @RequestBody List param){ + // table + ExlTableConf tableConf = exlTableConfService.getById(tableConfigId); + // columns + LambdaQueryWrapper columnLqw = new LambdaQueryWrapper<>(); + columnLqw.eq(ExlColumnConf::getTableConfId,tableConfigId); + List columnList = exlColumnConfService.list(columnLqw); + + String targetTableName = ExlConst.TABLE_NAME_PRE + tableConf.getTableName(); + //insert into table (cloumns) values (vals),(vals) + StringBuilder insertSql = new StringBuilder("insert into "+targetTableName +"( `union_row_id`,"); + for (int i = 0; i < columnList.size(); i++) { + insertSql.append(" `"+columnList.get(i).getColumnName()+"` "); + if(i+1