Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

侯茂昌 1 жил өмнө
parent
commit
9cd1c086a0
15 өөрчлөгдсөн 160 нэмэгдсэн , 93 устгасан
  1. 9 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/common/CommonFileController.java
  2. 12 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/monitor/SysOperlogController.java
  3. 4 1
      zkqy-business/src/main/java/com/zkqy/business/controller/CommonBtnController.java
  4. 5 0
      zkqy-business/src/main/java/com/zkqy/business/controller/CommonController.java
  5. 48 0
      zkqy-framework/src/main/java/com/zkqy/framework/manager/factory/AsyncFactory.java
  6. 8 9
      zkqy-framework/src/main/java/com/zkqy/framework/security/handle/LogoutSuccessHandlerImpl.java
  7. 41 51
      zkqy-framework/src/main/java/com/zkqy/framework/web/service/SysLoginService.java
  8. 4 4
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteNodeController.java
  9. 4 4
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteNodeFormController.java
  10. 4 4
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteNodeMiddleController.java
  11. 7 7
      zkqy-system/src/main/java/com/zkqy/system/service/impl/SysLogininforServiceImpl.java
  12. 0 6
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/index.vue
  13. 6 1
      zkqy-ui/src/views/relateTable/components/RelateTableCard.vue
  14. 2 0
      zkqy-ui/src/views/relateTable/relateTableEdit.vue
  15. 6 6
      zkqy-ui/src/views/tablelist/commonTable/BtnMenu.vue

+ 9 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/common/CommonFileController.java

@@ -7,9 +7,11 @@ import com.alibaba.fastjson2.TypeReference;
 import com.zkqy.business.entity.DragTable;
 import com.zkqy.business.service.IDragTableService;
 import com.zkqy.common.annotation.Anonymous;
+import com.zkqy.common.annotation.Log;
 import com.zkqy.common.config.ZkqyConfig;
 import com.zkqy.common.constant.Constants;
 import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
 import com.zkqy.common.utils.StringUtils;
 import com.zkqy.common.utils.file.FileUploadUtils;
 import com.zkqy.common.utils.file.FileUtils;
@@ -66,6 +68,7 @@ public class CommonFileController {
     /**
      * 通用导出excel
      */
+    @Log(title = "动态表格", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, CommonEntity commonEntity) throws Exception {
         commonService.export(response, commonEntity);
@@ -78,6 +81,7 @@ public class CommonFileController {
      * @param tableName
      * @throws Exception
      */
+    @Log(title = "动态表格", businessType = BusinessType.EXPORT)
     @PostMapping("/exportTemplate")
     public void exportTemplate(HttpServletResponse response, String tableName, String sqlkey) throws Exception {
         commonService.exportTemplate(response, tableName, sqlkey);
@@ -89,6 +93,7 @@ public class CommonFileController {
      * @param fileName 文件名称
      * @param delete   是否删除
      */
+    @Log(title = "动态表格", businessType = BusinessType.EXPORT)
     @GetMapping("/download")
     public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
         try {
@@ -112,6 +117,7 @@ public class CommonFileController {
     /**
      * 通用上传请求(单个)
      */
+    @Log(title = "动态表格", businessType = BusinessType.IMPORT)
     @PostMapping("/upload")
     public AjaxResult uploadFile(MultipartFile file) throws Exception {
         try {
@@ -134,6 +140,7 @@ public class CommonFileController {
     /**
      * 通用上传请求(多个)
      */
+    @Log(title = "动态表格", businessType = BusinessType.IMPORT)
     @PostMapping("/uploads")
     public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
         try {
@@ -166,6 +173,7 @@ public class CommonFileController {
     /**
      * 本地资源通用下载
      */
+    @Log(title = "动态表格", businessType = BusinessType.EXPORT)
     @GetMapping("/download/resource")
     public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
             throws Exception {
@@ -191,6 +199,7 @@ public class CommonFileController {
      * 导入execl数据(单个文件)文件名即表名
      */
 
+    @Log(title = "动态表格", businessType = BusinessType.IMPORT)
     @Anonymous
     @ApiOperation("上传文件")
     @PostMapping(value = "/uploadData", headers = "content-type=multipart/form-data")

+ 12 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/monitor/SysOperlogController.java

@@ -2,6 +2,8 @@ package com.zkqy.web.controller.monitor;
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
+
+import com.zkqy.common.core.domain.entity.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -35,6 +37,11 @@ public class SysOperlogController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(SysOperLog operLog)
     {
+        if(SysUser.isAdmin(getUserId())){
+            operLog.setTenantId(0L);
+        }else {
+            operLog.setTenantId(getTenantId());
+        }
         startPage();
         List<SysOperLog> list = operLogService.selectOperLogList(operLog);
         return getDataTable(list);
@@ -45,6 +52,11 @@ public class SysOperlogController extends BaseController
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysOperLog operLog)
     {
+        if(SysUser.isAdmin(getUserId())){
+            operLog.setTenantId(0L);
+        }else {
+            operLog.setTenantId(getTenantId());
+        }
         List<SysOperLog> list = operLogService.selectOperLogList(operLog);
         ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
         util.exportExcel(response, list, "操作日志");

+ 4 - 1
zkqy-business/src/main/java/com/zkqy/business/controller/CommonBtnController.java

@@ -6,8 +6,10 @@ import com.zkqy.business.entity.DragTableBtn;
 import com.zkqy.business.service.IDragFormService;
 import com.zkqy.business.service.IDragTableBtnService;
 import com.zkqy.business.service.IDragTableGroupService;
+import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.enums.BusinessType;
 import com.zkqy.common.utils.form.FromUtils;
 import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
 import com.zkqy.execution.produce.dispersed.runbpm.PreExecutionToolClass;
@@ -54,7 +56,9 @@ public class CommonBtnController extends BaseController {
      * 判断什么类型走什么接口: visible  false代表弹窗未开启时走回显表单模板及数据信息接口;true代表弹窗开启时走保存数据接口
      * 是否提交表单操作 true是 false回显表单数据  commonEntity.getBasicMap().get("visible").toString()
      */
+
     @PostMapping("/commonBtnHandle")
+    @Log(title = "动态按钮操作", businessType = BusinessType.OTHER)
     public AjaxResult commonBtnHandle(@RequestBody CommonEntity commonEntity) throws JsonProcessingException {
         // 获取到按钮类型
         String btnType = commonEntity.getBasicMap().get("btnType").toString();
@@ -84,7 +88,6 @@ public class CommonBtnController extends BaseController {
      * @param commonEntity
      * @return
      */
-
     public AjaxResult insertBtn(CommonEntity commonEntity) throws JsonProcessingException {
         if (commonEntity.getBasicMap().get("visible").toString().equals("true")) {
             return AjaxResult.btnMessage(commonService.batchInsert(commonEntity));

+ 5 - 0
zkqy-business/src/main/java/com/zkqy/business/controller/CommonController.java

@@ -2,10 +2,12 @@ package com.zkqy.business.controller;
 
 import com.zkqy.business.entity.DragForm;
 import com.zkqy.business.service.*;
+import com.zkqy.common.annotation.Log;
 import com.zkqy.common.constant.ButtonTypeConstants;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.core.page.TableDataInfo;
+import com.zkqy.common.enums.BusinessType;
 import com.zkqy.common.exception.tenantdatassource.TenantDataSource;
 import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
 import com.zkqy.execution.produce.dispersed.entity.TableSql;
@@ -48,6 +50,7 @@ public class CommonController extends BaseController {
     /**
      * 共通批量新增
      */
+    @Log(title = "动态表单", businessType = BusinessType.INSERT)
     @PostMapping("/batchInsert")
     public AjaxResult batchInsert(@RequestBody CommonEntity commonEntity) {
         return toAjax(commonService.batchInsert(commonEntity));
@@ -57,6 +60,7 @@ public class CommonController extends BaseController {
      * 共通修改sql
      */
     @PutMapping("/batchEdit")
+    @Log(title = "动态表单", businessType = BusinessType.UPDATE)
     public AjaxResult edit(@RequestBody CommonEntity commonEntity) {
         return toAjax(commonService.edit(commonEntity));
     }
@@ -67,6 +71,7 @@ public class CommonController extends BaseController {
      * 批量删除
      */
     @DeleteMapping("/batchDelete")
+    @Log(title = "动态表单", businessType = BusinessType.DELETE)
     public AjaxResult batchDelete(@RequestBody CommonEntity commonEntity) {
         return toAjax(commonService.batchDelete(commonEntity));
     }

+ 48 - 0
zkqy-framework/src/main/java/com/zkqy/framework/manager/factory/AsyncFactory.java

@@ -80,6 +80,54 @@ public class AsyncFactory
         };
     }
 
+    // 重写
+    public static TimerTask recordLogininfor(final Long tenantId,final String username, final String status, final String message,
+                                             final Object... args)
+    {
+        final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
+        final String ip = IpUtils.getIpAddr();
+        return new TimerTask()
+        {
+            @Override
+            public void run()
+            {
+                String address = AddressUtils.getRealAddressByIP(ip);
+                StringBuilder s = new StringBuilder();
+                s.append(LogUtils.getBlock(ip));
+                s.append(address);
+                s.append(LogUtils.getBlock(username));
+                s.append(LogUtils.getBlock(status));
+                s.append(LogUtils.getBlock(message));
+                // 打印信息到日志
+                sys_user_logger.info(s.toString(), args);
+                // 获取客户端操作系统
+                String os = userAgent.getOperatingSystem().getName();
+                // 获取客户端浏览器
+                String browser = userAgent.getBrowser().getName();
+                // 封装对象
+                SysLogininfor logininfor = new SysLogininfor();
+                logininfor.setUserName(username);
+                logininfor.setIpaddr(ip);
+                logininfor.setLoginLocation(address);
+                logininfor.setBrowser(browser);
+                logininfor.setOs(os);
+                logininfor.setMsg(message);
+                // 增加租户标识
+                logininfor.setTenantId(tenantId);
+                // 日志状态
+                if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER))
+                {
+                    logininfor.setStatus(Constants.SUCCESS);
+                }
+                else if (Constants.LOGIN_FAIL.equals(status))
+                {
+                    logininfor.setStatus(Constants.FAIL);
+                }
+                // 插入数据
+                SpringUtils.getBean(ISysLogininforService.class).insertLogininfor(logininfor);
+            }
+        };
+    }
     /**
      * 操作日志记录
      * 

+ 8 - 9
zkqy-framework/src/main/java/com/zkqy/framework/security/handle/LogoutSuccessHandlerImpl.java

@@ -4,6 +4,7 @@ import java.io.IOException;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.core.Authentication;
@@ -20,32 +21,30 @@ import com.zkqy.framework.web.service.TokenService;
 
 /**
  * 自定义退出处理类 返回成功
- * 
+ *
  * @author ruoyi
  */
 @Configuration
-public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
-{
+public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler {
     @Autowired
     private TokenService tokenService;
 
     /**
      * 退出处理
-     * 
+     *
      * @return
      */
     @Override
     public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
-            throws IOException, ServletException
-    {
+            throws IOException, ServletException {
         LoginUser loginUser = tokenService.getLoginUser(request);
-        if (StringUtils.isNotNull(loginUser))
-        {
+        if (StringUtils.isNotNull(loginUser)) {
             String userName = loginUser.getUsername();
             // 删除用户缓存记录
             tokenService.delLoginUser(loginUser.getToken());
+            Long tenantId = loginUser.getTenantId() == null ? 0L : loginUser.getTenantId();
             // 记录用户退出日志
-            AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功"));
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(tenantId, userName, Constants.LOGOUT, "退出成功"));
         }
         ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success("退出成功")));
     }

+ 41 - 51
zkqy-framework/src/main/java/com/zkqy/framework/web/service/SysLoginService.java

@@ -40,12 +40,11 @@ import java.time.ZoneOffset;
 
 /**
  * 登录校验方法
- * 
+ *
  * @author ruoyi
  */
 @Component
-public class SysLoginService
-{
+public class SysLoginService {
     @Autowired
     private TokenService tokenService;
 
@@ -54,7 +53,7 @@ public class SysLoginService
 
     @Autowired
     private RedisCache redisCache;
-    
+
     @Autowired
     private ISysUserService userService;
 
@@ -66,15 +65,14 @@ public class SysLoginService
 
     /**
      * 登录验证
-     * 
+     *
      * @param username 用户名
      * @param password 密码
-     * @param code 验证码
-     * @param uuid 唯一标识
+     * @param code     验证码
+     * @param uuid     唯一标识
      * @return 结果
      */
-    public String login(String username, String password, String code, String uuid)
-    {
+    public String login(String username, String password, String code, String uuid) {
         //验证码校验
         validateCaptcha(username, code, uuid);
         //登录前置校验
@@ -82,32 +80,33 @@ public class SysLoginService
 
         // 用户验证
         Authentication authentication = null;
-        try
-        {
+        try {
             UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
             AuthenticationContextHolder.setContext(authenticationToken);
             // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
             authentication = authenticationManager.authenticate(authenticationToken);
-        }
-        catch (Exception e)
-        {
-            if (e instanceof BadCredentialsException)
-            {
+        } catch (Exception e) {
+            if (e instanceof BadCredentialsException) {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
                 throw new UserPasswordNotMatchException();
-            }
-            else
-            {
+            } else {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
                 throw new ServiceException(e.getMessage());
             }
-        }
-        finally
-        {
+        } finally {
             AuthenticationContextHolder.clearContext();
         }
-        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+        Long tenantId;
+        try {
+            tenantId = loginUser.getTenantId();
+            if (tenantId == null) {
+                tenantId = 0L;// 0L 表示当前是admin(租户信息表id自增「自增id不会从0开始」)
+            }
+        } catch (Exception exception) {
+            tenantId = 0L;  // 0L 表示当前是admin(租户信息表id自增「自增id不会从0开始」)
+        }
+        AsyncManager.me().execute(AsyncFactory.recordLogininfor(tenantId, username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         recordLoginInfo(loginUser.getUserId());
         // 生成token
         return tokenService.createToken(loginUser);
@@ -115,27 +114,23 @@ public class SysLoginService
 
     /**
      * 校验验证码
-     * 
+     *
      * @param username 用户名
-     * @param code 验证码
-     * @param uuid 唯一标识
+     * @param code     验证码
+     * @param uuid     唯一标识
      * @return 结果
      */
-    public void validateCaptcha(String username, String code, String uuid)
-    {
+    public void validateCaptcha(String username, String code, String uuid) {
         boolean captchaEnabled = configService.selectCaptchaEnabled();
-        if (captchaEnabled)
-        {
+        if (captchaEnabled) {
             String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, "");
             String captcha = redisCache.getCacheObject(verifyKey);
             redisCache.deleteObject(verifyKey);
-            if (captcha == null)
-            {
+            if (captcha == null) {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")));
                 throw new CaptchaExpireException();
             }
-            if (!code.equalsIgnoreCase(captcha))
-            {
+            if (!code.equalsIgnoreCase(captcha)) {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
                 throw new CaptchaException();
             }
@@ -144,35 +139,31 @@ public class SysLoginService
 
     /**
      * 登录前置校验
+     *
      * @param username 用户名
      * @param password 用户密码
      */
-    public void loginPreCheck(String username, String password)
-    {
+    public void loginPreCheck(String username, String password) {
         // 用户名或密码为空 错误
-        if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password))
-        {
+        if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
             AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null")));
             throw new UserNotExistsException();
         }
         // 密码如果不在指定范围内 错误
         if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
-                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
-        {
+                || password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
             AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
             throw new UserPasswordNotMatchException();
         }
         // 用户名不在指定范围内 错误
         if (username.length() < UserConstants.USERNAME_MIN_LENGTH
-                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
-        {
+                || username.length() > UserConstants.USERNAME_MAX_LENGTH) {
             AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
             throw new UserPasswordNotMatchException();
         }
         // IP黑名单校验
         String blackStr = configService.selectConfigByKey("sys.login.blackIPList");
-        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
-        {
+        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) {
             AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("login.blocked")));
             throw new BlackListException();
         }
@@ -183,8 +174,7 @@ public class SysLoginService
      *
      * @param userId 用户ID
      */
-    public void recordLoginInfo(Long userId)
-    {
+    public void recordLoginInfo(Long userId) {
         SysUser sysUser = new SysUser();
         sysUser.setUserId(userId);
         sysUser.setLoginIp(IpUtils.getIpAddr());
@@ -195,24 +185,24 @@ public class SysLoginService
     public String checkTenantExpirationTime(String username) {
         SysUser user = userService.selectUserByUserName(username);
         //拿到当前登录用户
-        if(!user.getUserName().equals("admin")){
+        if (!user.getUserName().equals("admin")) {
             //根据租户id查询租户信息
             SysTenant sysTenant = sysTenantService.selectSysTenantByTenantId(user.getTenantId());
-            if(sysTenant.getTenantExpirationTime()==null||sysTenant.getTenantExpirationTime().isEmpty()){
+            if (sysTenant.getTenantExpirationTime() == null || sysTenant.getTenantExpirationTime().isEmpty()) {
                 return "该用户租户信息并未激活";
             }
             SymmetricCrypto symmetricCrypto = new SymmetricCrypto(SymmetricAlgorithm.DES, "sgEsnN6QWq8W7j5H01020304".getBytes());
             //当前时间
-            LocalDateTime now=LocalDateTime.now();
+            LocalDateTime now = LocalDateTime.now();
             long nowSecond = now.toEpochSecond(ZoneOffset.ofHours(8));
             //到期时间
             String LastActiveTimeStr = symmetricCrypto.decryptStr(sysTenant.getTenantExpirationTime(), CharsetUtil.CHARSET_UTF_8);
             LocalDateTime LastActiveDateTime = DateUtils.toLocalDateTime(LastActiveTimeStr, "yyyy-MM-dd HH:mm:ss");
             long expirationTimeSecond = LastActiveDateTime.toEpochSecond(ZoneOffset.ofHours(8));
             //计算时间戳
-            long difference=expirationTimeSecond-nowSecond; //相差的时间数 后边减前边
+            long difference = expirationTimeSecond - nowSecond; //相差的时间数 后边减前边
             //如果是负数证明已经过期了
-            if(difference<0){
+            if (difference < 0) {
                 return "该用户租户信息已过期";
             }
         }

+ 4 - 4
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteNodeController.java

@@ -44,7 +44,7 @@ public class BpmExecuteNodeController extends BaseController {
      * 导出节点执行(记录)列表
      */
     @PreAuthorize("@ss.hasPermi('system:node:export')")
-    @Log(title = "节点执行(记录)", businessType = BusinessType.EXPORT)
+    @Log(title = "节点执行日志", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, BpmExecuteNode bpmExecuteNode) {
         List<BpmExecuteNode> list = bpmExecuteNodeService.selectBpmExecuteNodeList(bpmExecuteNode);
@@ -65,7 +65,7 @@ public class BpmExecuteNodeController extends BaseController {
      * 新增节点执行(记录)
      */
     @PreAuthorize("@ss.hasPermi('system:node:add')")
-    @Log(title = "节点执行(记录)", businessType = BusinessType.INSERT)
+    @Log(title = "节点执行日志", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody BpmExecuteNode bpmExecuteNode) {
         return toAjax(bpmExecuteNodeService.insertBpmExecuteNode(bpmExecuteNode));
@@ -75,7 +75,7 @@ public class BpmExecuteNodeController extends BaseController {
      * 修改节点执行(记录)
      */
     @PreAuthorize("@ss.hasPermi('system:node:edit')")
-    @Log(title = "节点执行(记录)", businessType = BusinessType.UPDATE)
+    @Log(title = "节点执行日志", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody BpmExecuteNode bpmExecuteNode) {
         return toAjax(bpmExecuteNodeService.updateBpmExecuteNode(bpmExecuteNode));
@@ -85,7 +85,7 @@ public class BpmExecuteNodeController extends BaseController {
      * 删除节点执行(记录)
      */
     @PreAuthorize("@ss.hasPermi('system:node:remove')")
-    @Log(title = "节点执行(记录)", businessType = BusinessType.DELETE)
+    @Log(title = "节点执行日志", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(bpmExecuteNodeService.deleteBpmExecuteNodeByIds(ids));

+ 4 - 4
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteNodeFormController.java

@@ -44,7 +44,7 @@ public class BpmExecuteNodeFormController extends BaseController {
      * 导出执行节点单列表
      */
     @PreAuthorize("@ss.hasPermi('system:form:export')")
-    @Log(title = "执行节点单", businessType = BusinessType.EXPORT)
+    @Log(title = "执行节点单", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, BpmExecuteNodeForm bpmExecuteNodeForm) {
         List<BpmExecuteNodeForm> list = bpmExecuteNodeFormService.selectBpmExecuteNodeFormList(bpmExecuteNodeForm);
@@ -65,7 +65,7 @@ public class BpmExecuteNodeFormController extends BaseController {
      * 新增执行节点单
      */
     @PreAuthorize("@ss.hasPermi('system:form:add')")
-    @Log(title = "执行节点单", businessType = BusinessType.INSERT)
+    @Log(title = "执行节点单", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody BpmExecuteNodeForm bpmExecuteNodeForm) {
         return toAjax(bpmExecuteNodeFormService.insertBpmExecuteNodeForm(bpmExecuteNodeForm));
@@ -75,7 +75,7 @@ public class BpmExecuteNodeFormController extends BaseController {
      * 修改执行节点单
      */
     @PreAuthorize("@ss.hasPermi('system:form:edit')")
-    @Log(title = "执行节点单", businessType = BusinessType.UPDATE)
+    @Log(title = "执行节点单", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody BpmExecuteNodeForm bpmExecuteNodeForm) {
         return toAjax(bpmExecuteNodeFormService.updateBpmExecuteNodeForm(bpmExecuteNodeForm));
@@ -85,7 +85,7 @@ public class BpmExecuteNodeFormController extends BaseController {
      * 删除执行节点单
      */
     @PreAuthorize("@ss.hasPermi('system:form:remove')")
-    @Log(title = "执行节点单", businessType = BusinessType.DELETE)
+    @Log(title = "执行节点单", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(bpmExecuteNodeFormService.deleteBpmExecuteNodeFormByIds(ids));

+ 4 - 4
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteNodeMiddleController.java

@@ -43,7 +43,7 @@ public class BpmExecuteNodeMiddleController extends BaseController {
      * 导出执行流程用户、节点关联脚本中间列表
      */
     @PreAuthorize("@ss.hasPermi('system:middle:export')")
-    @Log(title = "执行流程用户、节点关联脚本中间", businessType = BusinessType.EXPORT)
+    @Log(title = "执行流程日志", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, BpmExecuteNodeMiddle bpmExecuteNodeMiddle) {
         List<BpmExecuteNodeMiddle> list = bpmExecuteNodeMiddleService.selectBpmExecuteNodeMiddleList(bpmExecuteNodeMiddle);
@@ -64,7 +64,7 @@ public class BpmExecuteNodeMiddleController extends BaseController {
      * 新增执行流程用户、节点关联脚本中间
      */
     @PreAuthorize("@ss.hasPermi('system:middle:add')")
-    @Log(title = "执行流程用户、节点关联脚本中间", businessType = BusinessType.INSERT)
+    @Log(title = "执行流程日志", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody BpmExecuteNodeMiddle bpmExecuteNodeMiddle) {
         return toAjax(bpmExecuteNodeMiddleService.insertBpmExecuteNodeMiddle(bpmExecuteNodeMiddle));
@@ -74,7 +74,7 @@ public class BpmExecuteNodeMiddleController extends BaseController {
      * 修改执行流程用户、节点关联脚本中间
      */
     @PreAuthorize("@ss.hasPermi('system:middle:edit')")
-    @Log(title = "执行流程用户、节点关联脚本中间", businessType = BusinessType.UPDATE)
+    @Log(title = "执行流程日志", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody BpmExecuteNodeMiddle bpmExecuteNodeMiddle) {
         return toAjax(bpmExecuteNodeMiddleService.updateBpmExecuteNodeMiddle(bpmExecuteNodeMiddle));
@@ -84,7 +84,7 @@ public class BpmExecuteNodeMiddleController extends BaseController {
      * 删除执行流程用户、节点关联脚本中间
      */
     @PreAuthorize("@ss.hasPermi('system:middle:remove')")
-    @Log(title = "执行流程用户、节点关联脚本中间", businessType = BusinessType.DELETE)
+    @Log(title = "执行流程日志", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(bpmExecuteNodeMiddleService.deleteBpmExecuteNodeMiddleByIds(ids));

+ 7 - 7
zkqy-system/src/main/java/com/zkqy/system/service/impl/SysLogininforServiceImpl.java

@@ -27,13 +27,6 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
      */
     @Override
     public void insertLogininfor(SysLogininfor logininfor) {
-        Long tenantId;
-        try {
-            tenantId = SecurityUtils.getTenantId();
-        } catch (Exception exception) {
-            tenantId = 0L;  // 0L 表示当前是admin(租户信息表id自增「自增id不会从0开始」)
-        }
-        logininfor.setTenantId(tenantId);
         logininforMapper.insertLogininfor(logininfor);
     }
 
@@ -45,6 +38,13 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
      */
     @Override
     public List<SysLogininfor> selectLogininforList(SysLogininfor logininfor) {
+        Long tenantId;
+        try {
+            tenantId = SecurityUtils.getTenantId();
+        } catch (Exception exception) {
+            tenantId = 0L;  // 0L 表示当前是admin(租户信息表id自增「自增id不会从0开始」)
+        }
+        logininfor.setTenantId(tenantId);
         return logininforMapper.selectLogininforList(logininfor);
     }
 

+ 0 - 6
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/index.vue

@@ -152,8 +152,6 @@ import { Modal, message } from "ant-design-vue";
 import { revoke, nodeSchema } from "../../utils/index";
 import formItemProperties from "./module/formItemProperties";
 import formProperties from "./module/formProperties";
-import { black } from '@/components/updateModule/bpmn-js/lib/draw/BpmnRenderUtil'
-
 
 export default {
   name: "KFormDesign",
@@ -522,12 +520,8 @@ export default {
     }
   },
   created() {
-    let blackList=['评分','警告提示','HTML','富文本','按钮']
     this.loadState = true;
     nodeSchema.addComputed(this.schemaGroup);
-    this.schemaGroup[0].list = this.schemaGroup[0].list.filter(item => {
-      return !blackList.some(v=>v==item.label)
-    })
   }
 };
 </script>

+ 6 - 1
zkqy-ui/src/views/relateTable/components/RelateTableCard.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-card class="box-card" :body-style="{ padding: '0px' }">
+  <el-card class="box-card">
     <div slot="header" class="clearfix">
       <el-tag class="tag_NO">{{ dtName }}</el-tag>
       <!-- <span class="title">{{ cardData.title }}</span> -->
@@ -99,6 +99,7 @@ import { inputDisableComplete } from "@/utils/other";
 
 import { camelCase } from "@/utils";
 import { CloudFog } from "lucide-vue";
+import { bottom } from "@antv/x6/lib/registry/port-layout/line";
 export default {
   name: "RelateTableCard",
   props: ["cardData", "index", "tableKey", "sort"],
@@ -546,6 +547,10 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-card__body {
+  padding: 0px;
+  padding-bottom: 10px;
+}
 .item {
   margin-bottom: 18px;
 }

+ 2 - 0
zkqy-ui/src/views/relateTable/relateTableEdit.vue

@@ -137,6 +137,8 @@ export default {
   display: flex;
   .card_wrap {
     // max-height: 400px;
+    display: flex;
+    flex-wrap: wrap;
     max-width: 400px;
     margin-right: 20px;
   }

+ 6 - 6
zkqy-ui/src/views/tablelist/commonTable/BtnMenu.vue

@@ -79,17 +79,17 @@ export default {
     judgeBtnHandler(row, con) {
       let { fieldName, refValue, mark } = con;
       switch (mark) {
-        case ">":
+        case "1":
           return row[fieldName] > refValue;
-        case "<":
+        case "2":
           return row[fieldName] < refValue;
-        case "=":
+        case "3":
           return row[fieldName] == refValue;
-        case ">=":
+        case "4":
           return row[fieldName] >= refValue;
-        case "<=":
+        case "5":
           return row[fieldName] <= refValue;
-        case "!=":
+        case "6":
           return row[fieldName] != refValue;
         default:
           return true;