From adf968e4d5315c02664b04afbfb79479d568ef54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=B8=85?= Date: Sat, 14 Jun 2025 19:59:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=94=A8=E6=88=B7=E4=B8=8E=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysDeptController.java | 19 +- .../controller/system/SysUserController.java | 12 +- .../core/domain/entity/ExternalDept.java | 72 +++++++ .../core/domain/entity/ExternalUser.java | 115 +++++++++++ .../common/core/domain/entity/SysDept.java | 5 + .../system/service/ISysDeptService.java | 5 + .../system/service/ISysUserService.java | 7 +- .../service/impl/SysDeptServiceImpl.java | 50 +++++ .../service/impl/SysUserServiceImpl.java | 36 +++- .../system/util/HttpTmEncryptUtil.java | 190 ++++++++++++++++++ maintain-ui/package.json | 2 +- maintain-ui/src/api/system/dept.js | 8 + maintain-ui/src/api/system/user.js | 8 + maintain-ui/src/router/index.js | 2 +- maintain-ui/src/utils/request.js | 2 +- maintain-ui/src/views/system/dept/index.vue | 27 ++- maintain-ui/src/views/system/user/index.vue | 36 +++- 17 files changed, 577 insertions(+), 19 deletions(-) create mode 100644 maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalDept.java create mode 100644 maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalUser.java create mode 100644 maintain-system/src/main/java/com/maintain/system/util/HttpTmEncryptUtil.java diff --git a/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java b/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java index 499f113..1bd734c 100644 --- a/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java +++ b/maintain-admin/src/main/java/com/maintain/web/controller/system/SysDeptController.java @@ -1,6 +1,5 @@ package com.maintain.web.controller.system; -import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.convert.Convert; @@ -136,10 +135,18 @@ public class SysDeptController extends BaseController { } - @SaIgnore - @PostMapping("/deptExtracted") - public R deptExtracted() { - deptService.deptExtracted(); - return R.ok("操作成功"); + + + /** + * 同步外部数据 + * @return + */ + // @SaIgnore + @SaCheckPermission("system:dept:sync") + @Log(title = "同步部门外部数据", businessType = BusinessType.OTHER) + @PostMapping("/deptSync") + public R deptSync() { + deptService.deptSync(); + return R.ok("数据同步成功"); } } diff --git a/maintain-admin/src/main/java/com/maintain/web/controller/system/SysUserController.java b/maintain-admin/src/main/java/com/maintain/web/controller/system/SysUserController.java index 4777568..55d9c41 100644 --- a/maintain-admin/src/main/java/com/maintain/web/controller/system/SysUserController.java +++ b/maintain-admin/src/main/java/com/maintain/web/controller/system/SysUserController.java @@ -255,10 +255,14 @@ public class SysUserController extends BaseController { } - @SaIgnore - @PostMapping("/userExtracted") - public R userExtracted() { - userService.userExtracted(); + /** + * 同步外部用户数据 + */ +// @SaIgnore + @SaCheckPermission("system:user:sync") + @PostMapping("/userSync") + public R userSync() { + userService.userSync(); return R.ok("操作成功"); } } diff --git a/maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalDept.java b/maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalDept.java new file mode 100644 index 0000000..59be75d --- /dev/null +++ b/maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalDept.java @@ -0,0 +1,72 @@ +package com.maintain.common.core.domain.entity; + +import lombok.Data; + +/** + * 外部部门 + */ +public class ExternalDept { + private String deptName; + private String upperDeptName; + private String upperDeptCode; + private String deptType; + private String deptCode; + private String deptFullName; + private String status; + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getUpperDeptName() { + return upperDeptName; + } + + public void setUpperDeptName(String upperDeptName) { + this.upperDeptName = upperDeptName; + } + + public String getUpperDeptCode() { + return upperDeptCode; + } + + public void setUpperDeptCode(String upperDeptCode) { + this.upperDeptCode = upperDeptCode; + } + + public String getDeptType() { + return deptType; + } + + public void setDeptType(String deptType) { + this.deptType = deptType; + } + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + + public String getDeptFullName() { + return deptFullName; + } + + public void setDeptFullName(String deptFullName) { + this.deptFullName = deptFullName; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalUser.java b/maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalUser.java new file mode 100644 index 0000000..d387bf3 --- /dev/null +++ b/maintain-common/src/main/java/com/maintain/common/core/domain/entity/ExternalUser.java @@ -0,0 +1,115 @@ +package com.maintain.common.core.domain.entity; + +/** + * 外部部门 + */ +public class ExternalUser { + private String filaNo; + private String groupName; + private String lineNo; + private String empName; + private String statusName; + private String lineName; + private String empNo; + private String groupNo; + private String subStatusName; + private String filaName; + private String subStatus; + private String status; + + public String getFilaNo() { + return filaNo; + } + + public void setFilaNo(String filaNo) { + this.filaNo = filaNo; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getLineNo() { + return lineNo; + } + + public void setLineNo(String lineNo) { + this.lineNo = lineNo; + } + + public String getEmpName() { + return empName; + } + + public void setEmpName(String empName) { + this.empName = empName; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getLineName() { + return lineName; + } + + public void setLineName(String lineName) { + this.lineName = lineName; + } + + public String getEmpNo() { + return empNo; + } + + public void setEmpNo(String empNo) { + this.empNo = empNo; + } + + public String getGroupNo() { + return groupNo; + } + + public void setGroupNo(String groupNo) { + this.groupNo = groupNo; + } + + public String getSubStatusName() { + return subStatusName; + } + + public void setSubStatusName(String subStatusName) { + this.subStatusName = subStatusName; + } + + public String getFilaName() { + return filaName; + } + + public void setFilaName(String filaName) { + this.filaName = filaName; + } + + public String getSubStatus() { + return subStatus; + } + + public void setSubStatus(String subStatus) { + this.subStatus = subStatus; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/maintain-common/src/main/java/com/maintain/common/core/domain/entity/SysDept.java b/maintain-common/src/main/java/com/maintain/common/core/domain/entity/SysDept.java index 23d6dac..aaa486c 100644 --- a/maintain-common/src/main/java/com/maintain/common/core/domain/entity/SysDept.java +++ b/maintain-common/src/main/java/com/maintain/common/core/domain/entity/SysDept.java @@ -72,6 +72,11 @@ public class SysDept extends TreeEntity { @TableLogic private String delFlag; + /** + * 外部code + */ + private String externalDeptCode; + /** * 祖级列表 */ diff --git a/maintain-system/src/main/java/com/maintain/system/service/ISysDeptService.java b/maintain-system/src/main/java/com/maintain/system/service/ISysDeptService.java index 5c6d7f8..b837f96 100644 --- a/maintain-system/src/main/java/com/maintain/system/service/ISysDeptService.java +++ b/maintain-system/src/main/java/com/maintain/system/service/ISysDeptService.java @@ -125,4 +125,9 @@ public interface ISysDeptService { * 外部数据创建 */ void deptExtracted(); + + /** + * 根据外部接口同步部门数据 + */ + void deptSync(); } diff --git a/maintain-system/src/main/java/com/maintain/system/service/ISysUserService.java b/maintain-system/src/main/java/com/maintain/system/service/ISysUserService.java index ec245a6..461461e 100644 --- a/maintain-system/src/main/java/com/maintain/system/service/ISysUserService.java +++ b/maintain-system/src/main/java/com/maintain/system/service/ISysUserService.java @@ -209,8 +209,13 @@ public interface ISysUserService { int deleteUserByIds(Long[] userIds); /** - * 外部数据创建 + * 根据文件同步外部数据 */ void userExtracted(); + /** + * 根据接口同步外部数据 + */ + void userSync(); + } diff --git a/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java b/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java index d1df37d..f056a57 100644 --- a/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java +++ b/maintain-system/src/main/java/com/maintain/system/service/impl/SysDeptServiceImpl.java @@ -1,17 +1,22 @@ package com.maintain.system.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.fasterxml.jackson.databind.ObjectMapper; import com.maintain.common.constant.CacheNames; import com.maintain.common.constant.UserConstants; +import com.maintain.common.core.domain.entity.ExternalDept; import com.maintain.common.core.domain.entity.SysDept; import com.maintain.common.core.domain.entity.SysRole; import com.maintain.common.core.domain.entity.SysUser; import com.maintain.common.core.service.DeptService; +import com.maintain.common.enums.IsEnableStatus; import com.maintain.common.exception.ServiceException; import com.maintain.common.helper.DataBaseHelper; import com.maintain.common.helper.LoginHelper; @@ -32,6 +37,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; /** * 部门管理 服务实现 @@ -323,4 +329,48 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService { baseMapper.insertBatch(sysDeptList); } + /** + * 根据外部接口同步部门数据 + */ + @Override + public void deptSync() { + String res = com.zxw.util.tm.HttpTmEncryptUtil.sendPostRequest("http://10.100.102.67:22220/api/basis/deptInfoExtRepair", null, null); + Map map = JSONUtil.toBean(res, Map.class); + List departmentList = JSONUtil.toList(JSONUtil.toJsonStr(map.get("data")), ExternalDept.class); + departmentList.forEach(department -> { + SysDept selectOne = baseMapper.selectOne(new LambdaQueryWrapper().eq(SysDept::getExternalDeptCode, department.getDeptCode())); + // 查询是否已存在系统 + if (null == selectOne) { + SysDept dept = baseMapper.selectOne(new LambdaQueryWrapper().eq(SysDept::getExternalDeptCode, department.getUpperDeptCode())); + if (dept != null) { + SysDept sysDept = new SysDept(); + sysDept.setAncestors(dept.getAncestors() + StringUtils.SEPARATOR + dept.getDeptId()); + sysDept.setParentId(dept.getDeptId()); + sysDept.setDeptName(department.getDeptName()); + sysDept.setExternalDeptCode(department.getDeptCode()); + // 状态转换 + sysDept.setStatus( + department.getStatus().equals("已启用") + ? String.valueOf(IsEnableStatus.YES.getCode()) // 已启用对应YES + : String.valueOf(IsEnableStatus.NO.getCode()) + ); + baseMapper.insert(sysDept); + } else if (department.getUpperDeptCode().equals("-1")) { + SysDept sysDept = new SysDept(); + sysDept.setAncestors("0,1"); + sysDept.setParentId(1L); + sysDept.setDeptName(department.getDeptName()); + sysDept.setExternalDeptCode(department.getDeptCode()); + // 状态转换 + sysDept.setStatus( + department.getStatus().equals("已启用") + ? String.valueOf(IsEnableStatus.YES.getCode()) // 已启用对应YES + : String.valueOf(IsEnableStatus.NO.getCode()) + ); + baseMapper.insert(sysDept); + } + } + }); + } + } diff --git a/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java b/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java index 0bc6a8c..d4fd6e2 100644 --- a/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java +++ b/maintain-system/src/main/java/com/maintain/system/service/impl/SysUserServiceImpl.java @@ -1,8 +1,10 @@ package com.maintain.system.service.impl; +import cn.dev33.satoken.secure.BCrypt; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,11 +14,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.maintain.common.constant.CacheNames; import com.maintain.common.constant.UserConstants; import com.maintain.common.core.domain.PageQuery; -import com.maintain.common.core.domain.entity.SysDept; -import com.maintain.common.core.domain.entity.SysRole; -import com.maintain.common.core.domain.entity.SysUser; +import com.maintain.common.core.domain.entity.*; import com.maintain.common.core.page.TableDataInfo; import com.maintain.common.core.service.UserService; +import com.maintain.common.enums.UserStatus; import com.maintain.common.exception.ServiceException; import com.maintain.common.helper.DataBaseHelper; import com.maintain.common.helper.LoginHelper; @@ -34,6 +35,7 @@ import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -490,4 +492,32 @@ public class SysUserServiceImpl implements ISysUserService, UserService { baseMapper.insertBatch(userList); } + /** + * 根据接口同步外部数据 + */ + @Override + public void userSync() { + String res = com.zxw.util.tm.HttpTmEncryptUtil.sendPostRequest("http://10.100.102.67:22220/api/basis/empInfoExtRepair", null, null); + Map map = JSONUtil.toBean(res, Map.class); + List externalUserList = JSONUtil.toList(JSONUtil.toJsonStr(map.get("data")), ExternalUser.class); + List users = new ArrayList<>(); + List sysUserList = baseMapper.selectList(); + List sysDeptList = deptMapper.selectList(); + externalUserList.forEach(externalUser -> { + if (sysUserList.stream().noneMatch(item -> externalUser.getEmpNo().equals(item.getUserName()))) { + SysUser sysUser = new SysUser(); + SysDept dept = sysDeptList.stream().filter(item -> item.getExternalDeptCode().equals(externalUser.getGroupNo())) + .findFirst() + .orElseThrow(() -> new RuntimeException("未找到部门=" + externalUser.getGroupNo())); + sysUser.setDeptId(dept != null ? dept.getDeptId() : null); + sysUser.setUserName(externalUser.getEmpNo()); + sysUser.setNickName(externalUser.getEmpName()); + sysUser.setStatus(externalUser.getStatusName().equals("在职") ? UserStatus.OK.getCode() : UserStatus.DISABLE.getCode()); + sysUser.setPassword(BCrypt.hashpw(externalUser.getEmpNo())); + users.add(sysUser); + } + }); + baseMapper.insertBatch(users); + } + } diff --git a/maintain-system/src/main/java/com/maintain/system/util/HttpTmEncryptUtil.java b/maintain-system/src/main/java/com/maintain/system/util/HttpTmEncryptUtil.java new file mode 100644 index 0000000..cd7ca5c --- /dev/null +++ b/maintain-system/src/main/java/com/maintain/system/util/HttpTmEncryptUtil.java @@ -0,0 +1,190 @@ +package com.zxw.util.tm; + +import cn.hutool.core.codec.Base64; +import cn.hutool.json.JSONObject; +import org.apache.commons.codec.digest.HmacUtils; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.lang.Nullable; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; +import sun.misc.BASE64Decoder; + +import javax.crypto.Cipher; +import javax.crypto.spec.SecretKeySpec; +import java.io.UnsupportedEncodingException; +import java.net.*; +import java.nio.charset.StandardCharsets; +import java.security.Key; +import java.util.*; + +/** + * 天迈数据http请求 + */ +public class HttpTmEncryptUtil { + /** + * 客户端appid + */ + private static String appId = "1924051882771222530"; + /** + * 客户端鉴权密钥 + */ + private static String secret = "869v5NED"; + /** + * 数据加密密钥 + */ + private static String secretKey = "..."; + + /** + * 天迈数据请求地址 + */ + private static final String TM_PERSON_DATA_URL = "http://10.100.102.67:22220/api/basis/deptInfoExtRepair"; + + // 示例调用 + public static void main(String[] args) { + // 构造请求参数 + MultiValueMap params = new LinkedMultiValueMap<>(); +// params.add("dataDate", "20250301"); +// params.add("curPage", "1"); +// params.add("pageSize", "10"); + + JSONObject boby = new JSONObject(); + boby.append("curPage", "1"); + boby.append("pageSize", "1"); + + // 构造请求体(JSON) +// String body = "{\"dataDate\":\"20250301\"}"; + + // 发送请求 + String response = sendPostRequest(TM_PERSON_DATA_URL, params, boby.toString()); + System.out.println("响应结果: " + response); + } + + /** + * 构建带有鉴权头的POST请求 + */ + public static String sendPostRequest(String url, MultiValueMap params, String body) { + RestTemplate restTemplate = new RestTemplate(); + try { + // 1. 生成鉴权头 + HttpHeaders headers = getHeaders(params, body); + // 2. 构建请求实体(包含头和体) + HttpEntity requestEntity = new HttpEntity<>(body, headers); + // 3. 发送POST请求 + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.POST, + requestEntity, + String.class + ); + return response.getBody(); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException("编码错误", e); + } + } + + /** + * 拼装请求数据 + * + * @param appid appid + * @param timestamp 时间戳 + * @param params 参数 + * @param body 请求体 + */ + public static String baseString(String appid, long timestamp, MultiValueMap params, @Nullable String body) throws UnsupportedEncodingException { + StringBuilder baseString = new StringBuilder(); + if (MapUtils.isNotEmpty(params)) { + params.keySet().stream().sorted().forEach(key -> { + List values = params.get(key); + if (CollectionUtils.isNotEmpty(values)) { + baseString.append(key).append("="); + baseString.append(values.size() == 1 ? values.get(0) : Arrays.toString(values.toArray())); + baseString.append("&"); + } + }); + } + baseString.append("appid=").append(appid).append("&"); + baseString.append("timestamp=").append(timestamp); + if (StringUtils.isNotBlank(body)) { + body = body.replaceAll("\\s*", StringUtils.EMPTY); + baseString.append("&body=").append(body); + } + + return URLDecoder.decode(baseString.toString(), StandardCharsets.UTF_8.name()); + } + + /** + * 生成摘要digest + * + * @param secret secret + * @param salt 拼接好的请求参数字符串 + */ + public static String encode(String secret , String salt) { + final byte[] key = secret .getBytes(StandardCharsets.UTF_8); + final byte[] digest = salt.getBytes(StandardCharsets.UTF_8); + byte[] bytes = HmacUtils.hmacSha1(key, digest); + return Base64.encode(bytes); + } + + /** + * 获取鉴权Authorization + * + * @param timestamp 当前请求时间戳 + * @param params 请求url参数 + * @param body 请求体 + * @return 鉴权Authorization + */ + private static String getAuthorization(long timestamp, MultiValueMap params, String body) throws UnsupportedEncodingException { + String salt = baseString(appId, timestamp, params, body); + return "HmacSHA " + appId + ":" + timestamp + ":" + encode(secret , salt); + } + + /** + * 获取设置鉴权的HttpHeaders + * + * @param params 请求url参数 + * @param body 请求体 + * @return HttpHeaders + */ + private static HttpHeaders getHeaders(MultiValueMap params, String body) throws UnsupportedEncodingException { + // 当前请求时间戳 + long timestamp = System.currentTimeMillis(); + String authorization = getAuthorization(timestamp, params, body); + + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.set("Content-Type", "application/json"); + httpHeaders.set("Authorization", authorization); + System.out.println(authorization); + return httpHeaders; + } + + + /** + * 解密 + * @param result 返回数据(AES加密后的) + * @return 解密数据 + */ + protected String decrypt(String result) throws Exception { + // 将接口返回的加密数据使用BASE64算法解码 + byte[] datas = new BASE64Decoder().decodeBuffer(result); + + // 使用AES/ECB/PKCS5Padding解密算法 + Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); + + // 使用服务端发放的128位解密密钥secretKey + Key key = new SecretKeySpec(secretKey.getBytes(), "AES"); + cipher.init(Cipher.DECRYPT_MODE, key); + + //解密 + byte[] bytes = cipher.doFinal(datas); + + // 将解密的字节数组转出字符串使用 + return new String(bytes, StandardCharsets.UTF_8); + } +} diff --git a/maintain-ui/package.json b/maintain-ui/package.json index 090e743..075abba 100644 --- a/maintain-ui/package.json +++ b/maintain-ui/package.json @@ -2,7 +2,7 @@ "name": "ruoyi-vue-plus", "version": "4.8.2", "description": "维修管理系统", - "author": "LionLi", + "author": "LiuShuai", "license": "MIT", "scripts": { "dev": "vue-cli-service serve", diff --git a/maintain-ui/src/api/system/dept.js b/maintain-ui/src/api/system/dept.js index 331c4b2..ac47c3a 100644 --- a/maintain-ui/src/api/system/dept.js +++ b/maintain-ui/src/api/system/dept.js @@ -50,3 +50,11 @@ export function delDept(deptId) { method: 'delete' }) } + +// 删除部门 +export function deptSync() { + return request({ + url: '/system/dept/deptSync', + method: 'post' + }) +} diff --git a/maintain-ui/src/api/system/user.js b/maintain-ui/src/api/system/user.js index f2f76ef..bfd1428 100644 --- a/maintain-ui/src/api/system/user.js +++ b/maintain-ui/src/api/system/user.js @@ -133,3 +133,11 @@ export function deptTreeSelect() { method: 'get' }) } + +// 同步用户数据 +export function userSync() { + return request({ + url: '/system/user/userSync', + method: 'post' + }) +} diff --git a/maintain-ui/src/router/index.js b/maintain-ui/src/router/index.js index d02d569..399d61c 100644 --- a/maintain-ui/src/router/index.js +++ b/maintain-ui/src/router/index.js @@ -68,7 +68,7 @@ export const constantRoutes = [ children: [ { path: 'index', - component: () => import('@/views/index'), + component: () => import('@/views/business/repairForm/index'), name: 'Index', meta: { title: '首页', icon: 'dashboard', affix: true } } diff --git a/maintain-ui/src/utils/request.js b/maintain-ui/src/utils/request.js index 49ced25..083a046 100644 --- a/maintain-ui/src/utils/request.js +++ b/maintain-ui/src/utils/request.js @@ -19,7 +19,7 @@ const service = axios.create({ // axios中请求配置有baseURL选项,表示请求URL公共部分 baseURL: process.env.VUE_APP_BASE_API, // 超时 - timeout: 10000 + timeout: 50000 }) // request拦截器 diff --git a/maintain-ui/src/views/system/dept/index.vue b/maintain-ui/src/views/system/dept/index.vue index 3c55574..f148537 100644 --- a/maintain-ui/src/views/system/dept/index.vue +++ b/maintain-ui/src/views/system/dept/index.vue @@ -45,6 +45,17 @@ @click="toggleExpandAll" >展开/折叠 + + 同步数据 + @@ -158,7 +169,7 @@