From 4aeff5cc9e2c8225d3a7a4f89844ec97b7ca1964 Mon Sep 17 00:00:00 2001 From: Administrator <1923636941@qq.com> Date: Sat, 10 Jun 2023 15:06:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B2=99=E6=B9=96=E7=9A=84=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=8E=A8=E9=80=81bim=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/controller/ProjectController.java | 12 +++- .../xmgl/modules/project/entity/Project.java | 6 ++ .../project/service/IProjectService.java | 2 + .../service/impl/ProgressTaskServiceImpl.java | 4 +- .../service/impl/ProjectServiceImpl.java | 59 ++++++++++++++++--- .../com/zhgd/xmgl/task/ProgressAlarmTask.java | 2 +- .../com/zhgd/xmgl/util/ProfileJudgeUtil.java | 9 +++ 7 files changed, 82 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java index ceeaf475f..1fce8eea7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java @@ -1,11 +1,13 @@ package com.zhgd.xmgl.modules.project.controller; +import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.jeecg.common.util.MD5Util; import com.zhgd.redis.lock.RedisRepository; import com.zhgd.xmgl.async.AsyncProject; import com.zhgd.xmgl.entity.vo.ZwProjectDataVo; @@ -407,11 +409,19 @@ public class ProjectController { } @ApiOperation(value = "调外部接口,获取FMS监控⼤屏接⼊url", notes = "调外部接口,获取FMS监控⼤屏接⼊url", httpMethod = "GET") - @ApiImplicitParam(name = "account", value = "账号", paramType = "query", required = true, dataType = "String") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") @GetMapping(value = "/getFmsMonitoringLargeScreenAccessUrl") public Result> getFmsMonitoringLargeScreenAccessUrl(@RequestParam Map map) { HashMap rsMap = projectService.getFmsMonitoringLargeScreenAccessUrl(map); return Result.success(rsMap); } + @ApiOperation(value = "调外部接口,获取桩桩接⼊url", notes = "调外部接口,获取桩桩接⼊url", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/getZhuangZhuangAccessUrl") + public Result> getZhuangZhuangAccessUrl(@RequestParam Map map) { + HashMap rsMap = projectService.getZhuangZhuangAccessUrl(map); + return Result.success(rsMap); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java index f06f251a7..50baab943 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java @@ -257,4 +257,10 @@ public class Project implements Serializable { @ApiModelProperty(value = "fms监控大屏key") private String fmsMonitoringScreenKey; + @ApiModelProperty(value = "品茗用户名") + private String pinMingUsername; + + @ApiModelProperty(value = "品茗密码") + private String pinMingPassword; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java index 44eee0705..08a6a1f54 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java @@ -70,4 +70,6 @@ public interface IProjectService extends IService { List groupByProjectProgress(); HashMap getFmsMonitoringLargeScreenAccessUrl(Map map); + + HashMap getZhuangZhuangAccessUrl(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java index 37d2756b9..a41398d2e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java @@ -430,7 +430,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl implements IProjectService { + private static Pattern ticketCompile = Pattern.compile("(?<='ticket':')\\S+(?=')"); @Autowired private BimfaceConfigMapper bimfaceConfigMapper; @Autowired @@ -614,19 +619,19 @@ public class ProjectServiceImpl extends ServiceImpl impl 签名注意事项: 请求参数需要分别进行url编码(UTF-8) */ - String account = MapUtils.getString(map, "account"); - if (StringUtils.isBlank(account)) { - throw new OpenAlertException("account不能为空"); + String projectSn = MapUtils.getString(map, "projectSn"); + if (StringUtils.isBlank(projectSn)) { + throw new OpenAlertException("projectSn不能为空"); } if (StringUtils.isBlank(fmsMonitoringScreenRequestHost)) { throw new OpenAlertException("fmsMonitoringScreenHost未配置"); } - Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getFmsMonitoringScreenUsername, account)); - if (project == null) { - throw new OpenAlertException("查询不到此用户,请检查配置"); - } - + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, projectSn)); String key = project.getFmsMonitoringScreenKey(); + String fmsMonitoringScreenUsername = project.getFmsMonitoringScreenUsername(); + if (StringUtils.isBlank(key) || StringUtils.isBlank(fmsMonitoringScreenUsername)) { + throw new OpenAlertException("请检查配置"); + } Date now = new Date(); String gmtTime = com.zhgd.xmgl.util.DateUtil.getGMTTime(now); @@ -639,7 +644,7 @@ public class ProjectServiceImpl extends ServiceImpl impl //获取access_token //hmac username="{用户名}", algorithm="hmac-sha256", headers="date request-line", signature="{签名}" - String authorization = "hmac username=\"" + project.getFmsMonitoringScreenUsername() + "\", algorithm=\"" + algorithm + "\", headers=\"date request-line\", signature=\"" + signature + "\""; + String authorization = "hmac username=\"" + fmsMonitoringScreenUsername + "\", algorithm=\"" + algorithm + "\", headers=\"date request-line\", signature=\"" + signature + "\""; String accessUrl = fmsMonitoringScreenRequestHost + "/api-gateway/v2/system/getAccessToken"; log.info("accessUrl:{},authorization:{},date:{}", accessUrl, authorization, gmtTime); String rs = HttpRequest.get(accessUrl) @@ -660,4 +665,40 @@ public class ProjectServiceImpl extends ServiceImpl impl rsMap.put("url", url); return rsMap; } + + @Override + public HashMap getZhuangZhuangAccessUrl(Map map) { + String projectSn = MapUtils.getString(map, "projectSn"); + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, projectSn)); + if (project == null) { + return null; + } + String pinMingPassword = project.getPinMingPassword(); + String pinMingUsername = project.getPinMingUsername(); + if (StringUtils.isBlank(pinMingPassword) || StringUtils.isBlank(pinMingUsername)) { + throw new OpenAlertException("请检查配置"); + } + String rqUrl = "http://sso.pinming.cn/sso/login/jsonp.do?userName=" + pinMingUsername + "&password=" + SecureUtil.md5(pinMingPassword); + log.info("getZhuangZhuangAccessUrl的url:{}", rqUrl); + String rs = HttpUtil.get(rqUrl); + log.info("rs:{}", rs); + + //'ticket':'ca86c5f4-59d4-45f4-8a39-5e72b490c2a2-t' + //正则获取ticket + String ticket = null; + Matcher matcher = ticketCompile.matcher(rs); + try { + if (matcher.find()) { + ticket = matcher.group(); + } else { + throw new OpenAlertException(MessageUtil.get("thirdErr")); + } + } catch (Exception e) { + throw new OpenAlertException(MessageUtil.get("thirdErr")); + } + String rtUrl = "https://zhuang.pinming.cn/console/panel/?ticket=" + ticket; + HashMap rsMap = new HashMap<>(); + rsMap.put("url", rtUrl); + return rsMap; + } } diff --git a/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java b/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java index faf1b39ca..2e9d33511 100644 --- a/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java +++ b/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java @@ -124,7 +124,7 @@ public class ProgressAlarmTask { } /** - * 中建四局定时推送进度状态给bim + * 中建四局和中建四局沙湖定时推送进度状态给bim */ @SchedulerLock(name = "autoTaskUpdateForBim", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5) @Scheduled(cron = "0 0 1 * * ?") diff --git a/src/main/java/com/zhgd/xmgl/util/ProfileJudgeUtil.java b/src/main/java/com/zhgd/xmgl/util/ProfileJudgeUtil.java index f473b489d..e078d24ce 100644 --- a/src/main/java/com/zhgd/xmgl/util/ProfileJudgeUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/ProfileJudgeUtil.java @@ -69,6 +69,15 @@ public class ProfileJudgeUtil { return Stream.of("zjsj-gsx", "zjsj").anyMatch(s -> s.equals(activeProfile)); } + /** + * 是否中建四局沙湖环境 + * + * @return + */ + public boolean isShahu() { + return Stream.of("shahu-gsx", "shahu").anyMatch(s -> s.equals(activeProfile)); + } + /** * 是否云联万物生产环境 *