diff --git a/ant-design-vue-jeecg/src/views/fieldx/FieldxList.vue b/ant-design-vue-jeecg/src/views/fieldx/FieldxList.vue
index 8d4a655..55e2769 100644
--- a/ant-design-vue-jeecg/src/views/fieldx/FieldxList.vue
+++ b/ant-design-vue-jeecg/src/views/fieldx/FieldxList.vue
@@ -456,4 +456,4 @@
\ No newline at end of file
+
diff --git a/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue b/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
index 9e91def..abd8159 100644
--- a/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
+++ b/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
@@ -99,21 +99,19 @@
导入功能
-
- 导入规则
-
-
+ 导入规则
+
导入实体
- 返回
导出综合表
+ 导入字段
- 导入字段
-
+ 返回
@@ -538,8 +536,8 @@ export default {
],
title: '导入模块',
uploadUrl: this.modelImportExcelUrl,
- downUrl: "temp/2.xls",
- downName: "mokua.xls"
+ downUrl: "temp/modulex.xls",
+ downName: "模块管理模板.xls"
}
},
@@ -550,11 +548,11 @@ export default {
'中文名称(非空): 请填写字段名称',
'英文名称(非空): 请填写字段名称的英语名称',
'数据类型(非空): 请填写数据类型,{char,varchar,int}这些等等,具体可以查看数据字典',
- '数据长度(非空): 请填写该字段对应的长度',
+ '数据长度: 请填写该字段对应的长度',
'浮点精度: 请填写浮点精度',
'显示形式: 请填写该字段显示的形式',
- '是否主键(非空): 请填写该字段是否为主键,填:是或否',
- '是否外键(非空): 请填写该字段是否为外键,填:是或否',
+ '是否主键: 请填写该字段是否为主键,填:是或否',
+ '是否外键: 请填写该字段是否为外键,填:是或否',
'关联实体: 请填写该字段关联的其它实体表',
'关联字段: 请填写该字段关联实体表中对应的字段',
'是否为空(非空): 请填写该字段是否为空,填:是或否',
@@ -565,7 +563,8 @@ export default {
],
title: '导入字段',
uploadUrl: this.importExcelUrlf,
- downUrl: this. exportExcelUrlf
+ downUrl: "temp/fieldx.xls",
+ downName: "字段.xls"
}
},
ruleData: function () {
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/controller/FieldxController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/controller/FieldxController.java
index c7d7cc8..865de2f 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/controller/FieldxController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/controller/FieldxController.java
@@ -324,14 +324,24 @@ public class FieldxController extends JeecgController {
message.put("isVisible", "true");
message.put("uploaded", "0");
message.put("status", "判断文件结构");
+ message.put("isError", "false");
+ message.put("closeable","false");
webSocketUtils.sendMessage(loginUser.getId(), message);
if (file == null) {
+ message.put("isError", "true");
+ message.put("status","文件上传失败");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("文件上传失败");
}
//判断格式
String path = file.getOriginalFilename();
if (!(path.endsWith(".xls") || path.endsWith(".xlsx"))) {
+ message.put("isError", "true");
+ message.put("status","文件格式上传有误");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("文件格式上传有误");
}
//根据格式读取
@@ -347,7 +357,14 @@ public class FieldxController extends JeecgController {
//判断表结构
Row row=first.getRow(2);
if(row==null)
+ {
+ message.put("isError", "true");
+ message.put("status","表结构不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("表结构不能为空");
+ }
+
if(!"序号".equals(row.getCell(0).getStringCellValue())||!"表名".equals(row.getCell(1).getStringCellValue())
||!"中文名称".equals(row.getCell(2).getStringCellValue())||!"英文名称".equals(row.getCell(3).getStringCellValue())
@@ -357,8 +374,14 @@ public class FieldxController extends JeecgController {
||!"关联实体".equals(row.getCell(10).getStringCellValue())||!"关联字段".equals(row.getCell(11).getStringCellValue())
||!"是否为空".equals(row.getCell(12).getStringCellValue())||!"是否重复".equals(row.getCell(13).getStringCellValue())
||!"字段规则".equals(row.getCell(14).getStringCellValue())||!"字段状态".equals(row.getCell(15).getStringCellValue())
- ||!"版本状态".equals(row.getCell(16).getStringCellValue()))
+ ||!"版本状态".equals(row.getCell(16).getStringCellValue())){
+ message.put("isError", "true");
+ message.put("status","表结构不正确");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("表结构不正确");
+ }
+
//读取表
@@ -374,56 +397,86 @@ public class FieldxController extends JeecgController {
for(int r=3;r<=Sheet.getLastRowNum();r++) {
Row cells = Sheet.getRow(r);
String cell = cells.getCell(0).getStringCellValue();
- if (StringUtils.isEmpty(cell)) {
+
+ if (StringUtils.isEmpty(String.valueOf(cell))) {
break;
}
ExcelInfo excelInfo = new ExcelInfo();
excelInfo.setcells(cells);
Fieldx222 fieldx222 = new Fieldx222();
if (StringUtil.isBlank(excelInfo.getTableId())) {
+ message.put("isError", "true");
+ message.put("status","序号为" + (r - 2) + "的”表名”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("序号为" + (r - 2) + "的表名不能为空");
}
fieldx222.setTableId(excelInfo.getTableId());
if (StringUtil.isBlank(excelInfo.getFieldName())) {
+ message.put("isError", "true");
+ message.put("status","序号为 + (r - 2) + 的”中文名称”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("序号为" + (r - 2) + "的中文名称不能为空");
}
fieldx222.setFieldName(excelInfo.getFieldName());
if (StringUtil.isBlank(excelInfo.getFieldEnName())) {
+ message.put("isError", "true");
+ message.put("status","序号为" + (r - 2) + "的”英文名称”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("序号为" + (r - 2) + "的英文名称不能为空");
}
fieldx222.setFieldEnName(excelInfo.getFieldEnName());
if (StringUtil.isBlank(excelInfo.getType())) {
+ message.put("isError", "true");
+ message.put("status","序号为" + (r - 2) + "的”数据类型”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("序号为" + (r - 2) + "的数据类型不能为空");
}
fieldx222.setType(excelInfo.getType());
- if (StringUtil.isBlank(excelInfo.getLength())) {
- return Result.error("序号为" + (r - 2) + "的数据长度不能为空");
- }
- fieldx222.setLength(excelInfo.getLength());
+
if (StringUtil.isBlank(excelInfo.getIsPk())) {
- return Result.error("序号为" + (r - 2) + "的是否主键不能为空");
+ fieldx222.setIsPk("0");
}
fieldx222.setIsPk(excelInfo.getIsPk());
if (StringUtil.isBlank(excelInfo.getIsFk())) {
- return Result.error("序号为" + (r - 2) + "的是否外键不能为空");
+ fieldx222.setIsFk("0");
}
fieldx222.setIsFk(excelInfo.getIsFk());
if (StringUtil.isBlank(excelInfo.getIsNull())) {
+ message.put("isError", "true");
+ message.put("status","序号为" + (r - 2) + "的”是否为空”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("序号为" + (r - 2) + "的是否为空不能为空");
}
- fieldx222.setIsNull(excelInfo.getIsNull());
+ fieldx222.setIsFk(excelInfo.getIsFk());
if (StringUtil.isBlank(excelInfo.getIsUniqueness())) {
+ message.put("isError", "true");
+ message.put("status","序号为" + (r - 2) + "的”是否重复”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("序号为" + (r - 2) + "的是否重复不能为空");
}
fieldx222.setIsUniqueness(excelInfo.getIsUniqueness());
+ if (StringUtil.isBlank(excelInfo.getStatus())) {
+ message.put("isError", "true");
+ message.put("status","序号为" + (r - 2) + "的”字段状态”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
+ return Result.error("序号为" + (r - 2) + "的”字段状态”不能为空");
+ }
+ fieldx222.setStatus(excelInfo.getStatus());
if (StringUtil.isBlank(excelInfo.getVerisonStatus())) {
- return Result.error("序号为" + (r - 2) + "的字段状态不能为空");
+ message.put("isError", "true");
+ message.put("status","序号为" + (r - 2) + "的”版本状态”不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
+ return Result.error("序号为" + (r - 2) + "的”版本状态”不能为空");
}
fieldx222.setVerisonStatus(excelInfo.getVerisonStatus());
- if (StringUtil.isBlank(excelInfo.getVerison())) {
- return Result.error("序号为" + (r - 2) + "的版本状态不能为空");
- }
- fieldx222.setVerison(excelInfo.getVerison());
if (!StringUtils.isEmpty(excelInfo.getAccuracy()))
fieldx222.setAccuracy(excelInfo.getAccuracy());
@@ -435,11 +488,14 @@ public class FieldxController extends JeecgController {
fieldx222.setAssociateField(excelInfo.getAssociateField());
if (!StringUtils.isEmpty(excelInfo.getRule()))
fieldx222.setRull(excelInfo.getRule());
+ if (!StringUtils.isEmpty(excelInfo.getLength()))
+ fieldx222.setLength(excelInfo.getLength());
list.add(fieldx222);
}
}
message.put("status", "数据预读入成功");
+ message.put("closeable","true");
webSocketUtils.sendMessage(loginUser.getId(), message);
message.put("status", "正在上传");
@@ -449,40 +505,56 @@ public class FieldxController extends JeecgController {
message.put("records", String.valueOf(list222.size()));
webSocketUtils.sendMessage(loginUser.getId(), message);
fieldx222Service.remove(null);
- if(list222==null)
+ if(list222==null){
+ message.put("isError", "true");
+ message.put("status","文件格式不正确");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("文件上传失败");
-
- List list1= list222.stream().map((item)->{
- Fieldx fieldx=new Fieldx();
- String id=item.getId();
- fieldx.setTableId(item.getTableId());
- fieldx.setFieldName(item.getFieldName());
- fieldx.setFieldEnName(item.getFieldName());
- fieldx.setType(Integer.valueOf(item.getType()));
- fieldx.setLength(Integer.valueOf(item.getLength()));
- fieldx.setIsPk(Integer.valueOf(item.getIsPk()));
- fieldx.setIsFk(Integer.valueOf(item.getIsFk()));
- fieldx.setIsNull(Integer.valueOf(item.getIsNull()));
- fieldx.setIsUniqueness(Integer.valueOf(item.getIsUniqueness()));
- fieldx.setVerisonStatus(Integer.valueOf(item.getVerisonStatus()));
- fieldx.setVerison(Integer.valueOf(item.getVerison()));
- if(!StringUtils.isEmpty(item.getAccuracy()))
- fieldx.setAccuracy(Integer.valueOf(item.getAccuracy()));
- if(!StringUtils.isEmpty(item.getFormat()))
- fieldx.setFormat(item.getFormat());
- if(!StringUtils.isEmpty(item.getAssociateTable()))
- fieldx.setAssociateTable(item.getAssociateTable());
- if(!StringUtils.isEmpty(item.getAssociateField()))
- fieldx.setAssociateField(item.getAssociateField());
- if(!StringUtils.isEmpty(item.getRull()))
- fieldx.setRule(item.getRull());
- return fieldx;
- }).collect(Collectors.toList());
-
- //将中间表数据导入数据库
- fieldxService.saveBatch(list1);
- message.put("status", "上传成功");
- webSocketUtils.sendMessage(loginUser.getId(), message);
+ }
+ //将中间表导入数据库
+
+ try {
+ List list1= list222.stream().map((item)->{
+ Fieldx fieldx=new Fieldx();
+ String id=item.getId();
+ fieldx.setTableId(item.getTableId());
+ fieldx.setFieldName(item.getFieldName());
+ fieldx.setFieldEnName(item.getFieldName());
+ fieldx.setType(Integer.valueOf(item.getType()));
+ fieldx.setIsPk(Integer.valueOf(item.getIsPk()));
+ fieldx.setIsFk(Integer.valueOf(item.getIsFk()));
+ fieldx.setIsNull(Integer.valueOf(item.getIsNull()));
+ fieldx.setIsUniqueness(Integer.valueOf(item.getIsUniqueness()));
+ fieldx.setStatus(Integer.valueOf(item.getStatus()));
+ fieldx.setVerisonStatus(Integer.valueOf(item.getVerisonStatus()));
+ if(!StringUtils.isEmpty(item.getAccuracy()))
+ fieldx.setAccuracy(Integer.valueOf(item.getAccuracy()));
+ if(!StringUtils.isEmpty(item.getFormat()))
+ fieldx.setFormat(item.getFormat());
+ if(!StringUtils.isEmpty(item.getAssociateTable()))
+ fieldx.setAssociateTable(item.getAssociateTable());
+ if(!StringUtils.isEmpty(item.getAssociateField()))
+ fieldx.setAssociateField(item.getAssociateField());
+ if(!StringUtils.isEmpty(item.getRull()))
+ fieldx.setRule(item.getRull());
+ if(!StringUtils.isEmpty(item.getLength()))
+ fieldx.setLength(Integer.valueOf(item.getLength()));
+ return fieldx;
+ }).collect(Collectors.toList());
+
+ //将表数据导入数据库
+
+ fieldxService.saveSingleBatch(list1,loginUser, message);
+ message.put("status", "上传成功");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
+ } catch (Exception e) {
+ message.put("isError", "true");
+ message.put("status","单元格样式错误,请根据注意事项保证单元格样式正确");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
+ }
return Result.OK("文件上传成功");
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/dto/ExcelInfo.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/dto/ExcelInfo.java
index 163cef2..9755ec6 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/dto/ExcelInfo.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/dto/ExcelInfo.java
@@ -102,12 +102,12 @@ public class ExcelInfo {
return getvalue(value);
}
- public String getVerisonStatus(){
+ public String getStatus(){
String value=cells.getCell(15).getStringCellValue();
return getvalue(value);
}
- public String getVerison(){
+ public String getVerisonStatus(){
String value=cells.getCell(16).getStringCellValue();
return getvalue(value);
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/entity/Fieldx222.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/entity/Fieldx222.java
index 20ee1bc..628ba15 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/entity/Fieldx222.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/entity/Fieldx222.java
@@ -80,12 +80,14 @@ public class Fieldx222 implements Serializable {
@Excel(name = "字段规则", width = 15)
@ApiModelProperty(value = "字段规则")
private java.lang.String rull;
+ /**字段状态*/
+ @Excel(name = "字段状态", width = 15,dicCode = "a_status")
+ @Dict(dicCode = "a_status")
+ @ApiModelProperty(value = "字段状态")
+ private java.lang.String status;
/**版本状态*/
@Excel(name = "版本状态", width = 15 ,dicCode = "verison_status")
+ @Dict(dicCode = "verison_status")
@ApiModelProperty(value = "版本状态")
private java.lang.String verisonStatus;
- /**版本号*/
- @Excel(name = "版本号", width = 15)
- @ApiModelProperty(value = "版本号")
- private java.lang.String verison;
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/IFieldxService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/IFieldxService.java
index e843e77..b7399e2 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/IFieldxService.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/IFieldxService.java
@@ -1,7 +1,13 @@
package org.jeecg.modules.fieldx.service;
+import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.fieldx.entity.Fieldx;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.fieldx.entity.Fieldx222;
+import org.jeecg.modules.tablex.entity.Tablex;
+
+import java.util.List;
+import java.util.Map;
/**
* @Description: 字段管理
@@ -10,5 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @Version: V1.0
*/
public interface IFieldxService extends IService {
-
+ void saveSingleBatch(List fieldxList, LoginUser loginUser, Map message);
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/impl/FieldxServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/impl/FieldxServiceImpl.java
index dc4985b..8f89b33 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/impl/FieldxServiceImpl.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/fieldx/service/impl/FieldxServiceImpl.java
@@ -1,12 +1,19 @@
package org.jeecg.modules.fieldx.service.impl;
+import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.fieldx.entity.Fieldx;
+import org.jeecg.modules.fieldx.entity.Fieldx222;
import org.jeecg.modules.fieldx.mapper.FieldxMapper;
import org.jeecg.modules.fieldx.service.IFieldxService;
+import org.jeecg.modules.tablex.ws.WebSocketUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+import java.util.Map;
+
/**
* @Description: 字段管理
* @Author: jeecg-boot
@@ -15,5 +22,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
*/
@Service
public class FieldxServiceImpl extends ServiceImpl implements IFieldxService {
-
+ @Autowired
+ private WebSocketUtils webSocketUtils;
+ @Override
+ public void saveSingleBatch(List fieldxList, LoginUser loginUser, Map message) {
+ for (int i = 0; i < fieldxList.size(); i++){
+ try {
+ Thread.sleep(500L);
+ message.put("uploaded", String.valueOf(i + 1));
+ this.save(fieldxList.get(i));
+ webSocketUtils.sendMessage(loginUser.getId(), message);
+ } catch (InterruptedException e) {
+ log.error(e.getMessage(), e);
+ }
+ }
+ }
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/service/impl/ModulexServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/service/impl/ModulexServiceImpl.java
index 1307bc8..af92a3e 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/service/impl/ModulexServiceImpl.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/service/impl/ModulexServiceImpl.java
@@ -339,14 +339,24 @@ public class ModulexServiceImpl extends ServiceImpl impl
message.put("isVisible", "true");
message.put("uploaded", "0");
message.put("status", "判断文件结构");
+ message.put("isError", "false");
+ message.put("closeable","false");
webSocketUtils.sendMessage(loginUser.getId(), message);
String username = loginUser.getUsername();
if (file.isEmpty()) {
- return Result.error("上传为空");
+ message.put("isError", "true");
+ message.put("status","导入失败,上传为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
+ return Result.error("导入失败,上传为空");
}
String filename = file.getOriginalFilename();
String fileSuffix = filename.substring(filename.lastIndexOf("."));
if (!fileSuffix.equals(".xls") && !fileSuffix.equals(".xlsx")) {
+ message.put("isError", "true");
+ message.put("status","文件类型不对");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("文件类型不对");
}
List modulexVoList = new ArrayList<>();
@@ -396,24 +406,40 @@ public class ModulexServiceImpl extends ServiceImpl impl
break;
case 1:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "项目名称为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "项目名称为空");
}
modulexVo.setProjectId(value);
break;
case 2:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "中文名称为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "中文名称为空");
}
modulexVo.setModuleName(value);
break;
case 3:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "英文名称为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "英文名称为空");
}
modulexVo.setModuleEnName(value);
break;
case 4:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "模块编码为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "模块编码为空");
}
modulexVo.setModuleCode(value);
@@ -426,12 +452,20 @@ public class ModulexServiceImpl extends ServiceImpl impl
break;
case 7:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "任务等级为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "任务等级为空");
}
modulexVo.setWorkLevel(value);
break;
case 8:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "开发状态为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "开发状态为空");
}
modulexVo.setWorkStatus(value);
@@ -441,6 +475,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
break;
case 10:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "任务时长为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "任务时长为空");
}
modulexVo.setDuration(value);
@@ -453,6 +491,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
break;
case 13:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "实际时长为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "实际时长为空");
}
modulexVo.setRealDuration(value);
@@ -465,26 +507,46 @@ public class ModulexServiceImpl extends ServiceImpl impl
break;
case 16:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "模块状态为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "模块状态为空");
}
modulexVo.setStatus(value);
break;
case 17:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "版本状态为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "版本状态为空");
}
modulexVo.setVerisonStatus(value);
break;
case 18:
if (value == null || value == "") {
+ message.put("isError", "true");
+ message.put("status","文件读取失败"+"第" + (j + 1) + "行" + propertyNames.get(k) + "版本号为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("第" + (j + 1) + "行" + propertyNames.get(k) + "版本号为空");
}else if(value.length()<=0||value.length()>50){
+ message.put("isError", "true");
+ message.put("status","文件读取失败,"+"版本号不符合规范");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("版本号不符合规范");
}else {
modulexVo.setVerison(value);
}
break;
default:
+ message.put("isError", "true");
+ message.put("status","文件读取失败,"+"未知错误");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("未知错误");
}
modulexVo.setUploadPerson(username);
@@ -502,6 +564,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
webSocketUtils.sendMessage(loginUser.getId(), message);
List ids = new ArrayList<>();
if(modulexTemplates==null||modulexTemplates.size()==0){
+ message.put("isError", "true");
+ message.put("status","导入失败,预读数据失败,获取不到表格中的数据,请重新导入");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,预读数据失败,获取不到表格中的数据,请重新导入");
}
else {
@@ -511,6 +577,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
}
boolean isTure = modulexTemplateService.removeByIds(ids);
if(!isTure){
+ message.put("isError", "true");
+ message.put("status","预读数据删除失败,请重新导入");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("预读数据删除失败,请重新导入");
}
message.put("status", "导入数据中");
@@ -524,25 +594,45 @@ public class ModulexServiceImpl extends ServiceImpl impl
queryWrapper.eq(Modulex::getModuleName,pid);
List list = this.list(queryWrapper);
if(list==null ||list.size()==0){
+ message.put("isError", "true");
+ message.put("status","导入失败,此模块不存在上级");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,此模块不存在上级");
}
Modulex one =list.get(0);
if(one==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,此模块不存在上级");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,此模块不存在上级");
}String pid1 = one.getId();
if(pid1==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,此模块不存在上级");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,此模块不存在上级");
}
modulex.setPid(pid1);
}
String projectId = modulexTemplate.getProjectId();
if(projectId==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,项目名称不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,项目名称不能为空");
}else {
LambdaQueryWrapper projectxLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectxLambdaQueryWrapper.eq(Projectx::getProjectName,projectId);
Projectx projectx = projectxService.getOne(projectxLambdaQueryWrapper);
if(projectx==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,项目名称不存在");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,项目名称不存在");
} else {
String projectxId = projectx.getId();
@@ -552,6 +642,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
String moduleName = modulexTemplate.getModuleName();
String pid1 = modulex.getPid();
if(moduleName==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,中文名称不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,中文名称不能为空");
}else if(pid1==null){
modulex.setModuleName(moduleName);
@@ -560,14 +654,26 @@ public class ModulexServiceImpl extends ServiceImpl impl
modulexLambdaQueryWrapper.eq(Modulex::getPid,pid1).eq(Modulex::getModuleName,moduleName);
Modulex modulex1 = this.getOne(modulexLambdaQueryWrapper);
if(modulex1!=null){
+ message.put("isError", "true");
+ message.put("status","导入失败,相同的上级模块不能重名");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,相同的上级模块不能重名");
}modulex.setModuleName(moduleName);
String moduleEnName = modulexTemplate.getModuleEnName();
if(moduleEnName==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,英文名称不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,英文名称不能为空");
}modulex.setModuleEnName(moduleEnName);
String moduleCode = modulexTemplate.getModuleCode();
if(moduleCode==null||moduleCode.length()>30){
+ message.put("isError", "true");
+ message.put("status","导入失败,模块编码不能为空或者模块编码过长");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,模块编码不能为空或者模块编码过长");
}
String modulecode = null;
@@ -577,10 +683,18 @@ public class ModulexServiceImpl extends ServiceImpl impl
String firstChar = this.toFirstChar(moduleName);
String projectCode = projectx.getProjectCode();
if(projectCode==null){
+ message.put("isError", "true");
+ message.put("status","项目编码不存在,请重新填写");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("项目编码不存在,请重新填写");
}
modulecode = projectCode + firstChar;
if(!modulecode.equals(moduleCode)){
+ message.put("isError", "true");
+ message.put("status","模块编码不规范,导入失败");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("模块编码不规范,导入失败");
}
modulex.setModuleCode(moduleCode);
@@ -597,10 +711,18 @@ public class ModulexServiceImpl extends ServiceImpl impl
sysUserLambdaQueryWrapper.in(SysUser::getUsername,split);
List 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("导入失败,责任人信息查询不到");
}else {
List list = iSysUserServiceOne.stream().map(SysUser::getId).collect(Collectors.toList());
if (list == null) {
+ message.put("isError", "true");
+ message.put("status","导入失败,责任人信息查询不到");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,责任人信息查询不到");
}
modulex.setManagerUsers(String.valueOf(list));
@@ -608,17 +730,29 @@ public class ModulexServiceImpl extends ServiceImpl impl
}
String workLevel = modulexTemplate.getWorkLevel();
if(StringUtils.isBlank(workLevel)){
+ message.put("isError", "true");
+ message.put("status","导入失败,任务等级不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,任务等级不能为空");
}
else {
Integer integer = Integer.valueOf(workLevel);
if(integer<=0&&integer>=6){
+ message.put("isError", "true");
+ message.put("status","导入失败,任务等级不规范");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,任务等级不规范");
}
modulex.setWorkLevel(integer);
}
String workStatus = modulexTemplate.getWorkStatus();
if(StringUtils.isBlank(workStatus)){
+ message.put("isError", "true");
+ message.put("status","导入失败,工作状态不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,工作状态不能为空");
}else {
Integer integer = 100;
@@ -636,6 +770,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
case "已取出": integer = 9;
break;
default:
+ message.put("isError", "true");
+ message.put("status","导入失败,开发状态不规范");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,开发状态不规范");
}
modulex.setWorkStatus(integer);
@@ -646,6 +784,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
}else {
Boolean result = this.checkTime(publishTime);
if(!result){
+ message.put("isError", "true");
+ message.put("status","导入失败,日期格式不规范");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,日期格式不规范");
}else {
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(publishTime);
@@ -654,6 +796,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
}
String duration = modulexTemplate.getDuration();
if(StringUtils.isBlank(duration)){
+ message.put("isError", "true");
+ message.put("status","导入失败,任务时长不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,任务时长不能为空");
}else {
double parseDouble = Double.parseDouble(duration);
@@ -665,6 +811,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
}else {
Boolean result = this.checkTime(startTime);
if(!result){
+ message.put("isError", "true");
+ message.put("status","导入失败,开始时间不规范");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,开始时间不规范");
}else {
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startTime);
@@ -677,6 +827,10 @@ public class ModulexServiceImpl extends ServiceImpl impl
}else {
Boolean result = this.checkTime(submitTime);
if(!result){
+ message.put("isError", "true");
+ message.put("status","导入失败,提交时间不规范");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,提交时间不规范");
}else {
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(submitTime);
@@ -685,10 +839,18 @@ public class ModulexServiceImpl extends ServiceImpl impl
}
String realDuration = modulexTemplate.getRealDuration();
if(StringUtils.isBlank(realDuration)){
+ message.put("isError", "true");
+ message.put("status","导入失败,实际时长不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,实际时长不能为空");
}else {
double parseDouble = Double.parseDouble(realDuration);
if(parseDouble<0.1){
+ message.put("isError", "true");
+ message.put("status","导入失败,最小时间0.1小时");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,最小时间0.1小时");
}
modulex.setRealDuration(parseDouble);
@@ -701,10 +863,18 @@ public class ModulexServiceImpl extends ServiceImpl impl
sysRoleLambdaQueryWrapper.eq(SysRole::getRoleName,userRole);
SysRole one = iSysRoleService.getOne(sysRoleLambdaQueryWrapper);
if(one==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,用户角色不存在");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,用户角色不存在");
}
String useRole = one.getId();
if(useRole==null){
+ message.put("isError", "true");
+ message.put("status","导入失败,用户角色不存在");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,用户角色不存在");
} modulex.setUserRole(useRole);
}
@@ -714,11 +884,19 @@ public class ModulexServiceImpl extends ServiceImpl impl
}else {
Boolean extracted = extracted(modulex, relatedBean);
if(!extracted){
+ message.put("isError", "true");
+ message.put("status","关联实体不存在");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("关联实体不存在");
}
}
String status = modulexTemplate.getStatus();
if(StringUtils.isBlank(status)){
+ message.put("isError", "true");
+ message.put("status","导入失败,模块状态不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,模块状态不能为空");
}else {
Integer integer = 100;
@@ -730,12 +908,20 @@ public class ModulexServiceImpl extends ServiceImpl impl
case "废弃": integer = 9;
break;
default:
+ message.put("isError", "true");
+ message.put("status","导入失败,模块状态不规范匹配不到");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,模块状态不规范匹配不到");
}
modulex.setStatus(integer);
}
String verisonStatus = modulexTemplate.getVerisonStatus();
if(StringUtils.isBlank(verisonStatus)){
+ message.put("isError", "true");
+ message.put("status","导入失败,版本状态不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,版本状态不能为空");
}else {
Integer integer = 100;
@@ -745,12 +931,20 @@ public class ModulexServiceImpl extends ServiceImpl impl
case "历史": integer = 0;
break;
default:
+ message.put("isError", "true");
+ message.put("status","导入失败,版本状态不规范,匹配失败");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
Result.error("导入失败,版本状态不规范,匹配失败");
}
modulex.setVerisonStatus(integer);
}
String verison = modulexTemplate.getVerison();
if(StringUtils.isBlank(verison)){
+ message.put("isError", "true");
+ message.put("status","导入失败,版本号不能为空");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("导入失败,版本号不能为空");
}else {
int parseInt = Integer.parseInt(verison);
@@ -760,8 +954,15 @@ public class ModulexServiceImpl extends ServiceImpl impl
}
boolean result = this.saveSingleBatch(modulexList, loginUser, message);
if(!result){
+ message.put("isError", "true");
+ message.put("status","未知错误导入失败,请重新导入");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.error("未知错误导入失败,请重新导入");
}
+ message.put("status", "导入成功");
+ message.put("closeable","true");
+ webSocketUtils.sendMessage(loginUser.getId(), message);
return Result.OK("导入成功");
}
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java
index 02f6c9b..9888b99 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java
@@ -337,7 +337,6 @@ public class TablexController extends JeecgController {
message.put("status", "数据预读入");
webSocketUtils.sendMessage(loginUser.getId(), message);
Iterator iterator = list.iterator();
-// for (TablexVo tablexVo : list) {
for (TablexVo tablexVo : list) {
//判断当前存入条是否为空值
if (StringUtils.isBlank(tablexVo.getModuleId()) &&
@@ -348,8 +347,6 @@ public class TablexController extends JeecgController {
StringUtils.isBlank(tablexVo.getStatus()) &&
StringUtils.isBlank(tablexVo.getVerisonStatus()) &&
StringUtils.isBlank(tablexVo.getVerison())) {
-// list.remove(tablexVo);
-// break;
continue;
}
//判断版本号长度
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/entity/Tablex.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/entity/Tablex.java
index 42e5c6e..a541d2f 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/entity/Tablex.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/entity/Tablex.java
@@ -36,7 +36,7 @@ public class Tablex implements Serializable {
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**对应模块id*/
- @Excel(name = "对应模块id", width = 15, dictTable = "modulex", dicText = "module_name", dicCode = "id")
+ @Excel(name = "对应模块", width = 15, dictTable = "modulex", dicText = "module_name", dicCode = "id")
@Dict(dictTable = "modulex", dicText = "module_name", dicCode = "id")
@ApiModelProperty(value = "对应模块id")
private java.lang.String moduleId;
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/impl/TablexServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/impl/TablexServiceImpl.java
index be1132c..1fad2b0 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/impl/TablexServiceImpl.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/impl/TablexServiceImpl.java
@@ -43,7 +43,7 @@ public class TablexServiceImpl extends ServiceImpl impleme
public void saveSingleBatch(List tablexList, LoginUser loginUser, Map message) {
for (int i = 0; i < tablexList.size(); i++){
try {
- Thread.sleep(3000L);
+ Thread.sleep(1000L);
message.put("uploaded", String.valueOf(i + 1));
this.save(tablexList.get(i));
webSocketUtils.sendMessage(loginUser.getId(), message);
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/vo/TablexVo.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/vo/TablexVo.java
index 52232a2..10f703c 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/vo/TablexVo.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/vo/TablexVo.java
@@ -35,7 +35,7 @@ public class TablexVo implements Serializable {
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**对应模块id*/
- @Excel(name = "对应模块id", width = 15, dictTable = "modulex", dicText = "module_name", dicCode = "id")
+ @Excel(name = "对应模块", width = 15, dictTable = "modulex", dicText = "module_name", dicCode = "id")
@Dict(dictTable = "modulex", dicText = "module_name", dicCode = "id")
@ApiModelProperty(value = "对应模块id")
private java.lang.String moduleId;