Commit 34a3d06a authored by 赵啸非's avatar 赵啸非

添加列表删除映射模板

parent 963ff10a
......@@ -107,11 +107,11 @@
</span>
<el-select v-model="info.isShowControl">
<el-option label="RequestJsonBody" value="0" />
<el-option label="RequestForm" value="0" />
<!--
<el-option label="RequestPOSTMapping" value="1" />
-->
<el-option label="RequestForm" value="2" />
<el-option label="RequestJsonBody" value="2" />
</el-select>
</el-form-item>
......
......@@ -249,10 +249,7 @@ hljs.registerLanguage("html", require("highlight.js/lib/languages/xml"));
hljs.registerLanguage("vue", require("highlight.js/lib/languages/xml"));
hljs.registerLanguage("test", require("highlight.js/lib/languages/xml"));
hljs.registerLanguage("md", require("highlight.js/lib/languages/xml"));
hljs.registerLanguage(
"javascript",
require("highlight.js/lib/languages/javascript")
);
hljs.registerLanguage("javascript",require("highlight.js/lib/languages/javascript"));
hljs.registerLanguage("sql", require("highlight.js/lib/languages/sql"));
export default {
......
......@@ -86,7 +86,8 @@ public class GentableServiceImpl extends AbstractCRUDServiceImpl<GentableDao, Ge
@Override
public void importGenTable(List<GentableEntity> tableList, Long appId, Context context) {
String operName = context.getUser().getLoginName();
// String operName = context.getUser().getLoginName();
String operName = "admin";
try {
for (GentableEntity table : tableList) {
String tableName = table.getTableName();
......@@ -348,7 +349,6 @@ public class GentableServiceImpl extends AbstractCRUDServiceImpl<GentableDao, Ge
List<String> dbTableColumnNames = dbTableColumns.stream().map(GentableColumnEntity::getColumnName).collect(Collectors.toList());
dbTableColumns.forEach(column -> {
//新增列
if (!tableColumnNames.contains(column.getColumnName())) {
......@@ -378,8 +378,9 @@ public class GentableServiceImpl extends AbstractCRUDServiceImpl<GentableDao, Ge
@Override
public void importDoc(MultipartFile file, Long appId, Context context) {
List<GentableEntity> tableList = ReadDoc.readWord(file);
String operName = context.getUser().getLoginName();
try {
//String operName = context.getUser().getLoginName();
String operName = "admin";
for (GentableEntity table : tableList) {
GenUtils.initTable(table, operName);
table.setAppId(appId);
......@@ -454,6 +455,9 @@ public class GentableServiceImpl extends AbstractCRUDServiceImpl<GentableDao, Ge
Set<String> types = StrUtil.splitTrim(genTypes, ",".charAt(0), -1).stream().collect(Collectors.toSet());
if (!ObjectUtils.isEmpty(gentableEntity)) {
List<GentableColumnEntity> columnEntities = this.gentableColumnService.find(new GentableColumnQuery().tableId(gentableEntity.getId())).stream().map(column -> {
//字典类型1 (1.xxxx,2.xxxxx)
//字典类型2 (xxxx.xxxx,xxxx.xxxxx)
//字典类型3 (xxxx,xxxxx)
String temp1 = StringUtils.substringBetween(column.getColumnComment(), "(", ")");
String temp2 = StringUtils.substringBetween(column.getColumnComment(), "(", ")");
GenUtils.checkDict(column, temp1);
......
......@@ -42,7 +42,6 @@ public class SiteServiceImpl extends AbstractCRUDServiceImpl<SiteDao, SiteEntity
//校验站点名称是否存在 todo
super.validData(entity, context);
}
......
......@@ -13,7 +13,8 @@ public enum DividedTableTypeEnum {
DIVIED_BY_DAY(1, "日"),
DIVIED_BY_WEEK(2, "周"),
DIVIED_BY_MONTH(3, "月"),
DIVIED_BY_MOD(4, "HASH取余");
DIVIED_BY_YEAR(4, "年"),
DIVIED_BY_MOD(5, "HASH取余");
private int value;
private String desc;
......
......@@ -49,7 +49,7 @@ public class GenUtils {
column.setCreateUser(table.getCreateUser());
column.setCreateTime(new Date());
column.setIsSerialize(0);
if(column.getIsExport()==null){
if (column.getIsExport() == null) {
column.setIsExport(0);
}
column.setQueryType("=");
......@@ -57,7 +57,6 @@ public class GenUtils {
column.setJavaField(StrUtil.toCamelCase(columnName));
// 设置默认类型
column.setJavaType(GenConstants.TYPE_STRING);
if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) {
// 字符串长度超过255设置为文本域
Integer columnLength = getColumnLength(column.getColumnType());
......@@ -82,7 +81,7 @@ public class GenUtils {
else {
column.setJavaType(GenConstants.TYPE_LONG);
}
}else if (arraysContains(GenConstants.COLUMNTYPE_BLOB, dataType)) {
} else if (arraysContains(GenConstants.COLUMNTYPE_BLOB, dataType)) {
//大数据字段
column.setJavaType(GenConstants.TYPE_BYTEARRAY);
column.setHtmlType(HtmlTypeEnum.HTML_TEXTAREA.getValue());
......@@ -116,9 +115,9 @@ public class GenUtils {
}
}
//默认都是否
column.setIsList(GenConstants.NOREQUIRE);
//column.setIsList(GenConstants.NOREQUIRE);
column.setIsQuery(GenConstants.NOREQUIRE);
//column.setIsQuery(GenConstants.NOREQUIRE);
//拆解枚举类,格式必须为(1.啊啊啊,2.不不不)
String temp = column.getColumnComment().replaceAll("(", "(").replaceAll(")", ")");
......@@ -126,10 +125,10 @@ public class GenUtils {
//String temp2 = StringUtils.substringBetween(column.getColumnComment(), "(", ")");
checkDict(column, temp1);
//checkDict(column, temp2);
if(!ObjectUtils.isEmpty(column.getDict())){
if(column.getDict().size()>2){
if (!ObjectUtils.isEmpty(column.getDict())) {
if (column.getDict().size() > 2) {
column.setHtmlType(HtmlTypeEnum.HTML_SELECT.getValue());
}else{
} else {
column.setHtmlType(HtmlTypeEnum.HTML_RADIO.getValue());
}
//radio
......@@ -158,32 +157,53 @@ public class GenUtils {
}
}
public static void checkDict(GentableColumnEntity column, String temp) {
public static void checkDict(GentableColumnEntity column, String temp) {
if (StringUtils.isNotEmpty(temp)) {
//同意替换分割符号
temp=temp.replaceAll(",",",");
temp=temp.replaceAll(";",",");
//temp=temp.replaceAll("、",".");
temp=temp.replaceAll("。",".");
String[] split = checkSplitStr(temp, ",");
if (split.length > 0) {
Arrays.asList(split).stream().peek(item -> {
String[] vals = checkSplitStr(item, ".");
if (vals.length > 1) {
HashMap<String, String> map = new HashMap<>();
map.put("num", vals[0].trim());
map.put("value", vals[1].trim());
if (column.getJavaType().equalsIgnoreCase("String")) {
//同意替换分割符号
temp = temp.replaceAll(",", ",");
temp = temp.replaceAll(";", ",");
String[] split = checkSplitStr(temp, ",");
if (split.length > 0) {
Arrays.asList(split).stream().peek(item -> {
HashMap<String, String> map = new HashMap<>();
map.put("num", item.trim());
map.put("value", item.trim());
if (ObjectUtils.isEmpty(column.getDict())) {
column.setDict(new ArrayList<>());
}
column.getDict().add(map);
}
}).count();
}).count();
}
} else {
//同意替换分割符号
temp = temp.replaceAll(",", ",");
temp = temp.replaceAll(";", ",");
//temp=temp.replaceAll("、",".");
temp = temp.replaceAll("。", ".");
String[] split = checkSplitStr(temp, ",");
if (split.length > 0) {
Arrays.asList(split).stream().peek(item -> {
String[] vals = checkSplitStr(item, ".");
if (vals.length > 1) {
HashMap<String, String> map = new HashMap<>();
map.put("num", vals[0].trim());
map.put("value", vals[1].trim());
if (ObjectUtils.isEmpty(column.getDict())) {
column.setDict(new ArrayList<>());
}
column.getDict().add(map);
}
}).count();
}
}
}
}
......@@ -239,9 +259,9 @@ public class GenUtils {
// int lastIndex = tableName.lastIndexOf("_");
// int nameLength = tableName.length();
String businessName =tableName;
if(tableName.indexOf("_")!=-1){
businessName = StringUtils.substring(tableName, 0, tableName.indexOf("_"));
String businessName = tableName;
if (tableName.indexOf("_") != -1) {
businessName = StringUtils.substring(tableName, 0, tableName.indexOf("_"));
}
return businessName;
......@@ -334,7 +354,7 @@ public class GenUtils {
if (StringUtils.indexOf(columnType, "(") > 0) {
String length = StringUtils.substringBetween(columnType, "(", ")");
if(ObjectUtils.isEmpty(length)) {
if (ObjectUtils.isEmpty(length)) {
return 0;
}
return Integer.valueOf(length);
......
......@@ -55,21 +55,21 @@ public class ReadDoc {
if (split.length < 2) {
continue;
}
String tableName = split[1];
String[] vals = tableName.split("_");
if (tableName.indexOf("yyyymmdd") != -1) {
docTable.setDividedTableType(3);
} else if (tableName.indexOf("yyyymm") != -1) {
docTable.setDividedTableType(2);
} else if (tableName.indexOf("yyyy") != -1) {
if (tableName.toLowerCase().indexOf("yyyymmdd") != -1) {
docTable.setDividedTableType(1);
} else if (tableName.toLowerCase().indexOf("yyyyww") != -1) {
docTable.setDividedTableType(2);
} else if (tableName.toLowerCase().indexOf("yyyymm") != -1) {
docTable.setDividedTableType(3);
} else if (tableName.toLowerCase().indexOf("yyyy") != -1) {
docTable.setDividedTableType(4);
} else {
docTable.setDividedTableType(0);
}
if (vals[vals.length - 1].startsWith("yyyy")) {
if (vals[vals.length - 1].toLowerCase().startsWith("yyyy")) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < vals.length - 1; i++) {
sb.append(vals[i]);
......@@ -159,17 +159,19 @@ public class ReadDoc {
String tableName = split[1];
String[] vals = tableName.split("_");
if (tableName.indexOf("yyyymmdd") != -1) {
docTable.setDividedTableType(3);
} else if (tableName.indexOf("yyyymm") != -1) {
docTable.setDividedTableType(2);
} else if (tableName.indexOf("yyyy") != -1) {
if (tableName.toLowerCase().indexOf("yyyymmdd") != -1) {
docTable.setDividedTableType(1);
} else if (tableName.toLowerCase().indexOf("yyyyww") != -1) {
docTable.setDividedTableType(2);
} else if (tableName.toLowerCase().indexOf("yyyymm") != -1) {
docTable.setDividedTableType(3);
} else if (tableName.toLowerCase().indexOf("yyyy") != -1) {
docTable.setDividedTableType(4);
} else {
docTable.setDividedTableType(0);
}
if (vals[vals.length - 1].startsWith("yyyy")) {
if (vals[vals.length - 1].toLowerCase().startsWith("yyyy")) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < vals.length - 1; i++) {
sb.append(vals[i]);
......
......@@ -5,6 +5,10 @@ import com.mortals.xhx.module.app.dao.AppDao;
import com.mortals.xhx.module.app.model.AppEntity;
import com.mortals.xhx.module.app.service.AppService;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -16,5 +20,71 @@ import com.mortals.xhx.module.app.service.AppService;
*/
@Service("appService")
public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, Long> implements AppService {
/**
* 对集合作排列组合运算
*
* @param list 要运算的集合
* @param mapper 每个元素转成String的规则
* @param connectors 每个元素在结果集中的连接符号
* @param <T>
* @return
*/
public static <T> List<String> combine(List<List<T>> list, Function<T, String> mapper, String connectors) {
if (list == null || list.isEmpty()) {
return new ArrayList<>();
}
//结果集
List<String> resList = new ArrayList<>();
//缓存上次的结果集,用来拼接新的元素
List<String> cacheList = null;
for (int i = 0; i < list.size(); i++) {
if (i == 0) {
resList.addAll(list.get(i).stream().map(mapper).collect(Collectors.toList()));
} else {
cacheList = new ArrayList<>(resList);
List<T> ts = list.get(i);
for (int j = 0; j < ts.size(); j++) {
T t = ts.get(j);
if (j == 0) {
resList = resList.stream().map(e -> e + connectors + mapper.apply(t)).collect(Collectors.toList());
} else {
resList.addAll(cacheList.stream().map(e -> e + connectors + mapper.apply(t)).collect(Collectors.toList()));
}
}
}
}
return resList;
}
public static void main(String[] args) {
List list = new ArrayList();
List list1 = new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
List list2 = new ArrayList();
list2.add(4);
list2.add(5);
list2.add(6);
List list3 = new ArrayList();
list3.add(7);
list3.add(8);
list3.add(9);
list.add(list1);
list.add(list2);
list.add(list3);
List<String> combine = combine(list, (e -> e.toString()), "_");
for (String str : combine) {
System.out.println(str);
}
}
}
\ No newline at end of file
......@@ -362,10 +362,10 @@ dict|object|字典对象
<#if !column.isSuperColumn(column.javaField)>
<#if column.isRequired == 1>
${column.javaField}|${column.javaType}|是|${column.columnComment}
</#if>
<#else>
${column.javaField}|${column.javaType}|否|${column.columnComment}
</#if>
</#if>
</#list>
**请求样例:**
......
package ${packageName}.dao;
import com.mortals.framework.dao.ICRUDDao;
<#if table.dividedTableType!=0 >
<#assign Dao = "ICRUDSubmeterDao">
<#else>
<#assign Dao = "ICRUDDao">
</#if>
import com.mortals.framework.dao.${Dao};
import ${packageName}.model.${ClassName}Entity;
import java.util.List;
/**
......@@ -10,11 +15,7 @@ import java.util.List;
* @author ${author}
* @date ${datetime}
*/
<#if table.dividedTableType!=0 >
<#assign Dao = "ICRUDSubmeterDao">
<#else>
<#assign Dao = "ICRUDDao">
</#if>
public interface ${ClassName}Dao extends ${Dao}<${ClassName}Entity,${pkColumn.javaType}>{
<#if table.tplCategory=="tree" >
......
......@@ -22,6 +22,7 @@ import ${subPackageName}.model.${subClassName}Query;
import ${subPackageName}.service.${subClassName}Service;
import org.springframework.util.ObjectUtils;
import java.util.Date;
import java.util.Arrays;
</#if>
<#if pkColumn??&&pkColumn.isIncrement==0 >
import cn.hutool.core.util.IdUtil;
......@@ -34,9 +35,9 @@ import cn.hutool.core.util.IdUtil;
<#if pkColumn.javaType=="String" >
entity.set${pkColumn.javaField?cap_first}(IdUtil.fastSimpleUUID());
<#elseif pkColumn.javaType=="Integer">
entity.set${pkColumn.javaField?cap_first}(((Long)IdUtil.getSnowflake(1024,512).nextId()).intValue());
entity.set${pkColumn.javaField?cap_first}(((Long)IdUtil.getSnowflake(0,1).nextId()).intValue());
<#elseif pkColumn.javaType=="Long">
entity.set${pkColumn.javaField?cap_first}(IdUtil.getSnowflake(1024,512).nextId());
entity.set${pkColumn.javaField?cap_first}(IdUtil.getSnowflake(0,1).nextId());
</#if>
super.saveBefore(entity, context);
}
......@@ -109,11 +110,9 @@ public class ${ClassName}ServiceImpl extends ${Service}<${ClassName}Dao, ${Class
}
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
for (int i = 0; i < ids.length; i++) {
${pkColumn.javaType}[] ${subclassName}Ids = ${subclassName}Service.find(new ${subClassName}Query().${subTableFkClassName?cap_first}(ids[i]), context).stream().map(${subClassName}Entity::get${pkColumn.javaField?cap_first}).toArray(${pkColumn.javaType}[]::new);
${subclassName}Service.remove(${subclassName}Ids, context);
}
protected void removeAfter(${pkColumn.javaType}[] ids, Context context, int result) throws AppException {
List<${subClassName}Entity> ${subclassName}list = ${subclassName}Service.find(new ${subClassName?cap_first}Query().${subTableFkClassName?uncap_first}List(Arrays.asList(ids)));
${subclassName}Service.removeList(${subclassName}list,context);
super.removeAfter(ids, context, result);
}
<#elseif table.tplCategory=="subone">
......@@ -155,11 +154,9 @@ public class ${ClassName}ServiceImpl extends ${Service}<${ClassName}Dao, ${Class
super.updateAfter(entity, context);
}
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
for (int i = 0; i < ids.length; i++) {
${pkColumn.javaType}[] ${subclassName}Ids = ${subclassName}Service.find(new ${subClassName}Query().${subTableFkClassName?uncap_first}(ids[i]), context).stream().map(${subClassName}Entity::get${pkColumn.javaField?cap_first}).toArray(${pkColumn.javaType}[]::new);
${subclassName}Service.remove(${subclassName}Ids, context);
}
protected void removeAfter(${pkColumn.javaType}[] ids, Context context, int result) throws AppException {
List<${subClassName}Entity> ${subclassName}list = ${subclassName}Service.find(new ${subClassName?cap_first}Query().${subTableFkClassName?uncap_first}List(Arrays.asList(ids)));
${subclassName}Service.removeList(${subclassName}list,context);
super.removeAfter(ids, context, result);
}
<#else>
......
......@@ -50,12 +50,20 @@
<update id="createTable" parameterType="paramDto">
CREATE TABLE ${TempTable}(
<#list columns as column>
<#if column.isIncrement?? && column.isIncrement==1 >
<#assign autoInc>auto_isIncrement</#assign>
<#if column.isIncrement==1 >
<#assign autoInc>AUTO_INCREMENT</#assign>
<#else>
<#assign autoInc></#assign>
</#if>
<#if column.isRequired?? && column.isRequired==1 >
<#if column.isRequired==1 >
<#assign Required>NOT NULL</#assign>
<#else>
<#assign Required></#assign>
</#if>
<#if column.isPrimaryKey==1 >
<#assign Required>NOT NULL</#assign>
</#if>
<#if column.isRequired==1 >
<#assign Required>NOT NULL</#assign>
<#else>
<#assign Required></#assign>
......@@ -68,9 +76,9 @@
<#if column.defaultValue??>
<#assign Default>DEFAULT '${column.defaultValue}'</#assign>
<#else>
<#assign Default>DEFAULT NULL</#assign>
<#assign Default></#assign>
</#if>
`${column.columnName}` ${column.columnType} ${Required} ${Default} ${Type} ${autoInc} COMMENT '${column.columnComment}',
`${column.columnName}` ${column.columnType} ${Required} ${autoInc} COMMENT '${column.columnComment}',
</#list>
PRIMARY KEY (`${pkColumn.columnName}`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='${functionName}';
......@@ -194,6 +202,21 @@
<#noparse>#</#noparse>{item}
</foreach>
</delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByKeyList">
delete from ${TempTable} where ${pkColumn.columnName} in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
<#noparse>#</#noparse>{item}
</foreach>
</delete>
<!-- 根据对象列表删除一批,针对单一主健有效 -->
<delete id="deleteByEntityList">
delete from ${TempTable} where ${pkColumn.columnName} in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
<#noparse>#</#noparse>{item.${pkColumn.columnName}}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from ${TempTable} as a
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment