Merge remote-tracking branch 'origin/dev_2307' into dev_2307

dev^2
guilongma 1 year ago
commit 230822887e
  1. 28
      ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
  2. 410
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java
  3. 11
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/entity/RuleVo.java
  4. 14
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/controller/FieldxController.java
  5. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/entity/Fieldx.java
  6. 12
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/impl/FieldxServiceImpl.java
  7. 17
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/service/impl/ModulexServiceImpl.java
  8. 75
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java

@ -575,7 +575,7 @@ export default {
'表名(非空): 请填写实体表的名称', '表名(非空): 请填写实体表的名称',
'中文名称(非空): 请填写字段名称', '中文名称(非空): 请填写字段名称',
'英文名称(非空): 请填写字段名称的英语名称', '英文名称(非空): 请填写字段名称的英语名称',
'数据类型(非空): 请填写数据类型,{char,varchar,int}这些等等,具体可以查看数据字典', '数据类型(非空): 请填写数据类型,大写{CHAR,VARCHAR,INT}这些等等,具体可以查看数据字典',
'数据长度: 请填写该字段对应的长度', '数据长度: 请填写该字段对应的长度',
'浮点精度: 请填写浮点精度', '浮点精度: 请填写浮点精度',
'显示形式: 请填写该字段显示的形式', '显示形式: 请填写该字段显示的形式',
@ -597,24 +597,24 @@ export default {
}, },
ruleData: function () { ruleData: function () {
return { return {
note: ['对应模块(必填)填写正确的模块名称', note: ['对应模块(必填):填写正确的模块名称',
'对应功能(必填)填写正确的功能名称', '对应功能(必填):填写正确的功能名称',
'对应实体(必填)填写正确的实体名称', '对应实体(必填):填写正确的实体名称',
'顺序号(必填);同功能下不重复', '顺序号(必填):同功能下不重复',
'规则编码(必填):功能编码+顺序号(格式001)', '规则编码(必填):功能编码+顺序号(格式001)',
'规则描述(非必填)', '规则描述(非必填)',
'分析图(非必填)', '分析图(非必填)',
'责任人(非必填)', '责任人(非必填):如果有多个值请使用,分割',
'任务等级(必填):值:1、2、3、4、5个等级', '任务等级(必填):值:1、2、3、4、5个等级',
'任务状态(必填):值:未发布、已发布、开发中、已完成、已撤回、已取消', '任务状态(必填):值:未发布、已发布、开发中、已完成、已撤回、已取消',
'版本状态(必填): 可填入值为[当前、历史]', '版本状态(必填): 可填入值为[当前、历史]',
'规则状态(必填): 值:正常、停用、废弃', '规则状态(必填): 值:正常、停用、废弃',
'开始时间(必填) ', '开始时间(必填):时间格式2023-04-11 14:21:22',
'任务时长(必填)', '任务时长(必填)',
'提交时间(必填)', '提交时间(必填):时间格式2023-04-11 14:21:22',
'实际时长(必填)', '实际时长(必填)',
'规则状态(必填): 值:正常、停用、废弃', '规则状态(必填):值:正常、停用、废弃',
'版本号:请填写小与五位数的正整数' '版本号(必填):请填写小于五位数的正整数'
], ],
title: '导入规则', title: '导入规则',
uploadUrl: this.ruleImportExcelUrl, uploadUrl: this.ruleImportExcelUrl,

@ -1,9 +1,11 @@
package org.jeecg.modules.demo.rulex.controller; package org.jeecg.modules.demo.rulex.controller;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -28,7 +30,9 @@ import org.jeecg.modules.fieldx.service.IFieldxService;
import org.jeecg.modules.modulex.entity.Modulex; import org.jeecg.modules.modulex.entity.Modulex;
import org.jeecg.modules.modulex.service.IModulexService; import org.jeecg.modules.modulex.service.IModulexService;
import org.jeecg.modules.system.entity.SysDictItem; import org.jeecg.modules.system.entity.SysDictItem;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.mapper.SysDictItemMapper; import org.jeecg.modules.system.mapper.SysDictItemMapper;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.tablex.entity.Tablex; import org.jeecg.modules.tablex.entity.Tablex;
import org.jeecg.modules.tablex.service.ITablexService; import org.jeecg.modules.tablex.service.ITablexService;
import org.jeecg.modules.tablex.ws.WebSocketUtils; import org.jeecg.modules.tablex.ws.WebSocketUtils;
@ -49,9 +53,13 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/** /**
* @Description: 规则管理 * @Description: 规则管理
@ -91,6 +99,11 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
@Value("${jeecg.wordPath}") @Value("${jeecg.wordPath}")
private String wordPath; private String wordPath;
@Autowired
private ISysUserService iSysUserService;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/** /**
* 分页列表查询 * 分页列表查询
* *
@ -267,7 +280,6 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
return Result.error("文件格式不正确"); return Result.error("文件格式不正确");
} }
//校验时间 //校验时间
final DateValidator validator = new DateValidatorUsingDateFormat("yyyy-MM-dd hh:mm:ss");
ImportParams params = new ImportParams(); ImportParams params = new ImportParams();
params.setTitleRows(2);//表格标题行数,默认0 params.setTitleRows(2);//表格标题行数,默认0
params.setHeadRows(1);//表头行数,默认1 params.setHeadRows(1);//表头行数,默认1
@ -291,25 +303,25 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
//必要字段判断空值 //必要字段判断空值
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
if ( if (
list.get(i).getRuleNo() == null || StringUtils.isBlank(list.get(i).getRuleNo()) ||
list.get(i).getRuleCode() == null || StringUtils.isBlank(list.get(i).getRuleCode()) ||
// list.get(i).getPmDescribe() == null && // StringUtils.isBlank() list.get(i).getPmDescribe() == null &&
list.get(i).getModuleId() == null || StringUtils.isBlank(list.get(i).getModuleId() ) ||
list.get(i).getFunctionId() == null || StringUtils.isBlank(list.get(i).getFunctionId()) ||
// list.get(i).getDiagrams() == null && // StringUtils.isBlank() list.get(i).getDiagrams() == null &&
list.get(i).getTableId() == null || StringUtils.isBlank( list.get(i).getTableId() ) ||
// list.get(i).getFieldId() == null || // StringUtils.isBlank() list.get(i).getFieldId() == null ||
list.get(i).getManagerUsers() == null || StringUtils.isBlank( list.get(i).getManagerUsers())||
list.get(i).getWorkLevel() == null || StringUtils.isBlank(list.get(i).getWorkLevel()) ||
list.get(i).getWorkStatus() == null || StringUtils.isBlank(list.get(i).getWorkStatus()) ||
// list.get(i).getStartTime() == null && // StringUtils.isBlank() list.get(i).getStartTime() == null &&
// list.get(i).getManagerUsers() == null && // StringUtils.isBlank() list.get(i).getManagerUsers() == null &&
// list.get(i).getDuration() == null && // StringUtils.isBlank() list.get(i).getDuration() == null &&
// list.get(i).getSubmitTime() == null && // StringUtils.isBlank() list.get(i).getSubmitTime() == null &&
list.get(i).getRealDuration() == null && StringUtils.isBlank(list.get(i).getRealDuration()) &&
list.get(i).getStatus() == null || StringUtils.isBlank(list.get(i).getStatus() ) ||
list.get(i).getVerisonStatus() == null || StringUtils.isBlank( list.get(i).getVerisonStatus()) ||
list.get(i).getVerison() == null) { StringUtils.isBlank(list.get(i).getVerison()) ) {
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable","true");
@ -337,70 +349,119 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
rulexList = new ArrayList<>(); rulexList = new ArrayList<>();
//判断模块输入是否错误
List<Modulex> modulexList = iModulexService.list();
for (int i = 0; i < ruleVoList.size(); i++) { for (int i = 0; i < ruleVoList.size(); i++) {
Rulex rulex = new Rulex(); Rulex rulex = new Rulex();
RuleVo ruleVo = ruleVoList.get(i); RuleVo ruleVo = ruleVoList.get(i);
//对应字段
String fieldId = ruleVo.getFieldId(); String pModuleId = ruleVo.getModulePid();
if(fieldId!=null){ String moduleId = ruleVo.getModuleId();
LambdaQueryWrapper<Fieldx> rulexLambdaQueryWrapper = new LambdaQueryWrapper<>(); //对应模块
rulexLambdaQueryWrapper.eq(Fieldx::getFieldName, fieldId); //判断上级模块是否存在
Fieldx byId = iFieldxService.getOne(rulexLambdaQueryWrapper); int n = 0;
if (byId == null) { if (!StringUtils.isBlank(pModuleId) ) {
iRuleVoService.remove(null); //存在
String pid = "";
for (Modulex modulex : modulexList) {
//判断表中是否存在
if (modulex.getModuleName().equals(pModuleId)) {
pid = modulex.getId();
break;
}
n++;
if (n == modulexList.size()) {
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) + "条数据,对应字段输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,上级模块输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,对应字段输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,上级模块输入错误,请核对");
}
}
//判断上级模块+模块是否存在
for (Modulex modulex : modulexList) {
if (modulex.getModuleName().equals(moduleId) && modulex.getPid().equals(pid)) {
rulex.setModuleId(modulex.getId());
break;
}
n++;
if (n == modulexList.size()) {
message.put("isError", "true");
message.put("closeable", "true");
message.put("status", "第" + (i + 1) + "条数据,模块输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,模块输入错误,请核对");
}
}
} else {
n = 0;
//判断模块是否存在
for (Modulex modulex : modulexList) {
if (modulex.getModuleName().equals(moduleId) && modulex.getPid() == null) {
rulex.setModuleId(modulex.getId());
break;
}
n++;
if (n == modulexList.size()) {
message.put("isError", "true");
message.put("closeable", "true");
message.put("status", "第" + (i + 1) + "条数据,模块输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,模块输入错误,请核对");
}
} }
rulex.setFieldId(byId.getId());
} }
//对应功能 //对应功能
String functionName = ruleVo.getFunctionId(); String functionName = ruleVo.getFunctionId();
LambdaQueryWrapper<Functionx> functionxLambdaQueryWrapper = new LambdaQueryWrapper<Functionx>(); LambdaQueryWrapper<Functionx> functionxLambdaQueryWrapper = new LambdaQueryWrapper<Functionx>();
functionxLambdaQueryWrapper.eq(Functionx::getFunctionName, functionName); functionxLambdaQueryWrapper.eq(Functionx::getFunctionName, functionName).eq(Functionx::getModuleId, rulex.getModuleId());
Functionx byId1 = functionxService.getOne(functionxLambdaQueryWrapper); Functionx functionx = functionxService.getOne(functionxLambdaQueryWrapper);
if (byId1 == null) { if (functionx == null) {
iRuleVoService.remove(null); iRuleVoService.remove(null);
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,对应功能输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,对应功能输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,对应功能输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,对应功能输入错误,请核对");
} }
rulex.setFunctionId(byId1.getId()); rulex.setFunctionId(functionx.getId());
//对应模块 //
String moduleName = ruleVo.getModuleId(); //对应实体
LambdaQueryWrapper<Modulex> modulexLambdaQueryWrapper = new LambdaQueryWrapper<>(); String tableId = ruleVo.getTableId();
modulexLambdaQueryWrapper.eq(Modulex::getModuleName, moduleName); LambdaQueryWrapper<Tablex> tableLambdaQueryWrapper = new LambdaQueryWrapper<>();
Modulex byId2 = iModulexService.getOne(modulexLambdaQueryWrapper); tableLambdaQueryWrapper.eq(Tablex::getTableName, tableId).eq(Tablex::getModuleId, rulex.getModuleId());
if (byId2 == null) { Tablex tablex = iTablexService.getOne(tableLambdaQueryWrapper);
if (tablex == null) {
iRuleVoService.remove(null); iRuleVoService.remove(null);
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,对应模块输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,对应实体输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,对应模块输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,对应实体输入错误,请核对");
} }
rulex.setModuleId(byId2.getId()); rulex.setTableId(tablex.getId());
//对应实体
String tableId = ruleVo.getTableId();
LambdaQueryWrapper<Tablex> tableLambdaQueryWrapper = new LambdaQueryWrapper<>();
tableLambdaQueryWrapper.eq(Tablex::getTableName, tableId);
Tablex byId3 = iTablexService.getOne(tableLambdaQueryWrapper);
if (byId3 == null) {
//对应字段
String fieldId = ruleVo.getFieldId();
String tableId1 = rulex.getTableId();
if (!StringUtils.isBlank(fieldId) ) {
LambdaQueryWrapper<Fieldx> rulexLambdaQueryWrapper = new LambdaQueryWrapper<>();
rulexLambdaQueryWrapper.eq(Fieldx::getFieldName, fieldId).eq(Fieldx::getTableId, tableId1);
Fieldx fieldx = iFieldxService.getOne(rulexLambdaQueryWrapper);
if (fieldx == null) {
iRuleVoService.remove(null); iRuleVoService.remove(null);
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,对应实体输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,对应字段输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,对应实体输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,对应字段输入错误,请核对");
}
rulex.setFieldId(fieldx.getId());
} }
rulex.setTableId(byId3.getId());
Double aDouble = null; Double aDouble = null;
try { try {
if (aDouble != null) if (aDouble != null)
@ -409,10 +470,10 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,任务时长输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,任务时长输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,任务时长输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,任务时长输入错误,请核对");
} }
Double d; Double d;
@ -421,10 +482,10 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,实际时长输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,实际时长输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,实际时长输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,实际时长输入错误,请核对");
} }
rulex.setRealDuration(d); rulex.setRealDuration(d);
Integer integer; Integer integer;
@ -433,10 +494,10 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,任务等级输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,任务等级输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,任务等级输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,任务等级输入错误,请核对");
} }
rulex.setWorkLevel(integer); rulex.setWorkLevel(integer);
String workStatus = ruleVo.getWorkStatus(); String workStatus = ruleVo.getWorkStatus();
@ -459,10 +520,10 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
else { else {
iRuleVoService.remove(null); iRuleVoService.remove(null);
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,任务状态输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,任务状态输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,任务状态输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,任务状态输入错误,请核对");
} }
String status = ruleVo.getStatus(); String status = ruleVo.getStatus();
// LambdaQueryWrapper<SysDictItem> sysDictItemLambdaQueryWrapper2 = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<SysDictItem> sysDictItemLambdaQueryWrapper2 = new LambdaQueryWrapper<>();
@ -477,10 +538,10 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
else { else {
iRuleVoService.remove(null); iRuleVoService.remove(null);
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,规则状态输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,规则状态输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,规则状态输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,规则状态输入错误,请核对");
} }
String verisonStatus = ruleVo.getVerisonStatus(); String verisonStatus = ruleVo.getVerisonStatus();
LambdaQueryWrapper<SysDictItem> sysDictItemLambdaQueryWrapper3 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysDictItem> sysDictItemLambdaQueryWrapper3 = new LambdaQueryWrapper<>();
@ -489,55 +550,88 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
if (sysDictItem3 == null) { if (sysDictItem3 == null) {
iRuleVoService.remove(null); iRuleVoService.remove(null);
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,版本状态输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,版本状态输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,版本状态输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,版本状态输入错误,请核对");
} }
rulex.setVerisonStatus(Integer.valueOf(sysDictItem3.getItemValue())); rulex.setVerisonStatus(Integer.valueOf(sysDictItem3.getItemValue()));
Date date;
//String转Date //String转Date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String startTime = ruleVo.getStartTime();
if (!StringUtils.isBlank(startTime)) {
String time = getTime(startTime);
try { try {
String startTime = ruleVo.getStartTime(); date = simpleDateFormat.parse(time);
if (startTime != null) rulex.setStartTime(date);
if (!validator.isValid(startTime)) { } catch (ParseException e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,开始时间输入错误"); message.put("status", "第" + (i + 1) + "条数据,开始时间输入错误");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,开始时间输入错误"); return Result.error("第" + (i + 1) + "条数据,开始时间输入错误");
} else { }
Date date = simpleDateFormat.parse(startTime);
rulex.setStartTime(date);
} }
String submitTime = ruleVo.getSubmitTime(); String submitTime = ruleVo.getSubmitTime();
if (submitTime != null) if (!StringUtils.isBlank(submitTime)){
if (!validator.isValid(submitTime)) { String submitTimeT = getTime(submitTime);
try {
date = simpleDateFormat.parse(submitTimeT);
rulex.setSubmitTime(date);
} catch (ParseException e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,提交时间输入错误"); message.put("status", "第" + (i + 1) + "条数据,开始时间输入错误");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,提交时间输入错误"); return Result.error("第" + (i + 1) + "条数据,开始时间输入错误");
} else {
Date date1 = simpleDateFormat.parse(submitTime);
rulex.setSubmitTime(date1);
} }
} catch (ParseException e) {
e.printStackTrace();
} }
rulex.setRuleNo(ruleVo.getRuleNo());
//规则序号
String ruleNo = ruleVo.getRuleNo();
rulex.setRuleNo(ruleNo);
//规则编码 //规则编码
String ruleCode = ruleVo.getRuleCode(); String ruleCode = ruleVo.getRuleCode();
Functionx functionxServiceById = functionxService.getById(byId1.getId()); String functionCode1 = functionx.getFunctionCode();
String functionCode = functionxServiceById.getFunctionCode(); if (ruleCode == null) {
// if (!ruleCode.matches(functionCode)) message.put("isError", "true");
// return Result.error("规则编码错误"); message.put("closeable", "true");
rulex.setRuleCode(functionCode); message.put("status", "第" + (i + 1) + "条数据,规则编码错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,规则编码错误,请核对");
}
//截取到功能编码校验(去除后三位)
if (!ruleCode.substring(0, ruleCode.length() - 3).equals(functionCode1)) {
message.put("isError", "true");
message.put("closeable", "true");
message.put("status", "第" + (i + 1) + "条数据,规则编码错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,规则编码错误,请核对");
}
//后三位
String substring = ruleCode.substring(ruleCode.length() - 3);
try {
Integer integer1 = Integer.valueOf(substring);
if (integer1 < 0) {
message.put("isError", "true");
message.put("closeable", "true");
message.put("status", "第" + (i + 1) + "条数据,规则编码错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,规则编码错误,请核对");
}
} catch (NumberFormatException e) {
message.put("isError", "true");
message.put("closeable", "true");
message.put("status", "第" + (i + 1) + "条数据,规则编码错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,规则编码错误,请核对");
}
rulex.setRuleCode(ruleCode);
//规则描述 //规则描述
String pmDescribe = ruleVo.getPmDescribe(); String pmDescribe = ruleVo.getPmDescribe();
if (pmDescribe != null) if (pmDescribe != null)
@ -547,22 +641,64 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
if (diagrams != null) if (diagrams != null)
rulex.setDiagrams(diagrams); rulex.setDiagrams(diagrams);
//版本号 //版本号
Integer integer1; String verison = ruleVo.getVerison();
if (ruleVo.getVerison() == null || verison.length() >= 5) {
message.put("isError", "true");
message.put("closeable", "true");
message.put("status", "第" + (i + 1) + "条数据,版本号错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,版本号错误,请核对");
}
try { try {
integer1 = Integer.valueOf(ruleVo.getVerison()); Integer integer2 = Integer.valueOf(verison);
} catch (Exception e) { if (integer2 > 0)
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 rulex.setVerison(String.valueOf(integer2));
else {
message.put("isError", "true"); message.put("isError", "true");
message.put("closeable","true"); message.put("closeable", "true");
message.put("status","第"+(i + 1) +"条数据,版本号输入错误,请核对"); message.put("status", "第" + (i + 1) + "条数据,版本号输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (i + 1) + "条数据,版本号输入错误,请核对");
}
} catch (NumberFormatException e) {
message.put("isError", "true");
message.put("closeable", "true");
message.put("status", "第" + (i + 1) + "条数据,版本号输入错误,请核对");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第"+(i + 1) +"条数据,版本号输入错误,请核对"); return Result.error("第" + (i + 1) + "条数据,版本号输入错误,请核对");
} }
rulex.setVerison(String.valueOf(integer1));
//责任人 //责任人
String managerUsers = ruleVo.getManagerUsers(); String managerUsers = ruleVo.getManagerUsers();
if (managerUsers != null) if (managerUsers != null) {
rulex.setManagerUsers(managerUsers); LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
String[] split = managerUsers.split(",");
sysUserLambdaQueryWrapper.in(SysUser::getUsername, split);
List<SysUser> iSysUserServiceOne = iSysUserService.list(sysUserLambdaQueryWrapper);
if (iSysUserServiceOne == null) {
message.put("isError", "true");
message.put("status", "导入失败,责任人信息查询不到");
message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,责任人信息查询不到");
}
if (iSysUserServiceOne.size() > 1) {
List<String> list3 = iSysUserServiceOne.stream().map(SysUser::getId).collect(Collectors.toList());
if (list3 == null) {
message.put("isError", "true");
message.put("status", "导入失败,责任人信息查询不到");
message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,责任人信息查询不到");
}
rulex.setManagerUsers(Joiner.on(",").join(list3));
} else if (iSysUserServiceOne.size() == 1) {
String id = iSysUserServiceOne.get(0).getId();
rulex.setManagerUsers(id);
}
}
message.put("status", "正在读取数据"); message.put("status", "正在读取数据");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
//存入集合待存真实表 //存入集合待存真实表
@ -617,5 +753,51 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
} }
return null; return null;
} }
/**
* 将日期数字转为时间格式
* daysDuration = 44745
*
* @param daysDuration
* @return
*/
public String getTime(String daysDuration) {
//如果不是数字
if(!isNumeric(daysDuration)){
return daysDuration;
}
//如果是数字
BigDecimal bd = new BigDecimal(daysDuration);
int days = bd.intValue();//天数
int mills = (int) Math.round(bd.subtract(new BigDecimal(days)).doubleValue() * 24 * 3600);
//获取时间
Calendar c = Calendar.getInstance();
c.set(1900, 0, 1);
c.add(Calendar.DATE, days);
int hour = mills / 3600;
int minute = (mills - hour * 3600) / 60;
int second = mills - hour * 3600 - minute * 60;
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, second);
return simpleDateFormat.format(c.getTime());
}
/**
* 校验是否数据含小数点
*
* @param str
* @return
*/
private static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]+\\.*[0-9]*");
Matcher isNum = pattern.matcher(str);
if(!isNum.matches()){
return false;
}
return true;
}
} }

@ -1,7 +1,10 @@
package org.jeecg.modules.demo.rulex.entity; package org.jeecg.modules.demo.rulex.entity;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@ -59,6 +62,14 @@ public class RuleVo implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期") @ApiModelProperty(value = "更新日期")
private String updateTime; private String updateTime;
/**
* 对应模块父id
*/
@TableField(exist = false)
@Excel(name = "对应模块父模块", width = 15)
@ApiModelProperty(value = "对应模块")
private java.lang.String modulePid;
/** /**
* 对应模块id * 对应模块id
*/ */

@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.aliyuncs.utils.StringUtils; import com.aliyuncs.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@ -436,6 +437,7 @@ public class FieldxController extends JeecgController<Fieldx, IFieldxService> {
if (StringUtils.isEmpty(String.valueOf(cell))) { if (StringUtils.isEmpty(String.valueOf(cell))) {
break; break;
} }
ExcelInfo excelInfo = new ExcelInfo(); ExcelInfo excelInfo = new ExcelInfo();
excelInfo.setcells(cells); excelInfo.setcells(cells);
Fieldx222 fieldx222 = new Fieldx222(); Fieldx222 fieldx222 = new Fieldx222();
@ -455,6 +457,7 @@ public class FieldxController extends JeecgController<Fieldx, IFieldxService> {
fieldx222Service.remove(null); fieldx222Service.remove(null);
return Result.error("序号为" + (r - 2) + "的中文名称不能为空"); return Result.error("序号为" + (r - 2) + "的中文名称不能为空");
} }
fieldx222.setFieldName(excelInfo.getFieldName());
Fieldx222 fieldx2221=fieldx222Service.query().eq("field_name",excelInfo.getFieldName()).one(); Fieldx222 fieldx2221=fieldx222Service.query().eq("field_name",excelInfo.getFieldName()).one();
if(fieldx2221!=null){ if(fieldx2221!=null){
message.put("isError", "true"); message.put("isError", "true");
@ -466,6 +469,17 @@ public class FieldxController extends JeecgController<Fieldx, IFieldxService> {
} }
fieldx222.setFieldName(excelInfo.getFieldName()); fieldx222.setFieldName(excelInfo.getFieldName());
LambdaQueryWrapper<Fieldx> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(Fieldx::getTableId,fieldx222.getTableId()).eq(Fieldx::getFieldName,fieldx222.getFieldName());
List<Fieldx> list=fieldxService.list(queryWrapper);
if(list!=null&&list.size()!=0){
message.put("isError", "true");
message.put("status","序号为" + (r - 2) + "的字段名此表已存在不能重复");
message.put("closeable","true");
webSocketUtils.sendMessage(loginUser.getId(), message);
fieldx222Service.remove(null);
return Result.error("序号为" + (r - 2) + "的字段名此表已存在不能重复");
}
if (StringUtil.isBlank(excelInfo.getFieldEnName())) { if (StringUtil.isBlank(excelInfo.getFieldEnName())) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","序号为" + (r - 2) + "的”英文名称”不能为空"); message.put("status","序号为" + (r - 2) + "的”英文名称”不能为空");

@ -41,7 +41,7 @@ public class Fieldx implements Serializable {
@Dict(dictTable="tablex",dicText = "table_name",dicCode = "id") @Dict(dictTable="tablex",dicText = "table_name",dicCode = "id")
private java.lang.String tableId; private java.lang.String tableId;
/**中文名称*/ /**中文名称*/
@Excel(name = "中文名称", width = 15) @Excel(name = "中文名称", width = 15,dicCode = "field_name")
@ApiModelProperty(value = "中文名称") @ApiModelProperty(value = "中文名称")
private java.lang.String fieldName; private java.lang.String fieldName;
/**英文名称*/ /**英文名称*/

@ -1,10 +1,13 @@
package org.jeecg.modules.fieldx.service.impl; package org.jeecg.modules.fieldx.service.impl;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.fieldx.controller.FieldxController;
import org.jeecg.modules.fieldx.entity.Fieldx; import org.jeecg.modules.fieldx.entity.Fieldx;
import org.jeecg.modules.fieldx.entity.Fieldx222; import org.jeecg.modules.fieldx.entity.Fieldx222;
import org.jeecg.modules.fieldx.mapper.FieldxMapper; import org.jeecg.modules.fieldx.mapper.FieldxMapper;
import org.jeecg.modules.fieldx.service.IFieldxService; import org.jeecg.modules.fieldx.service.IFieldxService;
import org.jeecg.modules.tablex.entity.Tablex;
import org.jeecg.modules.tablex.service.ITablexService;
import org.jeecg.modules.tablex.ws.WebSocketUtils; import org.jeecg.modules.tablex.ws.WebSocketUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -20,10 +23,16 @@ import java.util.Map;
* @Date: 2023-04-10 * @Date: 2023-04-10
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service
public class FieldxServiceImpl extends ServiceImpl<FieldxMapper, Fieldx> implements IFieldxService { public class FieldxServiceImpl extends ServiceImpl<FieldxMapper, Fieldx> implements IFieldxService {
@Autowired @Autowired
private WebSocketUtils webSocketUtils; private WebSocketUtils webSocketUtils;
@Autowired
FieldxController fieldxController;
@Autowired
private ITablexService tablexService;
@Override @Override
public void saveSingleBatch(List<Fieldx> fieldxList, LoginUser loginUser, Map<String, String> message) { public void saveSingleBatch(List<Fieldx> fieldxList, LoginUser loginUser, Map<String, String> message) {
for (int i = 0; i < fieldxList.size(); i++){ for (int i = 0; i < fieldxList.size(); i++){
@ -31,6 +40,9 @@ public class FieldxServiceImpl extends ServiceImpl<FieldxMapper, Fieldx> impleme
Thread.sleep(500L); Thread.sleep(500L);
message.put("uploaded", String.valueOf(i + 1)); message.put("uploaded", String.valueOf(i + 1));
this.save(fieldxList.get(i)); this.save(fieldxList.get(i));
Tablex tablex = tablexService.getById(fieldxList.get(i).getTableId());
tablexService.updateVersion(fieldxList.get(i).getTableId(), tablex.getVerison() + 1);
tablexService.updateSql(fieldxList.get(i).getTableId(), fieldxController.createSql(fieldxList.get(i).getTableId()));
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
} catch (InterruptedException e) { } catch (InterruptedException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);

@ -425,6 +425,13 @@ public class ModulexServiceImpl extends ServiceImpl<ModulexMapper, Modulex> impl
int annual = 0; int annual = 0;
for (int k = 0; k < physicalNumberOfCells; k++) { for (int k = 0; k < physicalNumberOfCells; k++) {
Cell cell = row.getCell(k); Cell cell = row.getCell(k);
if(cell==null){
message.put("isError", "true");
message.put("status","表格中有空白行,"+"请重新导入");
message.put("closeable","true");
webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("数据匹配读取失败,"+"请重新导入");
}
String value = cell.getStringCellValue(); String value = cell.getStringCellValue();
switch (k){ switch (k){
case 0: case 0:
@ -707,8 +714,14 @@ public class ModulexServiceImpl extends ServiceImpl<ModulexMapper, Modulex> impl
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,责任人信息查询不到"); return Result.error("导入失败,责任人信息查询不到");
} }
String strip = org.apache.commons.lang.StringUtils.strip(list.toString(), "[]"); // String strip = org.apache.commons.lang.StringUtils.strip(list.toString(), "[]");
modulex.setManagerUsers(strip); String s = "";
for (int j = 0; j < list.size(); j++) {
s = s + list.get(j);
if (j < list.size() - 1)
s = s + ",";
}
modulex.setManagerUsers(s);
} }
} }
String workLevel = modulexTemplate.getWorkLevel(); String workLevel = modulexTemplate.getWorkLevel();

@ -293,7 +293,7 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
message.put("uploaded", "0"); message.put("uploaded", "0");
message.put("status", "判断文件结构"); message.put("status", "判断文件结构");
message.put("isError", "false"); message.put("isError", "false");
message.put("closeable","false"); message.put("closeable", "false");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
try { try {
@ -303,8 +303,8 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
(!originalFilename.endsWith("xls") && (!originalFilename.endsWith("xls") &&
!originalFilename.endsWith("xlsx"))) { !originalFilename.endsWith("xlsx"))) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","文件格式不正确"); message.put("status", "文件格式不正确");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("文件格式不正确"); return Result.error("文件格式不正确");
} }
@ -320,16 +320,16 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
list = ExcelImportUtil.importExcel(file.getInputStream(), TablexVo.class, params); list = ExcelImportUtil.importExcel(file.getInputStream(), TablexVo.class, params);
} catch (Exception e) { } catch (Exception e) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","文件读取失败"); message.put("status", "文件读取失败");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("文件读取失败"); return Result.error("文件读取失败");
} }
//判断文件中是否存在数据 //判断文件中是否存在数据
if (list == null || list.size() == 0) { if (list == null || list.size() == 0) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","Excel数据为空"); message.put("status", "Excel数据为空");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("Excel数据为空"); return Result.error("Excel数据为空");
} }
@ -363,8 +363,8 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
if (voList.size() == 0) { if (voList.size() == 0) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,数据为空"); message.put("status", "导入失败,数据为空");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,数据为空"); return Result.error("导入失败,数据为空");
} }
@ -382,20 +382,20 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
String moduleId = voList.get(i).getModuleId(); String moduleId = voList.get(i).getModuleId();
if (moduleId == null || moduleId.equals("")) { if (moduleId == null || moduleId.equals("")) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,对应模块填写不能为空"); message.put("status", "导入失败,对应模块填写不能为空");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("对应模块填写不能为空"); return Result.error("对应模块填写不能为空");
} }
//判断实体是否已存在 //判断实体是否已存在
LambdaQueryWrapper<Tablex> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Tablex> query = new LambdaQueryWrapper<>();
query.eq(Tablex::getModuleId,voList.get(i).getModuleId()); query.eq(Tablex::getModuleId, voList.get(i).getModuleId());
Tablex tablex1 = tablexService.getOne(query); Tablex tablex1 = tablexService.getOne(query);
if (tablex1 != null){ if (tablex1 != null) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的实体已存在"); message.put("status", "导入失败,第" + (i + 1) + "条的实体已存在");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的实体已存在"); return Result.error("导入失败,第" + (i + 1) + "条的实体已存在");
} }
@ -405,8 +405,8 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
Modulex modulex = modulexService.getOne(queryWrapper); Modulex modulex = modulexService.getOne(queryWrapper);
if (modulex == null) { if (modulex == null) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,对应模块填写错误"); message.put("status", "导入失败,对应模块填写错误");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("对应模块填写错误"); return Result.error("对应模块填写错误");
} }
@ -421,19 +421,19 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
//int verisonStatusInt = verisonStatus.equals("当前") ? 1 : verisonStatus.equals("历史") ? 0 : 3; //int verisonStatusInt = verisonStatus.equals("当前") ? 1 : verisonStatus.equals("历史") ? 0 : 3;
//判断版本号 //判断版本号
if(voList.get(i).getVerison() == null || voList.get(i).getVerison().equals("")){ if (voList.get(i).getVerison() == null || voList.get(i).getVerison().equals("")) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的版本号填写不能为空!"); message.put("status", "导入失败,第" + (i + 1) + "条的版本号填写不能为空!");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的版本号填写不能为空!"); return Result.error("导入失败,第" + (i + 1) + "条的版本号填写不能为空!");
} }
//判断版本号是否为正整数且长度不能大于5 //判断版本号是否为正整数且长度不能大于5
if (!voList.get(i).getVerison().matches("^[0-9]*[1-9][0-9]*$") || voList.get(i).getVerison().length() > 5){ if (!voList.get(i).getVerison().matches("^[0-9]*[1-9][0-9]*$") || voList.get(i).getVerison().length() > 5) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的版本状态填写错误!"); message.put("status", "导入失败,第" + (i + 1) + "条的版本状态填写错误!");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的版本状态填写错误!"); return Result.error("导入失败,第" + (i + 1) + "条的版本状态填写错误!");
} }
@ -460,41 +460,42 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
tablex.setCreateBy(loginUser.getRealname()); tablex.setCreateBy(loginUser.getRealname());
tablex.setStatus(Integer.valueOf(voList.get(i).getStatus())); tablex.setStatus(Integer.valueOf(voList.get(i).getStatus()));
tablex.setVerisonStatus(Integer.valueOf(voList.get(i).getVerisonStatus())); tablex.setVerisonStatus(Integer.valueOf(voList.get(i).getVerisonStatus()));
tablex.setTableStructure("CREATE TABLE '" + voList.get(i).getTableEnName() + "' ();");
tablexList.add(tablex); tablexList.add(tablex);
} else { } else {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的版本状态填写错误!"); message.put("status", "导入失败,第" + (i + 1) + "条的版本状态填写错误!");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的版本状态填写错误!"); return Result.error("导入失败,第" + (i + 1) + "条的版本状态填写错误!");
} }
} else { } else {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的实体状态填写错误!"); message.put("status", "导入失败,第" + (i + 1) + "条的实体状态填写错误!");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的实体状态填写错误!"); return Result.error("导入失败,第" + (i + 1) + "条的实体状态填写错误!");
} }
} else { } else {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的英文名称填写错误!"); message.put("status", "导入失败,第" + (i + 1) + "条的英文名称填写错误!");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的英文名称填写错误!"); return Result.error("导入失败,第" + (i + 1) + "条的英文名称填写错误!");
} }
} else { } else {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的中文名称填写错误!"); message.put("status", "导入失败,第" + (i + 1) + "条的中文名称填写错误!");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的中文名称填写错误!"); return Result.error("导入失败,第" + (i + 1) + "条的中文名称填写错误!");
} }
} else { } else {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","导入失败,第" + (i + 1) + "条的对应模块填写错误!"); message.put("status", "导入失败,第" + (i + 1) + "条的对应模块填写错误!");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,第" + (i + 1) + "条的对应模块填写错误!"); return Result.error("导入失败,第" + (i + 1) + "条的对应模块填写错误!");
} }
@ -506,15 +507,15 @@ public class TablexController extends JeecgController<Tablex, ITablexService> {
tablexService.saveSingleBatch(tablexList, loginUser, message); tablexService.saveSingleBatch(tablexList, loginUser, message);
message.put("status", "上传成功"); message.put("status", "上传成功");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
} catch (Exception e) { } catch (Exception e) {
message.put("isError", "true"); message.put("isError", "true");
message.put("status","文件导入失败"); message.put("status", "文件导入失败");
message.put("closeable","true"); message.put("closeable", "true");
webSocketUtils.sendMessage(loginUser.getId(), message); webSocketUtils.sendMessage(loginUser.getId(), message);
log.error(e.getMessage(),e); log.error(e.getMessage(), e);
return Result.error("文件导入失败"); return Result.error("文件导入失败");
} }
return Result.ok("文件导入成功!"); return Result.ok("文件导入成功!");

Loading…
Cancel
Save