diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/RuleEngine.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/RuleEngine.java index e70a2aa..25f6944 100644 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/RuleEngine.java +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/RuleEngine.java @@ -41,9 +41,13 @@ public class RuleEngine extends BaseEntity @Excel(name = "规则作用域") private String level; + /** 规则编码 */ + @Excel(name = "规则编码") + private String code; + /** 引擎编码 */ @Excel(name = "引擎编码") - private String code; + private String engineCode; /** 描述 */ @Excel(name = "描述") diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/RuleEngineVersion.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/RuleEngineVersion.java new file mode 100644 index 0000000..9f50d9d --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/RuleEngineVersion.java @@ -0,0 +1,66 @@ +package com.muyu.engine.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 规则版本对象 rule_engine_version + * + * @author Saisai + * @date 2024-05-06 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +public class RuleEngineVersion extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 引擎id */ + @Excel(name = "引擎id") + private Long ruleEngineId; + + /** 版本类 */ + @Excel(name = "版本类") + private String versionCode; + + /** 版本名称 */ + @Excel(name = "版本名称") + private String name; + + /** 版本code */ + @Excel(name = "版本code") + private String code; + + /** 引擎编码 */ + @Excel(name = "引擎编码") + private String codeIng; + + /** 是否激活 */ + @Excel(name = "是否激活") + private String isActivate; + + /** 测试状态 */ + @Excel(name = "是否激活") + private String isTest; + + /** 版本状态 */ + @Excel(name = "版本状态") + private String status; + + /** 描述 */ + @Excel(name = "描述") + private String description; + + +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/Scope.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/Scope.java deleted file mode 100644 index bc79a90..0000000 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-common/src/main/java/com/muyu/engine/domain/Scope.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.muyu.engine.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import com.muyu.common.core.annotation.Excel; -import com.muyu.common.core.web.domain.BaseEntity; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.function.Supplier; - -/** - * 规则引擎代码对象 scope - * - * @author Saisai - * @date 2024-05-03 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder -public class Scope extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 主键 */ - @TableId(value = "id",type = IdType.AUTO) - private Long id; - - /** 引擎id */ - @Excel(name = "引擎id") - private Long ruleEngineId; - - /** 类型 */ - @Excel(name = "类型") - private String type; - - /** 类型值 */ - @Excel(name = "类型值") - private String value; - - /** 编码 */ - @Excel(name = "编码") - private String code; - - public static List list(Long id, Supplier username) { - Scope scopetaskContext = new Scope() {{setType("任务");setValue("taskContext");setRuleEngineId(id);setCreateBy(username.get());setCreateTime(new Date());}}; - Scope scoperecordContext = new Scope() {{setType("资产集");setValue("recordContext");setRuleEngineId(id);setCreateBy(username.get());setCreateTime(new Date());}}; - Scope scopedataSetContext = new Scope() {{setType("资产记录");setValue("dataSetContext");setRuleEngineId(id);setCreateBy(username.get());setCreateTime(new Date());}}; - Scope scopedataModelContext = new Scope() {{setType("资产模型");setValue("dataModelContext");setRuleEngineId(id);setCreateBy(username.get());setCreateTime(new Date());}}; - List scopes = new ArrayList<>() {{ - add(scopetaskContext); - add(scoperecordContext); - add(scopedataSetContext); - add(scopedataModelContext); - }}; - return scopes; - } -} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/RuleEngineVersionController.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/RuleEngineVersionController.java new file mode 100644 index 0000000..9f287d0 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/RuleEngineVersionController.java @@ -0,0 +1,103 @@ +package com.muyu.engine.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.log.annotation.Log; +import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.engine.domain.RuleEngineVersion; +import com.muyu.engine.service.RuleEngineVersionService; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 规则版本Controller + * + * @author Saisai + * @date 2024-05-06 + */ +@RestController +@RequestMapping("/version") +public class RuleEngineVersionController extends BaseController +{ + @Autowired + private RuleEngineVersionService ruleEngineVersionService; + + /** + * 查询规则版本列表 + */ + @RequiresPermissions("engine:version:list") + @GetMapping("/list/{ruleEngineId}") + public Result> list(@PathVariable Long ruleEngineId) + { + List list = ruleEngineVersionService.selectRuleEngineVersionList(ruleEngineId); + return getDataTable(list); + } + + /** + * 导出规则版本列表 + */ + @RequiresPermissions("engine:version:export") + @Log(title = "规则版本", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, Long ruleEngineId) + { + List list = ruleEngineVersionService.selectRuleEngineVersionList(ruleEngineId); + ExcelUtil util = new ExcelUtil(RuleEngineVersion.class); + util.exportExcel(response, list, "规则版本数据"); + } + + /** + * 获取规则版本详细信息 + */ + @RequiresPermissions("engine:version:query") + @GetMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id) + { + return success(ruleEngineVersionService.selectRuleEngineVersionById(id)); + } + + /** + * 新增规则版本 + */ + @RequiresPermissions("engine:version:add") + @Log(title = "规则版本", businessType = BusinessType.INSERT) + @PostMapping + public Result add(@RequestBody RuleEngineVersion ruleEngineVersion) + { + return toAjax(ruleEngineVersionService.insertRuleEngineVersion(ruleEngineVersion)); + } + + /** + * 修改规则版本 + */ + @RequiresPermissions("engine:version:edit") + @Log(title = "规则版本", businessType = BusinessType.UPDATE) + @PutMapping + public Result edit(@RequestBody RuleEngineVersion ruleEngineVersion) + { + return toAjax(ruleEngineVersionService.updateRuleEngineVersion(ruleEngineVersion)); + } + + /** + * 删除规则版本 + */ + @RequiresPermissions("engine:version:remove") + @Log(title = "规则版本", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + return toAjax(ruleEngineVersionService.deleteRuleEngineVersionByIds(ids)); + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/ScopeController.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/ScopeController.java deleted file mode 100644 index a39328a..0000000 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/ScopeController.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.muyu.engine.controller; - -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.utils.poi.ExcelUtil; -import com.muyu.common.core.web.controller.BaseController; -import com.muyu.common.core.web.page.TableDataInfo; -import com.muyu.common.log.annotation.Log; -import com.muyu.common.log.enums.BusinessType; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.engine.domain.Scope; -import com.muyu.engine.service.ScopeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; -import java.util.List; - -/** - * 规则引擎代码Controller - * - * @author Saisai - * @date 2024-05-03 - */ -@RestController -@RequestMapping("/scope") -public class ScopeController extends BaseController -{ - @Autowired - private ScopeService scopeService; - - /** - * 查询规则引擎代码列表 - */ - @RequiresPermissions("engine:scope:list") - @GetMapping("/list") - public Result> list(Scope scope) - { - startPage(); - List list = scopeService.selectScopeList(scope); - return getDataTable(list); - } - - /** - * 导出规则引擎代码列表 - */ - @RequiresPermissions("engine:scope:export") - @Log(title = "规则引擎代码", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, Scope scope) - { - List list = scopeService.selectScopeList(scope); - ExcelUtil util = new ExcelUtil(Scope.class); - util.exportExcel(response, list, "规则引擎代码数据"); - } - - /** - * 获取规则引擎代码详细信息 - */ - @RequiresPermissions("engine:scope:query") - @GetMapping(value = "/{id}") - public Result getInfo(@PathVariable("id") Long id) - { - return success(scopeService.selectScopeById(id)); - } - - /** - * 新增规则引擎代码 - */ - @RequiresPermissions("engine:scope:add") - @Log(title = "规则引擎代码", businessType = BusinessType.INSERT) - @PostMapping - public Result add(@RequestBody Scope scope) - { - return toAjax(scopeService.insertScope(scope)); - } - - /** - * 修改规则引擎代码 - */ - @RequiresPermissions("engine:scope:edit") - @Log(title = "规则引擎代码", businessType = BusinessType.UPDATE) - @PutMapping - public Result edit(@RequestBody Scope scope) - { - return toAjax(scopeService.updateScope(scope)); - } - - /** - * 删除规则引擎代码 - */ - @RequiresPermissions("engine:scope:remove") - @Log(title = "规则引擎代码", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public Result remove(@PathVariable Long[] ids) - { - return toAjax(scopeService.deleteScopeByIds(ids)); - } - - - /** - * 初始化测试 - */ - @RequiresPermissions("engine:scope:init") - @Log(title = "规则引擎", businessType = BusinessType.DELETE) - @GetMapping("init/{id}") - public Result init(@PathVariable Long id) throws ServletException { - return toAjax(scopeService.init(id)); - } - - /** - * 测试 - */ - @RequiresPermissions("engine:scope:testEngine") - @Log(title = "规则引擎", businessType = BusinessType.DELETE) - @GetMapping("testEngine/{id}") - public Result test(@PathVariable Long id) throws Exception { - return toAjax(scopeService.testEngine(id)); - } - - -} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/mapper/RuleEngineVersionMapper.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/mapper/RuleEngineVersionMapper.java new file mode 100644 index 0000000..b2b8074 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/mapper/RuleEngineVersionMapper.java @@ -0,0 +1,63 @@ +package com.muyu.engine.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.engine.domain.RuleEngineVersion; + +/** + * 规则版本Mapper接口 + * + * @author Saisai + * @date 2024-05-06 + */ +public interface RuleEngineVersionMapper extends BaseMapper +{ + /** + * 查询规则版本 + * + * @param id 规则版本主键 + * @return 规则版本 + */ + public RuleEngineVersion selectRuleEngineVersionById(Long id); + + /** + * 查询规则版本列表 + * + * @param ruleEngineVersion 规则版本 + * @return 规则版本集合 + */ + public List selectRuleEngineVersionList(RuleEngineVersion ruleEngineVersion); + + /** + * 新增规则版本 + * + * @param ruleEngineVersion 规则版本 + * @return 结果 + */ + public int insertRuleEngineVersion(RuleEngineVersion ruleEngineVersion); + + /** + * 修改规则版本 + * + * @param ruleEngineVersion 规则版本 + * @return 结果 + */ + public int updateRuleEngineVersion(RuleEngineVersion ruleEngineVersion); + + /** + * 删除规则版本 + * + * @param id 规则版本主键 + * @return 结果 + */ + public int deleteRuleEngineVersionById(Long id); + + /** + * 批量删除规则版本 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRuleEngineVersionByIds(Long[] ids); +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/mapper/ScopeMapper.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/mapper/ScopeMapper.java deleted file mode 100644 index 2bd915c..0000000 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/mapper/ScopeMapper.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.muyu.engine.mapper; - -import java.util.List; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.engine.domain.Scope; - -/** - * 规则引擎代码Mapper接口 - * - * @author Saisai - * @date 2024-05-03 - */ -public interface ScopeMapper extends BaseMapper -{ - /** - * 查询规则引擎代码 - * - * @param id 规则引擎代码主键 - * @return 规则引擎代码 - */ - public Scope selectScopeById(Long id); - - /** - * 查询规则引擎代码列表 - * - * @param scope 规则引擎代码 - * @return 规则引擎代码集合 - */ - public List selectScopeList(Scope scope); - - /** - * 新增规则引擎代码 - * - * @param scope 规则引擎代码 - * @return 结果 - */ - public int insertScope(Scope scope); - - /** - * 修改规则引擎代码 - * - * @param scope 规则引擎代码 - * @return 结果 - */ - public int updateScope(Scope scope); - - /** - * 删除规则引擎代码 - * - * @param id 规则引擎代码主键 - * @return 结果 - */ - public int deleteScopeById(Long id); - - /** - * 批量删除规则引擎代码 - * - * @param ids 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteScopeByIds(Long[] ids); -} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/RuleEngineVersionService.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/RuleEngineVersionService.java new file mode 100644 index 0000000..48ffdba --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/RuleEngineVersionService.java @@ -0,0 +1,63 @@ +package com.muyu.engine.service; + +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.engine.domain.RuleEngineVersion; + +/** + * 规则版本Service接口 + * + * @author Saisai + * @date 2024-05-06 + */ +public interface RuleEngineVersionService extends IService +{ + /** + * 查询规则版本 + * + * @param id 规则版本主键 + * @return 规则版本 + */ + public RuleEngineVersion selectRuleEngineVersionById(Long id); + + /** + * 查询规则版本列表 + * + * @param ruleEngineVersion 规则版本 + * @return 规则版本集合 + */ + public List selectRuleEngineVersionList(Long ruleEngineVersion); + + /** + * 新增规则版本 + * + * @param ruleEngineVersion 规则版本 + * @return 结果 + */ + public int insertRuleEngineVersion(RuleEngineVersion ruleEngineVersion); + + /** + * 修改规则版本 + * + * @param ruleEngineVersion 规则版本 + * @return 结果 + */ + public int updateRuleEngineVersion(RuleEngineVersion ruleEngineVersion); + + /** + * 批量删除规则版本 + * + * @param ids 需要删除的规则版本主键集合 + * @return 结果 + */ + public int deleteRuleEngineVersionByIds(Long[] ids); + + /** + * 删除规则版本信息 + * + * @param id 规则版本主键 + * @return 结果 + */ + public int deleteRuleEngineVersionById(Long id); +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/ScopeService.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/ScopeService.java deleted file mode 100644 index 72c3061..0000000 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/ScopeService.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.muyu.engine.service; - -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.util.List; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.engine.domain.Scope; - -import javax.servlet.ServletException; - -/** - * 规则引擎代码Service接口 - * - * @author Saisai - * @date 2024-05-03 - */ -public interface ScopeService extends IService -{ - /** - * 查询规则引擎代码 - * - * @param id 规则引擎代码主键 - * @return 规则引擎代码 - */ - public Scope selectScopeById(Long id); - - /** - * 查询规则引擎代码列表 - * - * @param scope 规则引擎代码 - * @return 规则引擎代码集合 - */ - public List selectScopeList(Scope scope); - - /** - * 新增规则引擎代码 - * - * @param scope 规则引擎代码 - * @return 结果 - */ - public int insertScope(Scope scope); - - /** - * 修改规则引擎代码 - * - * @param scope 规则引擎代码 - * @return 结果 - */ - public int updateScope(Scope scope); - - /** - * 批量删除规则引擎代码 - * - * @param ids 需要删除的规则引擎代码主键集合 - * @return 结果 - */ - public int deleteScopeByIds(Long[] ids); - - /** - * 删除规则引擎代码信息 - * - * @param id 规则引擎代码主键 - * @return 结果 - */ - public int deleteScopeById(Long id); - - /** - * 测试引擎流程 - * @param id - * @return - */ - boolean init(Long id) throws ServletException; - - void deleteScopeByRuleIds(Long[] ids); - - boolean testEngine(Long id) throws Exception; -} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineServiceImpl.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineServiceImpl.java index 0b4689a..e5491cd 100644 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineServiceImpl.java +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineServiceImpl.java @@ -2,12 +2,9 @@ package com.muyu.engine.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.DateUtils; -import com.muyu.common.security.utils.SecurityUtils; import com.muyu.engine.domain.RuleEngine; -import com.muyu.engine.domain.Scope; import com.muyu.engine.mapper.RuleEngineMapper; import com.muyu.engine.service.RuleEngineService; -import com.muyu.engine.service.ScopeService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,12 +19,10 @@ import java.util.List; */ @Service @Log4j2 -public class RuleEngineServiceImpl extends ServiceImpl implements RuleEngineService -{ +public class RuleEngineServiceImpl extends ServiceImpl implements RuleEngineService { @Autowired private RuleEngineMapper ruleEngineMapper; - @Autowired - private ScopeService scopeService; + /** * 查询规则引擎 * @@ -35,8 +30,7 @@ public class RuleEngineServiceImpl extends ServiceImpl selectRuleEngineList(RuleEngine ruleEngine) - { + public List selectRuleEngineList(RuleEngine ruleEngine) { return ruleEngineMapper.selectRuleEngineList(ruleEngine); } @@ -59,14 +52,14 @@ public class RuleEngineServiceImpl extends ServiceImpl implements RuleEngineVersionService +{ + @Autowired + private RuleEngineVersionMapper ruleEngineVersionMapper; + @Autowired + private RuleEngineService ruleEngineService; + + /** + * 查询规则版本 + * + * @param id 规则版本主键 + * @return 规则版本 + */ + @Override + public RuleEngineVersion selectRuleEngineVersionById(Long id) + { + return ruleEngineVersionMapper.selectRuleEngineVersionById(id); + } + + /** + * 查询规则版本列表 + * + * @param ruleEngineId 规则版本 + * @return 规则版本 + */ + @Override + public List selectRuleEngineVersionList(Long ruleEngineId) + { + return list(new LambdaQueryWrapper(){{ + eq(RuleEngineVersion::getRuleEngineId,ruleEngineId); + }}); + } + + /** + * 新增规则版本 + * + * @param ruleEngineVersion 规则版本 + * @return 结果 + */ + @Override + public int insertRuleEngineVersion(RuleEngineVersion ruleEngineVersion) + { + ruleEngineVersion.setCreateTime(DateUtils.getNowDate()); + return ruleEngineVersionMapper.insertRuleEngineVersion(ruleEngineVersion); + } + + /** + * 修改规则版本 + * + * @param ruleEngineVersion 规则版本 + * @return 结果 + */ + @Override + public int updateRuleEngineVersion(RuleEngineVersion ruleEngineVersion) + { + ruleEngineVersion.setUpdateTime(DateUtils.getNowDate()); + return ruleEngineVersionMapper.updateRuleEngineVersion(ruleEngineVersion); + } + + /** + * 批量删除规则版本 + * + * @param ids 需要删除的规则版本主键 + * @return 结果 + */ + @Override + public int deleteRuleEngineVersionByIds(Long[] ids) + { + return ruleEngineVersionMapper.deleteRuleEngineVersionByIds(ids); + } + + /** + * 删除规则版本信息 + * + * @param id 规则版本主键 + * @return 结果 + */ + @Override + public int deleteRuleEngineVersionById(Long id) + { + return ruleEngineVersionMapper.deleteRuleEngineVersionById(id); + } + + + + +// @Override + public boolean testEngine(Long id) throws Exception { +// RuleEngine ruleEngine = ruleEngineService.getById(id); +// if (ruleEngine.getIsActivate().contains("no")) throw new ServletException("未激活"); +// if (ruleEngine.getStatus().contains("1")) throw new ServletException("已停用"); +// Scope scope = this.getOne(new LambdaQueryWrapper() {{ +// eq(Scope::getRuleEngineId, ruleEngine.getId()); +// eq(Scope::getValue, "taskContext"); +// }}); +// String code = scope.getCode(); +// String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("/.", "/").trim(); +// String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim(); +// String name = path+"."+fileName; +// String javaPackageName = name.replace(".", File.separator)+".java"; +// String javaAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" +javaPackageName; +// String jarAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/target/classes/com/muyu/engine/controller"; +// Process process = Runtime.getRuntime().exec("javac -classpath "+ jarAbsolutePath+ " " + javaAbsolutePath); +// try { +// int exitVal = process.waitFor(); +// System.out.println("Process exitValue: " + exitVal); +// ClassLoader classLoader = ReflectionUtils.class.getClassLoader(); +// Class aClass = classLoader.loadClass(name); +// Object o = aClass.newInstance(); +// Method[] methods = aClass.getMethods(); +// for (Method method : methods) { +// method.invoke(o,null); +// } +// } catch (Exception e) { +// log.error(e.getMessage()); +// } + return true; + } + + /** + * 引擎流程并执行测试 + * + * @param id + * @return + */ +// @Override + public boolean init(Long id) throws ServletException { + RuleEngine ruleEngine = ruleEngineService.getById(id); + if (ruleEngine.getIsActivate().contains("no")) throw new ServletException("未激活"); + if (ruleEngine.getStatus().contains("1")) throw new ServletException("已停用"); + Supplier booleanSupplier = () -> { + try { + return testEngine(ruleEngine); + } catch (Exception e) { + throw new RuntimeException(e); + } + }; + System.out.println(); + return booleanSupplier.get(); + } + + private Boolean testEngine(RuleEngine ruleEngine) throws ServletException, IOException { +// System.out.println("初始化"); +// System.out.println(ruleEngine); +// Scope scope = this.getOne(new LambdaQueryWrapper() {{ +// eq(Scope::getRuleEngineId, ruleEngine.getId()); +// eq(Scope::getValue, "taskContext"); +// }}); +// String code = scope.getCode(); +// String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("\\.", "/").trim(); +// String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim(); +// //代码编译 +// File file = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path + "/" + fileName + ".java"); +// if (!file.exists()) { +// //不存在创建 +// file.createNewFile(); +// }else { +// //存在测重新创建 +// file.delete(); +// file.createNewFile(); +// } +// String[] split = code.split("/n"); +// //OutputStreamWriter对象将字符转换为字节流,指定了文件输出流和编码方式。 +// OutputStreamWriter outputStreamWriter = +// new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8"); +// //BufferedWriter对象,用于缓冲写入数据,提高写入效率。 +// BufferedWriter bw = new BufferedWriter(outputStreamWriter); +// for (String str : split) { +// bw.write(str); +// bw.newLine(); +// } +// bw.close(); +// outputStreamWriter.close(); + return true; + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/ScopeServiceImpl.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/ScopeServiceImpl.java deleted file mode 100644 index 9851907..0000000 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/ScopeServiceImpl.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.muyu.engine.service.impl; - -import java.io.*; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -import com.alibaba.nacos.shaded.com.google.common.base.Supplier; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.common.core.text.Convert; -import com.muyu.common.core.utils.DateUtils; -import com.muyu.engine.domain.RuleEngine; -import com.muyu.engine.service.RuleEngineService; -import lombok.extern.log4j.Log4j2; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.muyu.engine.mapper.ScopeMapper; -import com.muyu.engine.domain.Scope; -import com.muyu.engine.service.ScopeService; -import org.springframework.util.ReflectionUtils; - -import javax.servlet.ServletException; - -/** - * 规则引擎代码Service业务层处理 - * - * @author Saisai - * @date 2024-05-03 - */ -@Service -@Log4j2 -public class ScopeServiceImpl extends ServiceImpl implements ScopeService { - @Autowired - private ScopeMapper scopeMapper; - @Autowired - private RuleEngineService ruleEngineService; - - /** - * 查询规则引擎代码 - * - * @param id 规则引擎代码主键 - * @return 规则引擎代码 - */ - @Override - public Scope selectScopeById(Long id) { - return scopeMapper.selectScopeById(id); - } - - /** - * 查询规则引擎代码列表 - * - * @param scope 规则引擎代码 - * @return 规则引擎代码 - */ - @Override - public List selectScopeList(Scope scope) { - return scopeMapper.selectScopeList(scope); - } - - /** - * 新增规则引擎代码 - * - * @param scope 规则引擎代码 - * @return 结果 - */ - @Override - public int insertScope(Scope scope) { - scope.setCreateTime(DateUtils.getNowDate()); - return scopeMapper.insertScope(scope); - } - - /** - * 修改规则引擎代码 - * - * @param scope 规则引擎代码 - * @return 结果 - */ - @Override - public int updateScope(Scope scope) { - scope.setUpdateTime(DateUtils.getNowDate()); - Scope one = this.getOne(new LambdaQueryWrapper<>() {{ - eq(Scope::getValue, scope.getValue()); - eq(Scope::getRuleEngineId, scope.getRuleEngineId()); - }}); - one.setCode(scope.getCode()); - return scopeMapper.updateScope(one); - } - - /** - * 批量删除规则引擎代码 - * - * @param ids 需要删除的规则引擎代码主键 - * @return 结果 - */ - @Override - public int deleteScopeByIds(Long[] ids) { - return scopeMapper.deleteScopeByIds(ids); - } - - /** - * 删除规则引擎代码信息 - * - * @param id 规则引擎代码主键 - * @return 结果 - */ - @Override - public int deleteScopeById(Long id) { - return scopeMapper.deleteScopeById(id); - } - - @Override - public void deleteScopeByRuleIds(Long[] ids) { - List longs = new ArrayList<>(); - for (Long id : ids) { - List list = this.list(new LambdaQueryWrapper() {{ - eq(Scope::getRuleEngineId, id); - }}).stream().map(Scope::getId).toList(); - longs.addAll(list); - } - if (!longs.isEmpty()) { - this.deleteScopeByIds(longs.toArray(Long[]::new)); - } - } - - @Override - public boolean testEngine(Long id) throws Exception { - - RuleEngine ruleEngine = ruleEngineService.getById(id); - if (ruleEngine.getIsActivate().contains("no")) throw new ServletException("未激活"); - if (ruleEngine.getStatus().contains("1")) throw new ServletException("已停用"); - Scope scope = this.getOne(new LambdaQueryWrapper() {{ - eq(Scope::getRuleEngineId, ruleEngine.getId()); - eq(Scope::getValue, "taskContext"); - }}); - String code = scope.getCode(); - String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("/.", "/").trim(); - String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim(); - String name = path+"."+fileName; - String javaPackageName = name.replace(".",File.separator)+".java"; - String javaAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" +javaPackageName; - String jarAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/target/classes/com/muyu/engine/controller"; - Process process = Runtime.getRuntime().exec("javac -classpath "+ jarAbsolutePath+ " " + javaAbsolutePath); - ClassLoader classLoader = ReflectionUtils.class.getClassLoader(); -// Class aClass = Class.forName(fileName); - Class aClass = classLoader.loadClass(name); - Object o = aClass.newInstance(); - Method test = aClass.getMethod("test",null); - test.invoke(o,null); - try { - InputStream errorStream = process.getErrorStream(); - InputStreamReader inputStreamReader = new InputStreamReader(errorStream); - BufferedReader bufferedReader = new BufferedReader(inputStreamReader); - String line = null; - while ((line=bufferedReader.readLine()) != null){ - System.out.println(line); - } - int exitVal = process.waitFor(); - System.out.println("Process exitValue: " + exitVal); - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - /** - * 引擎流程并执行测试 - * - * @param id - * @return - */ - @Override - public boolean init(Long id) throws ServletException { - RuleEngine ruleEngine = ruleEngineService.getById(id); - if (ruleEngine.getIsActivate().contains("no")) throw new ServletException("未激活"); - if (ruleEngine.getStatus().contains("1")) throw new ServletException("已停用"); - Supplier booleanSupplier = () -> { - try { - return testEngine(ruleEngine); - } catch (Exception e) { - throw new RuntimeException(e); - } - }; - System.out.println(); - return booleanSupplier.get(); - } - - private Boolean testEngine(RuleEngine ruleEngine) throws ServletException, IOException { - System.out.println("初始化"); - System.out.println(ruleEngine); - Scope scope = this.getOne(new LambdaQueryWrapper() {{ - eq(Scope::getRuleEngineId, ruleEngine.getId()); - eq(Scope::getValue, "taskContext"); - }}); - String code = scope.getCode(); - String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("\\.", "/").trim(); - String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim(); - File file = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path + "/" + fileName + ".java"); - if (!file.exists()) { - file.createNewFile(); - } - String[] split = code.split("/n"); - //OutputStreamWriter对象将字符转换为字节流,指定了文件输出流和编码方式。 - OutputStreamWriter outputStreamWriter = - new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8"); - //BufferedWriter对象,用于缓冲写入数据,提高写入效率。 - BufferedWriter bw = new BufferedWriter(outputStreamWriter); - for (String str : split) { - bw.write(str); - bw.newLine(); - } - bw.close(); - outputStreamWriter.close(); - return true; - } -} - diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/resources/mapper/RuleEngineMapper.xml b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/resources/mapper/RuleEngineMapper.xml index 36276b2..cf57821 100644 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/resources/mapper/RuleEngineMapper.xml +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/resources/mapper/RuleEngineMapper.xml @@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -21,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, name, type, level, code,description, is_activate, status, remark, create_by, create_time, update_by, update_time from rule_engine + select id, name, type, level, code,engine_code,description, is_activate, status, remark, create_by, create_time, update_by, update_time from rule_engine + + + and rule_engine_id = #{ruleEngineId} + and version_code = #{versionCode} + and name like concat('%', #{name}, '%') + and code = #{code} + and code_ing = #{codeIng} + and is_activate = #{isActivate} + and is_test = #{isTest} + and status = #{status} + and description = #{description} + + + + + + + insert into rule_engine_version + + rule_engine_id, + version_code, + name, + code, + code_ing, + is_activate, + is_test, + status, + description, + remark, + create_by, + create_time, + update_by, + update_time, + + + #{ruleEngineId}, + #{versionCode}, + #{name}, + #{code}, + #{codeIng}, + #{isActivate}, + #{isTest}, + #{status}, + #{description}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update rule_engine_version + + rule_engine_id = #{ruleEngineId}, + version_code = #{versionCode}, + name = #{name}, + code = #{code}, + code_ing = #{codeIng}, + is_activate = #{isActivate}, + is_test = #{isTest}, + status = #{status}, + description = #{description}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from rule_engine_version where id = #{id} + + + + delete from rule_engine_version where id in + + #{id} + + + diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/resources/mapper/ScopeMapper.xml b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/resources/mapper/ScopeMapper.xml deleted file mode 100644 index 8576e01..0000000 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/resources/mapper/ScopeMapper.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - select id, rule_engine_id, type, value, code, remark, create_by, create_time, update_by, update_time from scope - - - - - - - - insert into scope - - id, - rule_engine_id, - type, - value, - code, - remark, - create_by, - create_time, - update_by, - update_time, - - - #{id}, - #{ruleEngineId}, - #{type}, - #{value}, - #{code}, - #{remark}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update scope - - rule_engine_id = #{ruleEngineId}, - type = #{type}, - value = #{value}, - code = #{code}, - remark = #{remark}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from scope where id = #{id} - - - - delete from scope where id in - - #{id} - - -