Kaynağa Gözat

feat: 新增基类按钮参数、增加后台之间调用token解析逻辑、执行流程节点、脚本下发接口,共通返回模版、定义消息码、增加注释、公共按钮操作接口

韩帛霖 1 yıl önce
ebeveyn
işleme
a47cd95d36

+ 0 - 37
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dragForm/CommonController.java

@@ -105,41 +105,4 @@ public class CommonController extends BaseController {
         return getDataTable(commonService.dragTablePreview(commonEntity));
     }
 
-    /**
-     * 处理按钮通用接口(新增、修改、删除)
-     */
-    @PostMapping("/commonBtnHandle")
-    public AjaxResult commonBtnHandle(@RequestBody CommonEntity commonEntity) throws JsonProcessingException {
-        //按钮类型
-        Long btnType = Long.valueOf(commonEntity.getBasicMap().get("btnType").toString());
-        //是否开启弹窗
-        String visible = commonEntity.getBasicMap().get("visible").toString();
-        /*
-        * 判断什么类型走什么接口:
-        * btnType  10:新增、8:修改、9:删除、5:脚本
-        * visible  false代表弹窗未开启时走回显表单模板及数据信息接口;true代表弹窗开启时走保存数据接口
-        * */
-        if (btnType == ButtonTypeConstants.INSERT && visible.equals("true")) {
-            return toAjax(commonService.batchInsert(commonEntity));
-        } else if (btnType == ButtonTypeConstants.INSERT && visible.equals("false")) {
-            String sqlKey = commonEntity.getBasicMap().get("sqlKey").toString();
-            return success(dragFormService.selectDragFormBySqlKey(sqlKey));
-        } else if (btnType == ButtonTypeConstants.UPDATE && visible.equals("true")) {
-            return toAjax(commonService.edit(commonEntity));
-        } else if (btnType == ButtonTypeConstants.UPDATE && visible.equals("false")) {
-            Map<String,Object> map = new HashMap<>();
-
-            //获取模板信息
-            String sqlKey = commonEntity.getBasicMap().get("sqlKey").toString();
-            DragForm dragForm = dragFormService.selectDragFormBySqlKey(sqlKey);
-            map.put("template",dragForm);
-            //返回结果
-            map.put("result",commonService.getInfoById(commonEntity));
-            return success(map);
-        } else if (btnType == ButtonTypeConstants.DELETE) {
-            return toAjax(commonService.batchDelete(commonEntity));
-        } else if(btnType == ButtonTypeConstants.SCRIPT) {
-        }
-        return warn("暂不支持该操作!");
-    }
 }

+ 26 - 17
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dragForm/DragTableBtnController.java

@@ -5,6 +5,8 @@ import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.annotation.Anonymous;
 import com.ruoyi.system.entity.DragTableBtn;
+import com.ruoyi.system.entity.DragTableBtnRelevance;
+import com.ruoyi.system.service.IDragTableBtnRelevanceService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -25,24 +27,25 @@ import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
  * 格绑定的自定义按钮Controller
- * 
+ *
  * @author ruoyi
  * @date 2023-11-07
  */
 @RestController
 @RequestMapping("/system/btn")
-public class DragTableBtnController extends BaseController
-{
-    @Autowired
+public class DragTableBtnController extends BaseController {
+    @Autowired // 按钮组
     private IDragTableBtnService dragTableBtnService;
 
+    @Autowired // 按钮表单关联
+    private IDragTableBtnRelevanceService dragTableBtnRelevanceService;
+
     /**
      * 查询格绑定的自定义按钮列表
      */
     @PreAuthorize("@ss.hasPermi('system:btn:list')")
     @GetMapping("/list")
-    public TableDataInfo list(DragTableBtn dragTableBtn)
-    {
+    public TableDataInfo list(DragTableBtn dragTableBtn) {
         startPage();
         List<DragTableBtn> list = dragTableBtnService.selectDragTableBtnList(dragTableBtn);
         return getDataTable(list);
@@ -54,8 +57,7 @@ public class DragTableBtnController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:btn:export')")
     @Log(title = "格绑定的自定义按钮", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, DragTableBtn dragTableBtn)
-    {
+    public void export(HttpServletResponse response, DragTableBtn dragTableBtn) {
         List<DragTableBtn> list = dragTableBtnService.selectDragTableBtnList(dragTableBtn);
         ExcelUtil<DragTableBtn> util = new ExcelUtil<DragTableBtn>(DragTableBtn.class);
         util.exportExcel(response, list, "格绑定的自定义按钮数据");
@@ -66,8 +68,7 @@ public class DragTableBtnController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:btn:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(dragTableBtnService.selectDragTableBtnById(id));
     }
 
@@ -77,8 +78,7 @@ public class DragTableBtnController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:btn:add')")
     @Log(title = "格绑定的自定义按钮", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody DragTableBtn dragTableBtn)
-    {
+    public AjaxResult add(@RequestBody DragTableBtn dragTableBtn) {
         dragTableBtnService.insertDragTableBtn(dragTableBtn);
         return AjaxResult.success();
     }
@@ -89,8 +89,7 @@ public class DragTableBtnController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:btn:edit')")
     @Log(title = "格绑定的自定义按钮", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody DragTableBtn dragTableBtn)
-    {
+    public AjaxResult edit(@RequestBody DragTableBtn dragTableBtn) {
         return toAjax(dragTableBtnService.updateDragTableBtn(dragTableBtn));
     }
 
@@ -99,12 +98,22 @@ public class DragTableBtnController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:btn:remove')")
     @Log(title = "格绑定的自定义按钮", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{id}")
-    public AjaxResult remove(@PathVariable Long id)
-    {
+    @DeleteMapping("/{id}")
+    public AjaxResult remove(@PathVariable Long id) {
         if (dragTableBtnService.hasChildByBtnId(id)) {
             return warn("存在子按钮,不允许删除");
         }
         return toAjax(dragTableBtnService.deleteDragTableBtnById(id));
     }
+
+    /**
+     * 根据当前按钮组的btnkey得到绑定的表格
+     *
+     * @param btnKey 按钮唯一标识
+     * @return
+     */
+    @GetMapping("/checkBtn")
+    public TableDataInfo checkBtn(String btnKey) {
+         return getDataTable(dragTableBtnRelevanceService.selectDragTableBtnRelevanceList(new DragTableBtnRelevance(btnKey)));
+    }
 }

+ 4 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dragForm/DragTableController.java

@@ -27,16 +27,16 @@ import com.ruoyi.common.core.page.TableDataInfo;
 @RequestMapping("/system/table")
 public class DragTableController extends BaseController {
 
-    @Autowired
+    @Autowired // 动态表格
     private IDragTableService dragTableService;
 
-    @Autowired
+    @Autowired // 统计图标
     private IDragTableStatisticService dragTableStatisticService;
 
-    @Autowired
+    @Autowired // 表格样式
     private IDragTableStyleService dragTableStyleService;
 
-    @Autowired
+    @Autowired  // 按钮表格关联
     private IDragTableBtnRelevanceService dragTableBtnRelevanceService;
     
     /**

+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -142,7 +142,7 @@ xss:
   urlPatterns: /system/*,/monitor/*,/tool/*
 
 bpm:
-  runbpmurl: http://localhost:8080/system/runbpm/process/productionSchedul
+  runbpmurl: http://localhost:8055/system/runbpm/process/productionScheduling
 
 script:
-  runscripturl: http://localhost:8080/system/script/execute
+  runscripturl: http://localhost:8055/system/script/execute

+ 7 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java

@@ -102,4 +102,11 @@ public class HttpStatus {
     public static final int SQLERROR = 603;
 
 
+    /**
+     * 系统警告消息:按钮执行逻辑异常
+     *
+     */
+    public static final int BTNERROR = 604;
+
+
 }

+ 9 - 6
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java

@@ -185,13 +185,16 @@ public class AjaxResult extends HashMap<String, Object>
 
 
     /**
-     * 返回错误消息
-     * @param data 数据对象
-     * @return 错误消息
+     * 方便链式调用
+     *
+     * @param code 值
+     * @return 数据对象
      */
-    public static AjaxResult btnMessage( Object data)
-    {
-        return new AjaxResult(HttpStatus.ERROR, "成功", data);
+    public static AjaxResult btnMessage(int code) {
+        if (code > 0)
+            return new AjaxResult(HttpStatus.SUCCESS, "操作成功!");
+        else
+            return new AjaxResult(HttpStatus.BTNERROR, "操作失败!发生未知异常");
     }
 
 }

+ 56 - 7
ruoyi-common/src/main/java/com/ruoyi/common/utils/form/FromUtils.java

@@ -1,33 +1,82 @@
 package com.ruoyi.common.utils.form;
 
 import com.ruoyi.common.config.form.FormProperties;
+import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.*;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.Map;
 
+
+/**
+ * 共通下发流程节点或脚本请求
+ *
+ * @param <T>
+ */
 @Component
 public class FromUtils<T> {
 
-    @Autowired
+    @Autowired  // 共通接口地址
     private FormProperties formProperties;
 
+
+    // 创建RestTemplate实例
     RestTemplate restTemplate = new RestTemplate();
 
     /**
      * 执行流程排产
      */
-    public String runBpmProductionScheduling(T param) {
-        String data = restTemplate.postForObject(formProperties.runBpmIp, param, String.class);
-        return data;
+    public HttpStatus runBpmProductionScheduling(T param) {
+
+
+        // 得到当前用户的token  下发流程请求需要携带
+        String token = SecurityUtils.getLoginUser().getToken();
+
+        // 设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Authorization", "XIAFA" + token);
+        // 构造请求体
+        // Map<String, Object> requestBody = new HashMap<>();
+        // 将请求体和请求头添加到HttpEntity
+        HttpEntity<Map<String, Object>> requestEntity = (HttpEntity<Map<String, Object>>) new HttpEntity<>(param, headers);
+        // 发送POST请求
+        ResponseEntity<String> response = restTemplate.exchange(formProperties.runBpmIp, HttpMethod.POST, requestEntity, String.class);
+        // 处理响应
+        if (response.getStatusCode().is2xxSuccessful()) {
+            String responseBody = response.getBody();
+            System.err.println("Response: " + responseBody);
+            return response.getStatusCode();
+        } else {
+            // System.out.println("Request failed with status code: " + response.getStatusCode());
+            return response.getStatusCode();
+        }
     }
 
     /**
      * 触发脚本
      */
-    public String triggerScript(T param) {
-        String data = restTemplate.postForObject(formProperties.runScriptIp,param,String.class);
-        return data;
+    public HttpStatus triggerScript(T param) {
+        // 得到当前用户的token  下发流程请求需要携带
+        String token = SecurityUtils.getLoginUser().getToken();
+        // 设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Authorization", "XIAFA" + token);
+        // 构造请求体
+        // Map<String, Object> requestBody = new HashMap<>();
+        // 将请求体和请求头添加到HttpEntity
+        HttpEntity<Map<String, Object>> requestEntity = (HttpEntity<Map<String, Object>>) new HttpEntity<>(param, headers);
+        // 发送POST请求
+        ResponseEntity<String> response = restTemplate.exchange(formProperties.runScriptIp, HttpMethod.POST, requestEntity, String.class);
+        // 处理响应
+        if (response.getStatusCode().is2xxSuccessful()) {
+            String responseBody = response.getBody();
+            System.out.println("Response: " + responseBody);
+            return response.getStatusCode();
+        } else {
+            // System.out.println("Request failed with status code: " + response.getStatusCode());
+            return response.getStatusCode();
+        }
     }
 }

+ 0 - 3
ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java

@@ -6,7 +6,6 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import com.ruoyi.common.utils.form.ThisTokenVal;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -31,9 +30,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
     @Override
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
             throws ServletException, IOException {
-        ThisTokenVal.clearMap();
         LoginUser loginUser = tokenService.getLoginUser(request);
-        ThisTokenVal.set(loginUser.getToken(), request.getHeader("Authorization"));
         if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) {
             tokenService.verifyToken(loginUser);
             UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());

+ 8 - 3
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java

@@ -60,9 +60,14 @@ public class TokenService {
         String token = getToken(request);
         if (StringUtils.isNotEmpty(token)) {
             try {
-                Claims claims = parseToken(token);
-                // 解析对应的权限以及用户信息
-                String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
+                String uuid = "";
+                if (token.contains("XIAFA")) {  // 判断当前请求是否别的项目下发的 茹村
+                    uuid = token.replace("XIAFA", "");
+                } else {
+                    Claims claims = parseToken(token);
+                    // 解析对应的权限以及用户信息
+                    uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
+                }
                 String userKey = getTokenKey(uuid);
                 LoginUser user = redisCache.getCacheObject(userKey);
                 return user;

+ 29 - 22
ruoyi-system/src/main/java/com/ruoyi/system/entity/CommonEntity.java

@@ -57,6 +57,12 @@ public class CommonEntity extends BaseEntity {
      */
     private String execlMap;
 
+
+    /**
+     * 点击按钮携带的参数
+     */
+    private Map<String, Object> btnParametersMap;
+
     public List<Map<String, String>> getAddListMap() {
         return addListMap;
     }
@@ -65,20 +71,30 @@ public class CommonEntity extends BaseEntity {
         this.addListMap = addListMap;
     }
 
+    public Map<String, Object> getBtnParametersMap() {
+        return btnParametersMap;
+    }
+
+    public void setBtnParametersMap(Map<String, Object> btnParametersMap) {
+        this.btnParametersMap = btnParametersMap;
+    }
+
     @Override
     public String toString() {
-        return "CommonEntity{" +
-                "basicMap=" + basicMap +
-                ", queryMap=" + queryMap +
-                ", conditionMap=" + conditionMap +
-                ", resultMap=" + resultMap +
-                ", commMap=" + commMap +
-                ", addListMap=" + addListMap +
-                ", execlMap=" + execlMap +
-                '}';
-    }
-
-    public CommonEntity(Map<String, Object> basicMap, Map<String, Object> queryMap, Map<String, Object> conditionMap, Map<String, Object> resultMap, Map<String, Object> commMap, List<Map<String, String>> addListMap, String execlMap) {
+        final StringBuffer sb = new StringBuffer("CommonEntity{");
+        sb.append("basicMap=").append(basicMap);
+        sb.append(", queryMap=").append(queryMap);
+        sb.append(", conditionMap=").append(conditionMap);
+        sb.append(", resultMap=").append(resultMap);
+        sb.append(", commMap=").append(commMap);
+        sb.append(", addListMap=").append(addListMap);
+        sb.append(", execlMap='").append(execlMap).append('\'');
+        sb.append(", btnParametersMap=").append(btnParametersMap);
+        sb.append('}');
+        return sb.toString();
+    }
+
+    public CommonEntity(Map<String, Object> basicMap, Map<String, Object> queryMap, Map<String, Object> conditionMap, Map<String, Object> resultMap, Map<String, Object> commMap, List<Map<String, String>> addListMap, String execlMap, Map<String, Object> btnParametersMap) {
         this.basicMap = basicMap;
         this.queryMap = queryMap;
         this.conditionMap = conditionMap;
@@ -86,6 +102,7 @@ public class CommonEntity extends BaseEntity {
         this.commMap = commMap;
         this.addListMap = addListMap;
         this.execlMap = execlMap;
+        this.btnParametersMap = btnParametersMap;
     }
 
     public CommonEntity() {
@@ -140,14 +157,4 @@ public class CommonEntity extends BaseEntity {
         this.execlMap = execlMap;
     }
 
-
-    /**
-     * org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
-     * Field error in object 'commonEntity' on field 'execlMap': rejected value
-     * [[{"address":"主1","name":"主1","id":1},{"address":"主2","name":"主2","id":2}]];
-     * codes [typeMismatch.commonEntity.execlMap,typeMismatch.execlMap,typeMismatch.java.util.List,typeMismatch];
-     * arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [commonEntity.execlMap,execlMap];
-     * arguments []; default message [execlMap]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.List' for property 'execlMap';
-     * nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'java.util.Map' for property 'execlMap[0]': no matching editors or conversion strategy found]
-     */
 }

+ 29 - 17
ruoyi-system/src/main/java/com/ruoyi/system/entity/DragTableBtnRelevance.java

@@ -7,46 +7,58 @@ import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
  * 动态格和动态格按钮关联对象 drag_table_btn_relevance
- * 
+ *
  * @author ruoyi
  * @date 2023-11-09
  */
-public class DragTableBtnRelevance extends BaseEntity
-{
+public class DragTableBtnRelevance extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 动态表格key(唯一标识) */
+    /**
+     * 动态表格key(唯一标识)
+     */
     @Excel(name = "动态表格key", readConverterExp = "唯=一标识")
     private String tableKey;
 
-    /** 动态表格按钮key(唯一标识) */
+    /**
+     * 动态表格按钮key(唯一标识)
+     */
     @Excel(name = "动态表格按钮key", readConverterExp = "唯=一标识")
     private String btnKey;
 
-    public void setTableKey(String tableKey) 
-    {
+    public void setTableKey(String tableKey) {
         this.tableKey = tableKey;
     }
 
-    public String getTableKey() 
-    {
+    public String getTableKey() {
         return tableKey;
     }
-    public void setBtnKey(String btnKey) 
-    {
+
+    public void setBtnKey(String btnKey) {
         this.btnKey = btnKey;
     }
 
-    public String getBtnKey() 
-    {
+    public String getBtnKey() {
         return btnKey;
     }
 
+    public DragTableBtnRelevance(String btnKey) {
+        this.btnKey = btnKey;
+    }
+
+    public DragTableBtnRelevance() {
+    }
+
+    public DragTableBtnRelevance(String tableKey, String btnKey) {
+        this.tableKey = tableKey;
+        this.btnKey = btnKey;
+    }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("tableKey", getTableKey())
-            .append("btnKey", getBtnKey())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("tableKey", getTableKey())
+                .append("btnKey", getBtnKey())
+                .toString();
     }
 }

+ 84 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ICommonService.java

@@ -67,3 +67,87 @@ public interface ICommonService {
 
 
 }
+/*
+
+  bpm_execute_process bep.id AS bep_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  bpm_execute_process bep.task_key AS bep_task_key` varchar(255) DEFAULT NULL COMMENT '流程任务执行别名',
+  bpm_execute_process bep.task_name AS bep_task_name` varchar(255) DEFAULT NULL COMMENT '任务名称',
+  bpm_execute_process bep.task_plan_key AS bep_task_plan_key` varchar(255) DEFAULT NULL COMMENT '任务计划key',
+  bpm_execute_process bep.task_node_key AS bep_task_node_key` varchar(255) DEFAULT NULL COMMENT '任务节点别名(记录当前流程执行过的最后一个节点id)',
+  bpm_execute_process bep.task_node_next_key AS bep_task_node_next_key` varchar(255) DEFAULT NULL COMMENT '存贮下一个执行的节点',
+  bpm_execute_process bep.task_process_type AS bep_task_process_type` varchar(100) DEFAULT NULL COMMENT '任务流程类型',
+  bpm_execute_process bep.task_process_key AS bep_task_process_key` varchar(255) DEFAULT NULL COMMENT '定义的流程别名',
+  bpm_execute_process bep.task_process_xml_content AS bep_task_process_xml_content` text COMMENT 'xml标签内容',
+  bpm_execute_process bep.task_process_state AS bep_task_process_state` int(11) DEFAULT NULL COMMENT '任务流程状态',
+  bpm_execute_process bep.task_process_note AS bep_task_process_note` text COMMENT '版本注释',
+  bpm_execute_process bep.del_flag AS bep_del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+  bpm_execute_process bep.remark AS bep_remark` varchar(255) DEFAULT NULL COMMENT '备注',
+
+
+bep.id AS bep_id,
+bep.task_key AS bep_task_key,
+bep.task_name AS bep_task_name,
+bep.task_plan_key AS bep_task_plan_key,
+bep.task_node_key AS bep_task_node_key,
+bep.task_node_next_key AS bep_task_node_next_key,
+bep.task_process_type AS bep_task_process_type,
+bep.task_process_key AS bep_task_process_key,
+bep.task_process_xml_content AS bep_task_process_xml_content,
+bep.task_process_state AS bep_task_process_state,
+bep.task_process_note AS bep_task_process_note,
+bep.del_flag AS bep_del_flag,
+bep.remark AS bep_remark,
+
+
+bpm_execute_node` (
+  id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  ` varchar(50) DEFAULT NULL COMMENT '当前执行流程任务编号task_key',
+  ` varchar(50) DEFAULT NULL COMMENT '节点编号',
+  ` varchar(100) DEFAULT NULL COMMENT '节点名称',
+  ` varchar(50) DEFAULT NULL COMMENT '表单编号',
+  ` varchar(50) DEFAULT NULL COMMENT '节点类型(当前节点是判断、网关、普通节点等等。。。。。)',
+  ` varchar(255) DEFAULT NULL COMMENT '节点前(节点前后只能执行脚本,下一个节点前相当于当前节点后)',
+  ` varchar(255) DEFAULT NULL COMMENT '节点后(节点前只存在一个)',
+  ` varchar(255) DEFAULT NULL COMMENT '角色权限 虚拟角色-》勾选用户存储中间表',
+  ` varchar(255) DEFAULT NULL COMMENT '节点描述',
+  ` varchar(255) DEFAULT NULL COMMENT '节点任务执行数量记录(件数)',
+  ` varchar(255) DEFAULT NULL COMMENT '节点任务执行重量记录(重量)',
+  ` varchar(255) DEFAULT NULL COMMENT '节点状态(0:未执行 1:已执行)',
+  ` varchar(255) DEFAULT NULL COMMENT '流程发起的时添设置该任务的优先级',
+  ` varchar(255) DEFAULT NULL COMMENT '执行节点备用列(未启用)',
+  ` varchar(255) DEFAULT NULL COMMENT '执行节点备用列(未启用)',
+  ` varchar(255) DEFAULT NULL COMMENT '执行节点备用列(未启用)',
+  ` varchar(255) DEFAULT NULL COMMENT '执行节点备用列(未启用)',
+  ` varchar(255) DEFAULT NULL COMMENT '执行节点备用列(未启用)',
+  ` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+  ` varchar(64) DEFAULT NULL COMMENT '执行者ID',
+  ` varchar(64) DEFAULT NULL COMMENT '执行者',
+  ` datetime DEFAULT NULL COMMENT '执行时间',
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ */
+
+

+ 24 - 5
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DragFormServiceImpl.java

@@ -130,7 +130,7 @@ public class DragFormServiceImpl implements IDragFormService {
         for (Long fId : fIds) {
             delFileForm(fId);
             //删除表单表格关联表
-            if(StringUtils.isNotNull(dragTableFormMapper.selectDragTableForm(fId))){
+            if (StringUtils.isNotNull(dragTableFormMapper.selectDragTableForm(fId))) {
                 dragTableFormMapper.deleteDragTableFormByDfId(fId);
             }
         }
@@ -163,14 +163,33 @@ public class DragFormServiceImpl implements IDragFormService {
         }
         //单个下拉框
         //获取要执行sql
-        Map<String,Object> sqlMap = objectMapper.readValue(dragForm.getDfFormSql(), Map.class);
+        Map<String, Object> sqlMap = objectMapper.readValue(dragForm.getDfFormSql(), Map.class);
         //循环得到每一个sql语句返回结果
-        for(Map.Entry<String, Object> entry : sqlMap.entrySet()){
-            List<Map<String, Object>> mapList = commonMapper.executeSql(entry.getValue().toString());
-            sqlMap.put(entry.getKey(),mapList);
+        for (Map.Entry<String, Object> entry : sqlMap.entrySet()) {
+            List<Map<String, Object>> mapList = commonMapper.executeSql(String.valueOf(entry.getValue()));
+            sqlMap.put(entry.getKey(), mapList);
         }
         dragForm.setDfFormSql(gson.toJson(sqlMap));
 
+//        //级联下拉框
+//        //获取需要执行的sql集合
+//        List<Object> sqlList = objectMapper.readValue(dragForm.getDfFormSql(), new TypeReference<List<Object>>() {});
+//        //得到根节点数据
+//        List<Map<String, Object>> rootList = commonMapper.executeSql(sqlList.get(0).toString());
+//        for (Object sql: sqlList){
+//            //跳过执行第一条sql,第一条为根节点
+//            if(sqlList.indexOf(sql) == 0){
+//                continue;
+//            }
+//
+//
+//
+//        }
+//        for (Map<String, Object> m : rootList){
+//
+//        }
+
+
         return dragForm;
     }
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 162 - 0
ruoyi-system/src/main/java/com/ruoyi/system/test/ljj.java


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor