diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java index 67cc313..6c33279 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java @@ -53,9 +53,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -99,6 +102,8 @@ public class RulexController extends JeecgController { @Autowired private ISysUserService iSysUserService; + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + /** * 分页列表查询 * @@ -275,7 +280,6 @@ public class RulexController extends JeecgController { return Result.error("文件格式不正确"); } //校验时间 - final DateValidator validator = new DateValidatorUsingDateFormat("yyyy-MM-dd hh:mm:ss"); ImportParams params = new ImportParams(); params.setTitleRows(2);//表格标题行数,默认0 params.setHeadRows(1);//表头行数,默认1 @@ -345,70 +349,119 @@ public class RulexController extends JeecgController { webSocketUtils.sendMessage(loginUser.getId(), message); rulexList = new ArrayList<>(); + + //判断模块输入是否错误 + List modulexList = iModulexService.list(); for (int i = 0; i < ruleVoList.size(); i++) { Rulex rulex = new Rulex(); RuleVo ruleVo = ruleVoList.get(i); - //对应字段 - String fieldId = ruleVo.getFieldId(); - if(fieldId!=null){ - LambdaQueryWrapper rulexLambdaQueryWrapper = new LambdaQueryWrapper<>(); - rulexLambdaQueryWrapper.eq(Fieldx::getFieldName, fieldId); - Fieldx byId = iFieldxService.getOne(rulexLambdaQueryWrapper); - if (byId == 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) +"条数据,对应字段输入错误,请核对"); + + String pModuleId = ruleVo.getModulePid(); + String moduleId = ruleVo.getModuleId(); + //对应模块 + //判断上级模块是否存在 + int n = 0; + if (pModuleId != 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("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,上级模块输入错误,请核对"); + webSocketUtils.sendMessage(loginUser.getId(), message); + 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(); LambdaQueryWrapper functionxLambdaQueryWrapper = new LambdaQueryWrapper(); - functionxLambdaQueryWrapper.eq(Functionx::getFunctionName, functionName); - Functionx byId1 = functionxService.getOne(functionxLambdaQueryWrapper); - if (byId1 == null) { + functionxLambdaQueryWrapper.eq(Functionx::getFunctionName, functionName).eq(Functionx::getModuleId, rulex.getModuleId()); + Functionx functionx = functionxService.getOne(functionxLambdaQueryWrapper); + if (functionx == 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) +"条数据,对应功能输入错误,请核对"); - } - rulex.setFunctionId(byId1.getId()); - //对应模块 - String moduleName = ruleVo.getModuleId(); - LambdaQueryWrapper modulexLambdaQueryWrapper = new LambdaQueryWrapper<>(); - modulexLambdaQueryWrapper.eq(Modulex::getModuleName, moduleName); - Modulex byId2 = iModulexService.getOne(modulexLambdaQueryWrapper); - if (byId2 == null) { - - iRuleVoService.remove(null); - message.put("isError", "true"); - message.put("closeable","true"); - message.put("status","第"+(i + 1) +"条数据,对应模块输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,对应功能输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,对应模块输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,对应功能输入错误,请核对"); } - rulex.setModuleId(byId2.getId()); + rulex.setFunctionId(functionx.getId()); +// //对应实体 String tableId = ruleVo.getTableId(); LambdaQueryWrapper tableLambdaQueryWrapper = new LambdaQueryWrapper<>(); - tableLambdaQueryWrapper.eq(Tablex::getTableName, tableId); - Tablex byId3 = iTablexService.getOne(tableLambdaQueryWrapper); - if (byId3 == null) { + 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) +"条数据,对应实体输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,对应实体输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,对应实体输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,对应实体输入错误,请核对"); + } + rulex.setTableId(tablex.getId()); + + //对应字段 + String fieldId = ruleVo.getFieldId(); + String tableId1 = rulex.getTableId(); + if (fieldId != null) { + LambdaQueryWrapper rulexLambdaQueryWrapper = new LambdaQueryWrapper<>(); + rulexLambdaQueryWrapper.eq(Fieldx::getFieldName, fieldId).eq(Fieldx::getTableId, tableId1); + Fieldx fieldx = iFieldxService.getOne(rulexLambdaQueryWrapper); + if (fieldx == 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) + "条数据,对应字段输入错误,请核对"); + } + rulex.setFieldId(fieldx.getId()); } - rulex.setTableId(byId3.getId()); Double aDouble = null; try { if (aDouble != null) @@ -417,10 +470,10 @@ public class RulexController extends JeecgController { } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 message.put("isError", "true"); - message.put("closeable","true"); - message.put("status","第"+(i + 1) +"条数据,任务时长输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,任务时长输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,任务时长输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,任务时长输入错误,请核对"); } Double d; @@ -429,10 +482,10 @@ public class RulexController extends JeecgController { } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 message.put("isError", "true"); - message.put("closeable","true"); - message.put("status","第"+(i + 1) +"条数据,实际时长输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,实际时长输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,实际时长输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,实际时长输入错误,请核对"); } rulex.setRealDuration(d); Integer integer; @@ -441,16 +494,16 @@ public class RulexController extends JeecgController { } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动回滚,这样上层就无需去处理异常了 message.put("isError", "true"); - message.put("closeable","true"); - message.put("status","第"+(i + 1) +"条数据,任务等级输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,任务等级输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,任务等级输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,任务等级输入错误,请核对"); } rulex.setWorkLevel(integer); String workStatus = ruleVo.getWorkStatus(); - // LambdaQueryWrapper sysDictItemLambdaQueryWrapper = new LambdaQueryWrapper<>(); - // sysDictItemLambdaQueryWrapper.eq(SysDictItem::getItemText, workStatus).eq(SysDictItem::getDictId, "1645268542514421762"); - // SysDictItem sysDictItem = sysDictItemMapper.selectOne(sysDictItemLambdaQueryWrapper); + // LambdaQueryWrapper sysDictItemLambdaQueryWrapper = new LambdaQueryWrapper<>(); + // sysDictItemLambdaQueryWrapper.eq(SysDictItem::getItemText, workStatus).eq(SysDictItem::getDictId, "1645268542514421762"); + // SysDictItem sysDictItem = sysDictItemMapper.selectOne(sysDictItemLambdaQueryWrapper); if (workStatus.equals("未发布")) rulex.setWorkStatus(0); @@ -467,15 +520,15 @@ public class RulexController extends JeecgController { else { iRuleVoService.remove(null); message.put("isError", "true"); - message.put("closeable","true"); - message.put("status","第"+(i + 1) +"条数据,任务状态输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,任务状态输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,任务状态输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,任务状态输入错误,请核对"); } String status = ruleVo.getStatus(); - // LambdaQueryWrapper sysDictItemLambdaQueryWrapper2 = new LambdaQueryWrapper<>(); - // sysDictItemLambdaQueryWrapper2.eq(SysDictItem::getItemText, status).eq(SysDictItem::getDictId, "1645264493205491713"); - // SysDictItem sysDictItem2 = sysDictItemMapper.selectOne(sysDictItemLambdaQueryWrapper2); + // LambdaQueryWrapper sysDictItemLambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + // sysDictItemLambdaQueryWrapper2.eq(SysDictItem::getItemText, status).eq(SysDictItem::getDictId, "1645264493205491713"); + // SysDictItem sysDictItem2 = sysDictItemMapper.selectOne(sysDictItemLambdaQueryWrapper2); if (status.equals("正常")) rulex.setStatus(1); else if (status.equals("停用")) @@ -485,10 +538,10 @@ public class RulexController extends JeecgController { else { iRuleVoService.remove(null); message.put("isError", "true"); - message.put("closeable","true"); - message.put("status","第"+(i + 1) +"条数据,规则状态输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,规则状态输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,规则状态输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,规则状态输入错误,请核对"); } String verisonStatus = ruleVo.getVerisonStatus(); LambdaQueryWrapper sysDictItemLambdaQueryWrapper3 = new LambdaQueryWrapper<>(); @@ -497,51 +550,53 @@ public class RulexController extends JeecgController { if (sysDictItem3 == null) { iRuleVoService.remove(null); message.put("isError", "true"); - message.put("closeable","true"); - message.put("status","第"+(i + 1) +"条数据,版本状态输入错误,请核对"); + message.put("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,版本状态输入错误,请核对"); webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第"+(i + 1) +"条数据,版本状态输入错误,请核对"); + return Result.error("第" + (i + 1) + "条数据,版本状态输入错误,请核对"); } rulex.setVerisonStatus(Integer.valueOf(sysDictItem3.getItemValue())); - + Date date; //String转Date - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - - try { - String startTime = ruleVo.getStartTime(); - if (startTime != null) - if (!validator.isValid(startTime)) { - 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) +"条数据,开始时间输入错误"); - } else { - Date date = simpleDateFormat.parse(startTime); - rulex.setStartTime(date); - } - String submitTime = ruleVo.getSubmitTime(); - if (submitTime != null) - if (!validator.isValid(submitTime)) { - 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) +"条数据,提交时间输入错误"); - } else { - Date date1 = simpleDateFormat.parse(submitTime); - rulex.setSubmitTime(date1); - } - } catch (ParseException e) { - e.printStackTrace(); + String startTime = ruleVo.getStartTime(); + if (!StringUtils.isBlank(startTime)) { + String time = getTime(startTime); + + try { + date = simpleDateFormat.parse(time); + rulex.setStartTime(date); + } catch (ParseException 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.setRuleNo(ruleVo.getRuleNo()); + String submitTime = ruleVo.getSubmitTime(); + if (!StringUtils.isBlank(submitTime)){ + String submitTimeT = getTime(submitTime); + try { + date = simpleDateFormat.parse(submitTimeT); + rulex.setSubmitTime(date); + } catch (ParseException 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 ruleNo = ruleVo.getRuleNo(); + rulex.setRuleNo(ruleNo); //规则编码 String ruleCode = ruleVo.getRuleCode(); - String functionCode1 = byId1.getFunctionCode(); + String functionCode1 = functionx.getFunctionCode(); if (ruleCode == null) { message.put("isError", "true"); message.put("closeable", "true"); @@ -550,7 +605,7 @@ public class RulexController extends JeecgController { return Result.error("第" + (i + 1) + "条数据,规则编码错误,请核对"); } //截取到功能编码校验(去除后三位) - if (!ruleCode.substring(0,ruleCode.length() - 3).equals(functionCode1)){ + if (!ruleCode.substring(0, ruleCode.length() - 3).equals(functionCode1)) { message.put("isError", "true"); message.put("closeable", "true"); message.put("status", "第" + (i + 1) + "条数据,规则编码错误,请核对"); @@ -559,10 +614,10 @@ public class RulexController extends JeecgController { } //后三位 - String substring = ruleCode.substring(ruleCode.length()-3); + String substring = ruleCode.substring(ruleCode.length() - 3); try { Integer integer1 = Integer.valueOf(substring); - if (integer1<0){ + if (integer1 < 0) { message.put("isError", "true"); message.put("closeable", "true"); message.put("status", "第" + (i + 1) + "条数据,规则编码错误,请核对"); @@ -587,58 +642,58 @@ public class RulexController extends JeecgController { rulex.setDiagrams(diagrams); //版本号 String verison = ruleVo.getVerison(); - if (ruleVo.getVerison()==null||verison.length() >=5){ + 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 { - 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("closeable", "true"); - message.put("status", "第" + (i + 1) + "条数据,版本号输入错误,请核对"); - webSocketUtils.sendMessage(loginUser.getId(), message); - return Result.error("第" + (i + 1) + "条数据,版本号输入错误,请核对"); - } + 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("closeable", "true"); + message.put("status", "第" + (i + 1) + "条数据,版本号输入错误,请核对"); + webSocketUtils.sendMessage(loginUser.getId(), message); + return Result.error("第" + (i + 1) + "条数据,版本号输入错误,请核对"); + } //责任人 String managerUsers = ruleVo.getManagerUsers(); - if (managerUsers != null){ + if (managerUsers != null) { LambdaQueryWrapper sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); String[] split = managerUsers.split(","); - sysUserLambdaQueryWrapper.in(SysUser::getUsername,split); + sysUserLambdaQueryWrapper.in(SysUser::getUsername, split); List iSysUserServiceOne = iSysUserService.list(sysUserLambdaQueryWrapper); - if(iSysUserServiceOne==null){ + if (iSysUserServiceOne == null) { message.put("isError", "true"); - message.put("status","导入失败,责任人信息查询不到"); - message.put("closeable","true"); + message.put("status", "导入失败,责任人信息查询不到"); + message.put("closeable", "true"); webSocketUtils.sendMessage(loginUser.getId(), message); return Result.error("导入失败,责任人信息查询不到"); } - if (iSysUserServiceOne.size()>1) { + if (iSysUserServiceOne.size() > 1) { List list3 = iSysUserServiceOne.stream().map(SysUser::getId).collect(Collectors.toList()); if (list3 == null) { message.put("isError", "true"); - message.put("status","导入失败,责任人信息查询不到"); - message.put("closeable","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){ + } else if (iSysUserServiceOne.size() == 1) { String id = iSysUserServiceOne.get(0).getId(); rulex.setManagerUsers(id); } @@ -698,5 +753,51 @@ public class RulexController extends JeecgController { } 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; + } + } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/entity/RuleVo.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/entity/RuleVo.java index a72aed4..853fd93 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/entity/RuleVo.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/entity/RuleVo.java @@ -1,7 +1,10 @@ package org.jeecg.modules.demo.rulex.entity; import java.io.Serializable; +import java.util.Date; + import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -59,6 +62,14 @@ public class RuleVo implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新日期") private String updateTime; + + /** + * 对应模块父id + */ + @TableField(exist = false) + @Excel(name = "对应模块父模块", width = 15) + @ApiModelProperty(value = "对应模块") + private java.lang.String modulePid; /** * 对应模块id */