|
|
|
@ -29,6 +29,8 @@ import org.jeecg.modules.fieldx.entity.Fieldx; |
|
|
|
|
import org.jeecg.modules.fieldx.service.IFieldxService; |
|
|
|
|
import org.jeecg.modules.modulex.entity.Modulex; |
|
|
|
|
import org.jeecg.modules.modulex.service.IModulexService; |
|
|
|
|
import org.jeecg.modules.projectx.entity.Projectx; |
|
|
|
|
import org.jeecg.modules.projectx.service.impl.ProjectxServiceImpl; |
|
|
|
|
import org.jeecg.modules.system.entity.SysDictItem; |
|
|
|
|
import org.jeecg.modules.system.entity.SysUser; |
|
|
|
|
import org.jeecg.modules.system.mapper.SysDictItemMapper; |
|
|
|
@ -96,6 +98,9 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
@Autowired |
|
|
|
|
private WebSocketUtils webSocketUtils; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private ProjectxServiceImpl projectxService; |
|
|
|
|
|
|
|
|
|
@Value("${jeecg.wordPath}") |
|
|
|
|
private String wordPath; |
|
|
|
|
|
|
|
|
@ -258,13 +263,13 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
message.put("uploaded", "0"); |
|
|
|
|
message.put("status", "判断文件结构"); |
|
|
|
|
message.put("isError", "false"); |
|
|
|
|
message.put("closeable","false"); |
|
|
|
|
message.put("closeable", "false"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
//判断文件是否为空
|
|
|
|
|
if (file == null) { |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable","true"); |
|
|
|
|
message.put("status","文件上传失败,请重新上传"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "文件上传失败,请重新上传"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("文件上传失败,请重新上传"); |
|
|
|
|
} |
|
|
|
@ -274,8 +279,8 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
(!originalFilename.endsWith("xls") && |
|
|
|
|
!originalFilename.endsWith("xlsx"))) { |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable","true"); |
|
|
|
|
message.put("status","文件格式不正确"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "文件格式不正确"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("文件格式不正确"); |
|
|
|
|
} |
|
|
|
@ -285,8 +290,8 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
params.setHeadRows(1);//表头行数,默认1
|
|
|
|
|
params.setNeedSave(true);//是否需要保存上传的Excel,默认为false
|
|
|
|
|
|
|
|
|
|
message.put("status", "数据预读入"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
message.put("status", "数据预读入"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
List<RuleVo> list = null; |
|
|
|
|
try { |
|
|
|
|
list = ExcelImportUtil.importExcel(file.getInputStream(), RuleVo.class, params); |
|
|
|
@ -294,44 +299,45 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
if (list == null || list.size() <= 0) { |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable","true"); |
|
|
|
|
message.put("status","文件导入失败:模板中暂无数据"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("文件导入失败:模板中暂无数据"); |
|
|
|
|
} |
|
|
|
|
//必要字段判断空值
|
|
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
|
if ( |
|
|
|
|
StringUtils.isBlank(list.get(i).getRuleNo()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getRuleCode()) || |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "文件导入失败:模板中暂无数据"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("文件导入失败:模板中暂无数据"); |
|
|
|
|
} |
|
|
|
|
//必要字段判断空值
|
|
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
|
if ( |
|
|
|
|
StringUtils.isBlank(list.get(i).getRuleNo()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getProjectId()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getRuleCode()) || |
|
|
|
|
// StringUtils.isBlank() list.get(i).getPmDescribe() == null &&
|
|
|
|
|
StringUtils.isBlank(list.get(i).getModuleId() ) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getFunctionId()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getModuleId()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getFunctionId()) || |
|
|
|
|
// StringUtils.isBlank() list.get(i).getDiagrams() == null &&
|
|
|
|
|
StringUtils.isBlank( list.get(i).getTableId() ) || |
|
|
|
|
// StringUtils.isBlank(list.get(i).getTableId()) ||
|
|
|
|
|
// StringUtils.isBlank() list.get(i).getFieldId() == null ||
|
|
|
|
|
StringUtils.isBlank( list.get(i).getManagerUsers())|| |
|
|
|
|
StringUtils.isBlank(list.get(i).getWorkLevel()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getWorkStatus()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getManagerUsers()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getWorkLevel()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getWorkStatus()) || |
|
|
|
|
// StringUtils.isBlank() list.get(i).getStartTime() == null &&
|
|
|
|
|
// StringUtils.isBlank() list.get(i).getManagerUsers() == null &&
|
|
|
|
|
// StringUtils.isBlank() list.get(i).getDuration() == null &&
|
|
|
|
|
// StringUtils.isBlank() list.get(i).getSubmitTime() == null &&
|
|
|
|
|
StringUtils.isBlank(list.get(i).getRealDuration()) && |
|
|
|
|
StringUtils.isBlank(list.get(i).getStatus() ) || |
|
|
|
|
StringUtils.isBlank( list.get(i).getVerisonStatus()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getVerison()) ) { |
|
|
|
|
// StringUtils.isBlank(list.get(i).getRealDuration()) &&
|
|
|
|
|
StringUtils.isBlank(list.get(i).getStatus()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getVerisonStatus()) || |
|
|
|
|
StringUtils.isBlank(list.get(i).getVerison())) { |
|
|
|
|
|
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable","true"); |
|
|
|
|
message.put("status","文件导入失败:"+"第"+(i + 1) + "条存在必填数据为空,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("文件导入失败:"+"第"+(i + 1) + "条不能为空,请核对"); |
|
|
|
|
} |
|
|
|
|
//存入预存表
|
|
|
|
|
iRuleVoService.save(list.get(i)); |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "文件导入失败:" + "第" + (i + 1) + "条存在必填数据为空,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("文件导入失败:" + "第" + (i + 1) + "条不能为空,请核对"); |
|
|
|
|
} |
|
|
|
|
//存入预存表
|
|
|
|
|
iRuleVoService.save(list.get(i)); |
|
|
|
|
} |
|
|
|
|
List<Rulex> rulexList; |
|
|
|
|
try { |
|
|
|
|
//取出预存表校验字段
|
|
|
|
@ -339,8 +345,8 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
|
|
|
|
|
if (ruleVoList.size() <= 0 || ruleVoList == null) { |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable","true"); |
|
|
|
|
message.put("status","文件导入失败,模板不匹配有空值"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "文件导入失败,模板不匹配有空值"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("文件导入失败,模板不匹配有空值"); |
|
|
|
|
} |
|
|
|
@ -355,13 +361,24 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
for (int i = 0; i < ruleVoList.size(); i++) { |
|
|
|
|
Rulex rulex = new Rulex(); |
|
|
|
|
RuleVo ruleVo = ruleVoList.get(i); |
|
|
|
|
|
|
|
|
|
String projectId = ruleVo.getProjectId(); |
|
|
|
|
String pModuleId = ruleVo.getModulePid(); |
|
|
|
|
String moduleId = ruleVo.getModuleId(); |
|
|
|
|
//对应模块
|
|
|
|
|
LambdaQueryWrapper<Projectx> projectxLambdaQueryWrapper =new LambdaQueryWrapper<>(); |
|
|
|
|
projectxLambdaQueryWrapper.eq(Projectx::getProjectName,projectId); |
|
|
|
|
|
|
|
|
|
Projectx projectx = projectxService.getOne(projectxLambdaQueryWrapper); |
|
|
|
|
if (projectx==null){ |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,项目输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,项目输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
//判断上级模块是否存在
|
|
|
|
|
int n = 0; |
|
|
|
|
if (!StringUtils.isBlank(pModuleId) ) { |
|
|
|
|
if (!StringUtils.isBlank(pModuleId)) { |
|
|
|
|
//存在
|
|
|
|
|
String pid = ""; |
|
|
|
|
for (Modulex modulex : modulexList) { |
|
|
|
@ -380,10 +397,20 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,上级模块输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//判断上级模块+模块是否存在
|
|
|
|
|
//判断上级模块+模块是否存在且是否属于当前项目下
|
|
|
|
|
|
|
|
|
|
for (Modulex modulex : modulexList) { |
|
|
|
|
if (modulex.getModuleName().equals(moduleId) && modulex.getPid().equals(pid)) { |
|
|
|
|
if (!modulex.getProjectId().equals(projectx.getId())) |
|
|
|
|
{ |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,该模块与项目不对应输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,该模块与项目不对应输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
rulex.setModuleId(modulex.getId()); |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
n++; |
|
|
|
@ -397,9 +424,17 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
n = 0; |
|
|
|
|
//判断模块是否存在
|
|
|
|
|
//判断模块是否存在且是否属于当前项目下
|
|
|
|
|
for (Modulex modulex : modulexList) { |
|
|
|
|
if (modulex.getModuleName().equals(moduleId) && modulex.getPid() == null) { |
|
|
|
|
if (!modulex.getProjectId().equals(projectx.getId())) |
|
|
|
|
{ |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,该模块与项目不对应输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,该模块与项目不对应输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
rulex.setModuleId(modulex.getId()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
@ -430,25 +465,28 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
rulex.setFunctionId(functionx.getId()); |
|
|
|
|
//
|
|
|
|
|
//对应实体
|
|
|
|
|
|
|
|
|
|
String tableId = ruleVo.getTableId(); |
|
|
|
|
LambdaQueryWrapper<Tablex> tableLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
tableLambdaQueryWrapper.eq(Tablex::getTableName, tableId).eq(Tablex::getModuleId, rulex.getModuleId()); |
|
|
|
|
Tablex tablex = iTablexService.getOne(tableLambdaQueryWrapper); |
|
|
|
|
if (tablex == null) { |
|
|
|
|
if (!StringUtils.isBlank(tableId)) { |
|
|
|
|
LambdaQueryWrapper<Tablex> tableLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
tableLambdaQueryWrapper.eq(Tablex::getTableName, tableId).eq(Tablex::getModuleId, rulex.getModuleId()); |
|
|
|
|
Tablex tablex = iTablexService.getOne(tableLambdaQueryWrapper); |
|
|
|
|
if (tablex == null) { |
|
|
|
|
|
|
|
|
|
iRuleVoService.remove(null); |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,对应实体输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,对应实体输入错误,请核对"); |
|
|
|
|
iRuleVoService.remove(null); |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,对应实体输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,对应实体输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
rulex.setTableId(tablex.getId()); |
|
|
|
|
} |
|
|
|
|
rulex.setTableId(tablex.getId()); |
|
|
|
|
|
|
|
|
|
//对应字段
|
|
|
|
|
String fieldId = ruleVo.getFieldId(); |
|
|
|
|
String tableId1 = rulex.getTableId(); |
|
|
|
|
if (!StringUtils.isBlank(fieldId) ) { |
|
|
|
|
if (!StringUtils.isBlank(fieldId)) { |
|
|
|
|
LambdaQueryWrapper<Fieldx> rulexLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
rulexLambdaQueryWrapper.eq(Fieldx::getFieldName, fieldId).eq(Fieldx::getTableId, tableId1); |
|
|
|
|
Fieldx fieldx = iFieldxService.getOne(rulexLambdaQueryWrapper); |
|
|
|
@ -462,11 +500,17 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
} |
|
|
|
|
rulex.setFieldId(fieldx.getId()); |
|
|
|
|
} |
|
|
|
|
Double aDouble = null; |
|
|
|
|
Double duration = null; |
|
|
|
|
try { |
|
|
|
|
if (aDouble != null) |
|
|
|
|
aDouble = Double.valueOf(ruleVo.getDuration()); |
|
|
|
|
rulex.setDuration(aDouble); |
|
|
|
|
if (duration < 0){ |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,任务时长输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,任务时长输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
duration = Double.valueOf(ruleVo.getDuration()); |
|
|
|
|
rulex.setDuration(duration); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
|
|
|
|
|
message.put("isError", "true"); |
|
|
|
@ -477,29 +521,37 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Double d; |
|
|
|
|
try { |
|
|
|
|
d = Double.valueOf(ruleVo.getRealDuration()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
|
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,实际时长输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,实际时长输入错误,请核对"); |
|
|
|
|
String realDuration = ruleVo.getRealDuration(); |
|
|
|
|
if (!StringUtils.isBlank(realDuration)) { |
|
|
|
|
try { |
|
|
|
|
d = Double.valueOf(realDuration); |
|
|
|
|
if (d < 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 (Exception e) { |
|
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
|
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,实际时长输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,实际时长输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
rulex.setRealDuration(d); |
|
|
|
|
} |
|
|
|
|
rulex.setRealDuration(d); |
|
|
|
|
Integer integer; |
|
|
|
|
try { |
|
|
|
|
integer = Integer.valueOf(ruleVo.getWorkLevel()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了
|
|
|
|
|
|
|
|
|
|
String workLevel = ruleVo.getWorkLevel(); |
|
|
|
|
if (!workLevel.matches("^[1-5]$")){ |
|
|
|
|
message.put("isError", "true"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,任务等级输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,任务等级输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
rulex.setWorkLevel(integer); |
|
|
|
|
rulex.setWorkLevel(Integer.valueOf(workLevel)); |
|
|
|
|
String workStatus = ruleVo.getWorkStatus(); |
|
|
|
|
// LambdaQueryWrapper<SysDictItem> sysDictItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
// sysDictItemLambdaQueryWrapper.eq(SysDictItem::getItemText, workStatus).eq(SysDictItem::getDictId, "1645268542514421762");
|
|
|
|
@ -576,7 +628,7 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
String submitTime = ruleVo.getSubmitTime(); |
|
|
|
|
if (!StringUtils.isBlank(submitTime)){ |
|
|
|
|
if (!StringUtils.isBlank(submitTime)) { |
|
|
|
|
String submitTimeT = getTime(submitTime); |
|
|
|
|
try { |
|
|
|
|
date = simpleDateFormat.parse(submitTimeT); |
|
|
|
@ -591,9 +643,7 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//规则序号
|
|
|
|
|
String ruleNo = ruleVo.getRuleNo(); |
|
|
|
|
rulex.setRuleNo(ruleNo); |
|
|
|
|
|
|
|
|
|
//规则编码
|
|
|
|
|
String ruleCode = ruleVo.getRuleCode(); |
|
|
|
|
String functionCode1 = functionx.getFunctionCode(); |
|
|
|
@ -632,96 +682,109 @@ public class RulexController extends JeecgController<Rulex, IRulexService> { |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,规则编码错误,请核对"); |
|
|
|
|
} |
|
|
|
|
rulex.setRuleCode(ruleCode); |
|
|
|
|
//规则描述
|
|
|
|
|
String pmDescribe = ruleVo.getPmDescribe(); |
|
|
|
|
if (pmDescribe != null) |
|
|
|
|
rulex.setPmDescribe(pmDescribe); |
|
|
|
|
//分析图
|
|
|
|
|
String diagrams = ruleVo.getDiagrams(); |
|
|
|
|
if (diagrams != null) |
|
|
|
|
rulex.setDiagrams(diagrams); |
|
|
|
|
//版本号
|
|
|
|
|
String verison = ruleVo.getVerison(); |
|
|
|
|
if (ruleVo.getVerison() == null || verison.length() >= 5) { |
|
|
|
|
//规则序号
|
|
|
|
|
String ruleNo = ruleVo.getRuleNo(); |
|
|
|
|
String c = ruleCode.substring(ruleCode.length() - ruleNo.length()); |
|
|
|
|
//三位数整数且与编码后三位相同
|
|
|
|
|
if (!(c.equals(ruleNo) && ruleNo.matches("^[0-9]*[1-9][0-9]*$") && (Integer.valueOf(ruleNo) < 1000))) { |
|
|
|
|
message.put("isError", "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) + "条数据,版本号错误,请核对"); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,规则序号错误,请核对"); |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
Integer integer2 = Integer.valueOf(verison); |
|
|
|
|
if (integer2 > 0) |
|
|
|
|
rulex.setVerison(String.valueOf(integer2)); |
|
|
|
|
else { |
|
|
|
|
rulex.setRuleNo(ruleNo); |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
//规则描述
|
|
|
|
|
String pmDescribe = ruleVo.getPmDescribe(); |
|
|
|
|
if (pmDescribe != null) |
|
|
|
|
rulex.setPmDescribe(pmDescribe); |
|
|
|
|
//版本号
|
|
|
|
|
String verison = ruleVo.getVerison(); |
|
|
|
|
if (ruleVo.getVerison() == null || verison.length() >= 5) { |
|
|
|
|
message.put("isError", "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) + "条数据,版本号输入错误,请核对"); |
|
|
|
|
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) + "条数据,版本号输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//责任人
|
|
|
|
|
String managerUsers = ruleVo.getManagerUsers(); |
|
|
|
|
if (managerUsers != null) { |
|
|
|
|
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
String[] split = managerUsers.split(","); |
|
|
|
|
sysUserLambdaQueryWrapper.in(SysUser::getUsername, split); |
|
|
|
|
List<SysUser> iSysUserServiceOne = iSysUserService.list(sysUserLambdaQueryWrapper); |
|
|
|
|
if (iSysUserServiceOne == null) { |
|
|
|
|
try { |
|
|
|
|
Integer integer2 = Integer.valueOf(verison); |
|
|
|
|
if (integer2 > 0) |
|
|
|
|
rulex.setVerison(String.valueOf(integer2)); |
|
|
|
|
else { |
|
|
|
|
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("status", "导入失败,责任人信息查询不到"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
message.put("status", "第" + (i + 1) + "条数据,版本号输入错误,请核对"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.error("导入失败,责任人信息查询不到"); |
|
|
|
|
return Result.error("第" + (i + 1) + "条数据,版本号输入错误,请核对"); |
|
|
|
|
} |
|
|
|
|
if (iSysUserServiceOne.size() > 1) { |
|
|
|
|
List<String> list3 = iSysUserServiceOne.stream().map(SysUser::getId).collect(Collectors.toList()); |
|
|
|
|
if (list3 == null) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//责任人
|
|
|
|
|
String managerUsers = ruleVo.getManagerUsers(); |
|
|
|
|
if (!StringUtils.isBlank(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("导入失败,责任人信息查询不到"); |
|
|
|
|
} |
|
|
|
|
rulex.setManagerUsers(Joiner.on(",").join(list3)); |
|
|
|
|
} else if (iSysUserServiceOne.size() == 1) { |
|
|
|
|
String id = iSysUserServiceOne.get(0).getId(); |
|
|
|
|
rulex.setManagerUsers(id); |
|
|
|
|
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", "正在读取数据"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
//存入集合待存真实表
|
|
|
|
|
rulexList.add(rulex); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} finally{ |
|
|
|
|
//清理预存表
|
|
|
|
|
iRuleVoService.remove(null); |
|
|
|
|
} |
|
|
|
|
//存入真实表
|
|
|
|
|
Boolean aBoolean = rulexService.saveRule(rulexList, loginUser, message); |
|
|
|
|
|
|
|
|
|
message.put("status", "正在读取数据"); |
|
|
|
|
if (aBoolean) { |
|
|
|
|
message.put("status", "导入成功"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
//存入集合待存真实表
|
|
|
|
|
rulexList.add(rulex); |
|
|
|
|
return Result.ok("文件导入成功!"); |
|
|
|
|
} else { |
|
|
|
|
return Result.error("文件导入失败!"); |
|
|
|
|
} |
|
|
|
|
} finally { |
|
|
|
|
//清理预存表
|
|
|
|
|
iRuleVoService.remove(null); |
|
|
|
|
} |
|
|
|
|
//存入真实表
|
|
|
|
|
Boolean aBoolean = rulexService.saveRule(rulexList, loginUser, message); |
|
|
|
|
|
|
|
|
|
if (aBoolean) { |
|
|
|
|
message.put("status", "导入成功"); |
|
|
|
|
message.put("closeable", "true"); |
|
|
|
|
webSocketUtils.sendMessage(loginUser.getId(), message); |
|
|
|
|
return Result.ok("文件导入成功!"); |
|
|
|
|
}else { |
|
|
|
|
return Result.error("文件导入失败!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping(value = "/sort") |
|
|
|
|
public Result<?> sort(@RequestParam(name = "id", required = true) String id) { |
|
|
|
|
return rulexService.sort(id); |
|
|
|
|