From 8fa50a4b084a4ab2d951c64209f9682a34ae4815 Mon Sep 17 00:00:00 2001 From: Administrator <1923636941@qq.com> Date: Sat, 10 Jun 2023 11:02:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E9=99=8D=E6=9C=BA=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SystemUserController.java | 8 -- .../modules/basicdata/entity/SystemUser.java | 3 - .../basicdata/service/ISystemUserService.java | 2 - .../service/impl/SystemUserServiceImpl.java | 67 ------------- .../controller/LifterAlarmController.java | 13 +++ .../controller/LifterViolationController.java | 10 +- .../controller/LifterWorkCycleController.java | 37 ++++--- .../bigdevice/controller/TowerController.java | 3 +- .../entity/BigDeviceDriverRecord.java | 9 +- .../AlarmsDistinguishedNumberByAlarmType.java | 18 +++- .../entity/vo/StatisticsElevatorNumVo.java | 19 ++++ .../bigdevice/mapper/LifterAlarmMapper.java | 3 + .../mapper/LifterViolationMapper.java | 8 +- .../mapper/xml/LifterAlarmMapper.xml | 8 ++ .../bigdevice/mapper/xml/LifterMapper.xml | 41 +++++--- .../mapper/xml/LifterViolationMapper.xml | 19 +++- .../mapper/xml/LifterWorkCycleMapper.xml | 3 +- .../service/ILifterAlarmService.java | 5 +- .../service/ILifterWorkCycleService.java | 5 +- .../bigdevice/service/ITowerService.java | 3 +- .../service/LifterViolationService.java | 7 +- .../service/impl/LifterAlarmServiceImpl.java | 97 +++++++++++++++++++ .../impl/LifterCurrentDataServiceImpl.java | 11 --- .../service/impl/LifterServiceImpl.java | 5 + .../impl/LifterViolationServiceImpl.java | 30 +++++- .../impl/LifterWorkCycleServiceImpl.java | 35 +++++++ .../service/impl/TowerServiceImpl.java | 16 +-- .../project/controller/ProjectController.java | 9 ++ .../xmgl/modules/project/entity/Project.java | 6 ++ .../project/service/IProjectService.java | 3 + .../service/impl/ProjectServiceImpl.java | 73 ++++++++++++++ .../application-shahu-gsx.properties | 80 +++++++++++++++ 32 files changed, 511 insertions(+), 145 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/StatisticsElevatorNumVo.java create mode 100644 src/main/resources/application-shahu-gsx.properties diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java index bfb8b00de..e25b87452 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java @@ -226,12 +226,4 @@ public class SystemUserController { return systemUserService.deleteZjwjUser(systemUser); } - @ApiOperation(value = "调外部接口,获取FMS监控⼤屏接⼊url", notes = "调外部接口,获取FMS监控⼤屏接⼊url", httpMethod = "GET") - @ApiImplicitParam(name = "account", value = "账号", paramType = "query", required = true, dataType = "String") - @GetMapping(value = "/getFmsMonitoringLargeScreenAccessUrl") - public Result> getFmsMonitoringLargeScreenAccessUrl(@RequestParam Map map) { - HashMap rsMap = systemUserService.getFmsMonitoringLargeScreenAccessUrl(map); - return Result.success(rsMap); - } - } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemUser.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemUser.java index b7bfa46c2..7d6346395 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemUser.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/SystemUser.java @@ -118,9 +118,6 @@ public class SystemUser implements Serializable { */ private String sjUnifiedAuthenticationOrgIds; - @ApiModelProperty(value = "fms监控大屏key") - private String fmsMonitoringScreenKey; - @TableField(exist = false) @ApiModelProperty(value = "角色ID") private java.lang.Long roleId; diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java index 1cb2bc678..9f0f29d1c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java @@ -64,6 +64,4 @@ public interface ISystemUserService extends IService { Result> getZjwjUserList(SystemUser systemUser); - HashMap getFmsMonitoringLargeScreenAccessUrl(Map map); - } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java index 94ff2e1bd..23d5adb90 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java @@ -93,16 +93,6 @@ public class SystemUserServiceImpl extends ServiceImpl getToken(Map map) { @@ -949,61 +939,4 @@ public class SystemUserServiceImpl extends ServiceImpl getFmsMonitoringLargeScreenAccessUrl(Map map) { - //生成签名 - /* - 1.拼接签名字符串,由date与请求行拼接而成,以换行间隔,示例date: Thu, 22 Jun 2017 17:15:21 GMT\nGET /requests HTTP/1.1 - 2.对拼接的签名字符串,进行HMAC-SHA256签名,签名需要用到的key由FMS提供 - 3.对HMAC-SHA256的结果进行base64编码,得到signature值 - 签名注意事项: - 请求参数需要分别进行url编码(UTF-8) - */ - String account = MapUtils.getString(map, "account"); - if (StringUtils.isBlank(account)) { - throw new OpenAlertException("account不能为空"); - } - if (StringUtils.isBlank(fmsMonitoringScreenRequestHost)) { - throw new OpenAlertException("fmsMonitoringScreenHost未配置"); - } - SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper().eq(SystemUser::getAccount, account)); - if (systemUser == null) { - throw new OpenAlertException("查询不到此用户"); - } - - String key = systemUser.getFmsMonitoringScreenKey(); - - Date now = new Date(); - String gmtTime = com.zhgd.xmgl.util.DateUtil.getGMTTime(now); - String algorithm = "hmac-sha256"; - String request_url = "/api-gateway/v2/system/getAccessToken"; - String request_line = "GET " + request_url + " HTTP/1.1"; - String content = "date: " + gmtTime + "\n" + request_line; - HMac mac = new HMac(HmacAlgorithm.HmacSHA256, key.getBytes()); - String signature = com.zhgd.xmgl.util.Base64.encodeBase64(mac.digest(content)); - - //获取access_token - //hmac username="{用户名}", algorithm="hmac-sha256", headers="date request-line", signature="{签名}" - String authorization = "hmac username=\"" + account + "\", 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) - .header("authorization", authorization) - .header("date", gmtTime) - .execute().body(); - log.info("rs(获取access_token):{}", rs); - JSONObject tokenJsonObject = com.alibaba.fastjson.JSON.parseObject(rs); - if (!tokenJsonObject.getBoolean("success")) { - throw new OpenAlertException(MessageUtil.get("thirdErr")); - } - JSONObject dataJSONObject = tokenJsonObject.getJSONObject("data"); - String token = dataJSONObject.getString("token"); - - //返回url - String url = fmsMonitoringScreenPageUrl + token; - HashMap rsMap = new HashMap<>(); - rsMap.put("url", url); - return rsMap; - } - } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java index da22b00ac..06ef26457 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java @@ -10,6 +10,7 @@ import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.bigdevice.entity.Lifter; import com.zhgd.xmgl.modules.bigdevice.entity.LifterAlarm; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.AlarmsDistinguishedNumberByAlarmType; import com.zhgd.xmgl.modules.bigdevice.service.ILifterAlarmService; import com.zhgd.xmgl.modules.bigdevice.service.ILifterService; import com.zhgd.xmgl.modules.project.service.IProjectService; @@ -211,4 +212,16 @@ public class LifterAlarmController { } } + @ApiOperation(value = "查询报警数量(按报警类型区分)", notes = "查询报警数量(按报警类型区分)", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "query", required = false, dataType = "String"), + @ApiImplicitParam(name = "queryStartTime", value = "查询开始时间,格式:2023-05-22 18:00:00", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "queryEndTime", value = "查询结束时间,格式:2023-05-22 18:00:00", paramType = "query", required = true, dataType = "String"), + }) + @PostMapping(value = "/queryAlarmsDistinguishedNumberByAlarmType") + public Result queryAlarmsDistinguishedNumberByAlarmType(@RequestBody Map map) { + return Result.success(lifterAlarmService.queryAlarmsDistinguishedNumberByAlarmType(map)); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterViolationController.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterViolationController.java index 829ebec1f..5d48cfa5c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterViolationController.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterViolationController.java @@ -11,6 +11,7 @@ import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.modules.bigdevice.entity.Lifter; import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.StatisticsElevatorNumVo; import com.zhgd.xmgl.modules.bigdevice.service.ILifterService; import com.zhgd.xmgl.modules.bigdevice.service.LifterViolationService; import com.zhgd.xmgl.util.MessageUtil; @@ -169,5 +170,12 @@ public class LifterViolationController { } } - + @ApiOperation(value = "查询升降机违章次数统计", notes = "查询升降机违章次数统计", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), + }) + @GetMapping(value = "/queryStatisticsViolationNum") + public Result queryStatisticsViolationNum(@RequestParam Map map) { + return Result.success(lifterViolationService.queryStatisticsViolationNum(map)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterWorkCycleController.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterWorkCycleController.java index bbf164dd0..18f1352bb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterWorkCycleController.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterWorkCycleController.java @@ -5,6 +5,7 @@ import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.LifterWorkCycle; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.StatisticsElevatorNumVo; import com.zhgd.xmgl.modules.bigdevice.service.ILifterWorkCycleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -12,10 +13,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @@ -35,7 +33,7 @@ import java.util.Map; public class LifterWorkCycleController { @Autowired private ILifterWorkCycleService lifterWorkCycleService; - + @ApiOperation(value = " 分页列表查询升降机工作循环信息", notes = "分页列表查询升降机工作循环信息", httpMethod="POST") @ApiImplicitParams({ @ApiImplicitParam(name="devSn",value="设备编号",dataType = "String",paramType = "query",required =false), @@ -67,16 +65,25 @@ public class LifterWorkCycleController { /** * 添加 - * @param lifterWorkCycle - * @return - */ - @OperLog(operModul = "升降机管理",operType = "添加升降机工作循环",operDesc = "添加升降机工作循环") - @ApiOperation(value = " 添加升降机工作循环信息", notes = "添加升降机工作循环信息" , httpMethod="POST") - @PostMapping(value = "/add") - public Result add(@RequestBody LifterWorkCycle lifterWorkCycle) { + * @param lifterWorkCycle + * @return + */ + @OperLog(operModul = "升降机管理", operType = "添加升降机工作循环", operDesc = "添加升降机工作循环") + @ApiOperation(value = " 添加升降机工作循环信息", notes = "添加升降机工作循环信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody LifterWorkCycle lifterWorkCycle) { lifterWorkCycleService.addLifterWorkCycle(lifterWorkCycle); return Result.ok(); - } - + } -} + @ApiOperation(value = "查询升降机运行次数统计", notes = "查询升降机运行次数统计", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), + }) + @GetMapping(value = "/queryStatisticsElevatorOperationsNum") + public Result queryStatisticsElevatorOperationsNum(@RequestParam Map map) { + return Result.success(lifterWorkCycleService.queryStatisticsElevatorOperationsNum(map)); + } + + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java index cbbf48ea2..272d07402 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java @@ -6,6 +6,7 @@ import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.Tower; import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerAndDataInfoVO; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerCurrentCountVo; import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerNumAndAlarmCount; import com.zhgd.xmgl.modules.bigdevice.service.ITowerService; import io.swagger.annotations.Api; @@ -159,7 +160,7 @@ public class TowerController { @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), }) @PostMapping(value = "/selectTowerCurrentCount") - public Result>> selectTowerCurrentCount(@RequestBody Map map) { + public Result> selectTowerCurrentCount(@RequestBody Map map) { return Result.success(towerService.selectTowerCurrentCount(map)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/BigDeviceDriverRecord.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/BigDeviceDriverRecord.java index 3fbbf17fc..1841f80d9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/BigDeviceDriverRecord.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/BigDeviceDriverRecord.java @@ -76,7 +76,6 @@ public class BigDeviceDriverRecord implements Serializable { * 劳务人员Id */ @Excel(name = "劳务人员Id", width = 15) - @ApiModelProperty(value = "劳务人员Id") private java.lang.Long workerId; /** @@ -85,4 +84,12 @@ public class BigDeviceDriverRecord implements Serializable { @Excel(name = "项目sn", width = 15) @ApiModelProperty(value = "项目sn") private java.lang.String projectSn; + @ApiModelProperty(value = "性别,1男,2女") + private java.lang.Integer sex; + @ApiModelProperty(value = "年龄") + private java.lang.Integer age; + @ApiModelProperty(value = "工作年限") + private java.lang.Integer workYear; + @ApiModelProperty(value = "本次连续工作时长(分钟)") + private java.lang.Integer continuousWorkingTime; } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/AlarmsDistinguishedNumberByAlarmType.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/AlarmsDistinguishedNumberByAlarmType.java index 5da7ac2db..a61eee75a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/AlarmsDistinguishedNumberByAlarmType.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/AlarmsDistinguishedNumberByAlarmType.java @@ -13,7 +13,7 @@ public class AlarmsDistinguishedNumberByAlarmType { @Data public static class TypeNum { - @ApiModelProperty(value = "报警类型:momentAlarm>力矩报警 0: 正常 1:报警 2:预警\n" + + @ApiModelProperty(value = "1.塔吊>>>:报警类型:momentAlarm>力矩报警 0: 正常 1:报警 2:预警\n" + "windSpeedAlarm>风速报警 0: 正常 1:报警 2:预警\n" + "heightAlarm>高度上限位报警 0: 正常 1:报警 2:预警\n" + "heightLowerAlarm>高度下限位报警 0: 正常 1:报警 2:预警\n" + @@ -24,7 +24,21 @@ public class AlarmsDistinguishedNumberByAlarmType { "obliguityAlarm>倾角报警 0: 正常 1:报警 2:预警\n" + "environmentAlarm>环境防撞报警 0: 正常 1:报警 2:预警\n" + "multiAlarm>多机防撞报警 0: 正常 1:报警 2:预警\n" + - "standardHighAlarm>塔机间竖向高度报警 0: 正常 1:报警 2:预警") + "standardHighAlarm>塔机间竖向高度报警 0: 正常 1:报警 2:预警\n" + + "" + + "2.升降机>>>:people_cnt_alarm>人数报警 0:正常 1:报警\n" + + "weightAlarm>载重报警 0:正常 1:报警\n" + + "speedAlarm>速度报警 0:正常 1:报警\n" + + "heightAlarm>高度报警 0:正常 1:报警\n" + + "obliguityXAlarm>倾角X报警 0:正常 1:报警\n" + + "obliguityYAlarm>倾角Y报警 0:正常 1:报警\n" + + "windSpeedAlarm>风速报警 0:正常 1:报警\n" + + "motor1Alarm>1号电机报警 0:正常 1:报警\n" + + "motor2Alarm>2号电机报警 0:正常 1:报警\n" + + "motor3Alarm>3号电机报警 0:正常 1:报警\n" + + "topAlarm>防冲顶报警 0:正常 1:报警\n" + + "fallAlarm>防坠器报警 0:正常 1:报警\n" + + "bottomAlarm>下限位报警 0:正常 1:报警") private String type; @ApiModelProperty(value = "报警数量") private Integer num; diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/StatisticsElevatorNumVo.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/StatisticsElevatorNumVo.java new file mode 100644 index 000000000..935aead91 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/StatisticsElevatorNumVo.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.bigdevice.entity.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class StatisticsElevatorNumVo { + @ApiModelProperty(value = "今日运行次数") + private Integer todayRunNum; + @ApiModelProperty(value = "昨日运行次数(同一时段)") + private Integer yesterdayRunNum; + @ApiModelProperty(value = "过去30日运行次数") + private Integer last30DayRunNum; + @ApiModelProperty(value = "运行次数(相比昨日同一时段)") + private Integer todayRunNumCompareYesterday; + @ApiModelProperty(value = "运行次数(相比过去30日)") + private Integer todayRunNumCompareLast30Day; + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterAlarmMapper.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterAlarmMapper.java index 2efed4368..2f376952d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterAlarmMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterAlarmMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.LifterAlarm; +import com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -40,4 +41,6 @@ public interface LifterAlarmMapper extends BaseMapper { List> selectLifterDevAlarmGroupCount(Map map); IPage selectPageInfo(Page page, @Param("map") Map map); + + List queryAlarmsByTime(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterViolationMapper.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterViolationMapper.java index 40052d977..b6d6fea58 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterViolationMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterViolationMapper.java @@ -7,6 +7,8 @@ import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Map; + /** * @author 邱平毅 * @ClassName LifterViolationMapper @@ -16,7 +18,9 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface LifterViolationMapper extends BaseMapper { - IPage getListByPageInfo(@Param("pushPersonId") Long pushPersonId,@Param("devSn") String devSn, @Param("projectSn") String projectSn, @Param("violationDate") String violationDate, @Param("devName") String devName, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("status") Integer status, Page page); + IPage getListByPageInfo(@Param("pushPersonId") Long pushPersonId, @Param("devSn") String devSn, @Param("projectSn") String projectSn, @Param("violationDate") String violationDate, @Param("devName") String devName, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("status") Integer status, Page page); LifterViolation getInfoById(@Param("id") Long id); -} \ No newline at end of file + + Integer selectLifterViolationCount(Map map); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml index ce9acf339..7d16a55e5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml @@ -326,4 +326,12 @@ order by l.update_date desc,l.add_time DESC + + diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml index 34e9b4f2b..a532bb760 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml @@ -156,7 +156,8 @@ - + @@ -169,20 +170,30 @@ select l.id, l.dev_name, l.project_sn, - l.dev_sn, - l.regist_no, - l.factory_name, - l.max_load, - l.max_height, - l.total_floor, - bddr.id bId, - wi.worker_name, - wi.phone_number, - wi.special_certificate_number, - wi.field_acquisition_url + l.dev_sn, + l.regist_no, + l.factory_name, + l.max_load, + l.max_height, + l.total_floor, + bddr.id bId, + wi.worker_name, + wi.phone_number, + wi.special_certificate_number, + wi.field_acquisition_url, + wi.sex, + TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age, + TIMESTAMPDIFF(YEAR, wi.enter_date, CURDATE()) as workYear, + t1.continuous_working_time, + wi.id_card from lifter l - left join big_device_driver_record bddr on l.dev_sn = bddr.dev_sn and bddr.type = 2 - left join worker_info wi on wi.id = bddr.worker_id + left join big_device_driver_record bddr on l.dev_sn = bddr.dev_sn and bddr.type = 2 + left join worker_info wi on wi.id = bddr.worker_id + left join (select a.driver_id_card, + IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0) continuous_working_time + from lifter_work_cycle a + where a.id in (select max(id) from lifter_work_cycle twc group by twc.driver_id_card) + ) t1 on wi.id_card = t1.driver_id_card where l.dev_sn = #{devSn} - \ No newline at end of file + diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterViolationMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterViolationMapper.xml index 8f8bf11d7..a4c9c72a0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterViolationMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterViolationMapper.xml @@ -55,8 +55,21 @@ - \ No newline at end of file + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterWorkCycleMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterWorkCycleMapper.xml index 434e65060..262f6e0d9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterWorkCycleMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterWorkCycleMapper.xml @@ -26,6 +26,5 @@ AND a.end_time <=CONCAT(DATE_FORMAT(#{endTime},'%Y-%m-%d'),' 23:59:59') - - \ No newline at end of file + diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterAlarmService.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterAlarmService.java index cafe8bf64..651c23c1c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterAlarmService.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterAlarmService.java @@ -6,6 +6,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.LifterAlarm; import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.xmgl.modules.bigdevice.entity.LifterCurrentData; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.AlarmsDistinguishedNumberByAlarmType; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -30,9 +31,11 @@ public interface ILifterAlarmService extends IService { Map selectComapnyLifterAlarmCount(Map map); - List> selectLifterAlarmTrendList(Map map); + List> selectLifterAlarmTrendList(Map map); List selectProjectNewestLifterAlarmList(Map map); IPage selectPageInfo(Map map); + + AlarmsDistinguishedNumberByAlarmType queryAlarmsDistinguishedNumberByAlarmType(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterWorkCycleService.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterWorkCycleService.java index 9824135b5..1279b23a6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterWorkCycleService.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterWorkCycleService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.LifterWorkCycle; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.StatisticsElevatorNumVo; import java.util.List; import java.util.Map; @@ -11,7 +12,7 @@ import java.util.Map; /** * @Description: 升降机工作循环 * @author: pds - * @date: 2020-12-16 + * @date: 2020-12-16 * @version: V1.0 */ public interface ILifterWorkCycleService extends IService { @@ -21,4 +22,6 @@ public interface ILifterWorkCycleService extends IService { List selectLifterWorkCycleList(Map map); void addLifterWorkCycle(LifterWorkCycle lifterWorkCycle); + + StatisticsElevatorNumVo queryStatisticsElevatorOperationsNum(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java index ca8de51d6..698ffecbd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java @@ -6,6 +6,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.Tower; import com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm; import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerAndDataInfoVO; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerCurrentCountVo; import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerNumAndAlarmCount; import java.util.List; @@ -41,7 +42,7 @@ public interface ITowerService extends IService { TowerNumAndAlarmCount selectTowerNumAndAlarmCount(Map map); - List> selectTowerCurrentCount(Map map); + List selectTowerCurrentCount(Map map); List> selectTowerAlarmRankingList(Map map); diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/LifterViolationService.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/LifterViolationService.java index 2228b358f..b7ec9e9c2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/LifterViolationService.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/LifterViolationService.java @@ -3,6 +3,9 @@ package com.zhgd.xmgl.modules.bigdevice.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.StatisticsElevatorNumVo; + +import java.util.Map; /** * @author 邱平毅 @@ -11,7 +14,9 @@ import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation; * @Version 1.0 */ public interface LifterViolationService extends IService { - IPage getListByPageInfo(Long pushPersonId,String devSn, String projectSn, String violationDate, String devName, String startDate, String endDate, Integer status, Integer pageNo, Integer pageSize); + IPage getListByPageInfo(Long pushPersonId, String devSn, String projectSn, String violationDate, String devName, String startDate, String endDate, Integer status, Integer pageNo, Integer pageSize); LifterViolation getInfoById(Long id); + + StatisticsElevatorNumVo queryStatisticsViolationNum(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java index 5017d4b0b..e49f54d49 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java @@ -10,12 +10,14 @@ import com.zhgd.xmgl.modules.basicdata.service.ICompanyService; import com.zhgd.xmgl.modules.bigdevice.entity.Lifter; import com.zhgd.xmgl.modules.bigdevice.entity.LifterAlarm; import com.zhgd.xmgl.modules.bigdevice.entity.LifterCurrentData; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.AlarmsDistinguishedNumberByAlarmType; import com.zhgd.xmgl.modules.bigdevice.mapper.LifterAlarmMapper; import com.zhgd.xmgl.modules.bigdevice.mapper.LifterMapper; import com.zhgd.xmgl.modules.bigdevice.service.ILifterAlarmService; import com.zhgd.xmgl.modules.bigdevice.service.ILifterService; import com.zhgd.xmgl.util.DateUtil; import com.zhgd.xmgl.util.MessageUtil; +import com.zhgd.xmgl.util.ReflectionUtil; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -198,4 +200,99 @@ public class LifterAlarmServiceImpl extends ServiceImpl(pageNo, pageSize), map); } + + @Override + public AlarmsDistinguishedNumberByAlarmType queryAlarmsDistinguishedNumberByAlarmType(Map map) { + String queryEndTime = map.getOrDefault("queryEndTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")).toString(); + String queryStartTime = map.getOrDefault("queryStartTime", DateUtil.offsetDay(new Date(), -7)).toString(); + map.putIfAbsent("queryEndTime", queryEndTime); + map.putIfAbsent("queryStartTime", queryStartTime); + List lifterAlarms = lifterAlarmMapper.queryAlarmsByTime(map); + Map countTowerAlarmByTypeMap = countLifterAlarmByType(lifterAlarms); + List typeNums = new ArrayList<>(); + for (Map.Entry entry : countTowerAlarmByTypeMap.entrySet()) { + AlarmsDistinguishedNumberByAlarmType.TypeNum typeNum = new AlarmsDistinguishedNumberByAlarmType.TypeNum(); + typeNum.setType(entry.getKey()); + typeNum.setNum(entry.getValue()); + } + Integer count = countTowerAlarmByTypeMap.size(); + AlarmsDistinguishedNumberByAlarmType rt = new AlarmsDistinguishedNumberByAlarmType(); + rt.setAlarmNum(count); + rt.setTypeNumList(typeNums); + return rt; + } + + /** + * 按报警类型统计数量 + * + * @param lifterAlarms + */ + private Map countLifterAlarmByType(List lifterAlarms) { + Map typeNumMap = new HashMap<>(); + for (LifterAlarm lifterAlarm : lifterAlarms) { + if (Objects.equals(lifterAlarm.getPeopleCntAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getPeopleCntAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getWeightAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getWeightAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getSpeedAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getSpeedAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getHeightAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getHeightAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getObliguityXAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getObliguityXAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getObliguityYAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getObliguityYAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getWindSpeedAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getWindSpeedAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getMotor1Alarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getMotor1Alarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getMotor2Alarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getMotor2Alarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getMotor3Alarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getMotor3Alarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getTopAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getTopAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getFallAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getFallAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + if (Objects.equals(lifterAlarm.getBottomAlarm(), 1)) { + String fieldName = ReflectionUtil.getFieldName(LifterAlarm::getBottomAlarm); + addLifterAlarmCountByType(typeNumMap, fieldName); + } + } + return typeNumMap; + } + + private void addLifterAlarmCountByType(Map typeNumMap, String fieldName) { + Integer integer = typeNumMap.get(fieldName); + if (integer != null) { + integer += 1; + } else { + integer = 1; + } + typeNumMap.put(fieldName, integer); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterCurrentDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterCurrentDataServiceImpl.java index 856ed031a..76842241d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterCurrentDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterCurrentDataServiceImpl.java @@ -132,17 +132,6 @@ public class LifterCurrentDataServiceImpl extends ServiceImpl queryWrapper=new QueryWrapper<>(); - queryWrapper.lambda().eq(LifterAlarm::getProjectSn, MapUtils.getString(data,"projectSn")) - .eq(LifterAlarm::getLifterCurrentdataId,MapUtils.getString(data,"id")); - int count=lifterAlarmMapper.selectCount(queryWrapper); - if(count>0){ - data.put("is_alarm",1); - }else{ - data.put("is_alarm",0); - } - }*/ return data; } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java index 00b5ac3da..34c286ade 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java @@ -324,6 +324,11 @@ public class LifterServiceImpl extends ServiceImpl impleme log.info("getRelatedInfo升降机实时数据信息:{}", newData); List driverList = lifter.getDriverList().stream().map(driver -> { DriverVO driverVO = new DriverVO(); + driverVO.setSex(driver.getSex()); + driverVO.setAge(driver.getAge()); + driverVO.setWorkYear(driver.getWorkYear()); + driverVO.setContinuousWorkingTime(driver.getContinuousWorkingTime()); + driverVO.setIdCard(driver.getDriverIdCard()); driverVO.setWorkerName(driver.getDriverName()); driverVO.setPhoneNumber(driver.getDriverPhone()); driverVO.setSpecialCertificateNumber(driver.getCertificateNumber()); diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterViolationServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterViolationServiceImpl.java index afd62d28d..56c393dab 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterViolationServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterViolationServiceImpl.java @@ -2,16 +2,21 @@ package com.zhgd.xmgl.modules.bigdevice.service.impl; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation; +import com.zhgd.xmgl.modules.bigdevice.entity.LifterWorkCycle; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.StatisticsElevatorNumVo; import com.zhgd.xmgl.modules.bigdevice.mapper.LifterViolationMapper; import com.zhgd.xmgl.modules.bigdevice.service.LifterViolationService; +import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.Map; /** * @author 邱平毅 @@ -25,7 +30,7 @@ public class LifterViolationServiceImpl extends ServiceImpl getListByPageInfo(Long pushPersonId,String devSn, String projectSn, String violationDate, String devName, String startDate, String endDate, Integer status, Integer pageNo, Integer pageSize) { + public IPage getListByPageInfo(Long pushPersonId, String devSn, String projectSn, String violationDate, String devName, String startDate, String endDate, Integer status, Integer pageNo, Integer pageSize) { if (StringUtils.isBlank(violationDate)) { if (StringUtils.isBlank(startDate)) { startDate = "0001-01-01 01:01:01"; @@ -34,11 +39,32 @@ public class LifterViolationServiceImpl extends ServiceImpl(pageNo, pageSize)); + return lifterViolationMapper.getListByPageInfo(pushPersonId, devSn, projectSn, violationDate, devName, startDate, endDate, status, new Page<>(pageNo, pageSize)); } @Override public LifterViolation getInfoById(Long id) { return lifterViolationMapper.getInfoById(id); } + + @Override + public StatisticsElevatorNumVo queryStatisticsViolationNum(Map map) { + Date date = new Date(); + map.put("queryStartTime", DateUtil.today()); + map.put("queryEndTime", null); + Integer todayRunNum = lifterViolationMapper.selectLifterViolationCount(map); + map.put("queryStartTime", DateUtil.formatDate(DateUtil.offsetDay(date, -1))); + map.put("queryEndTime", DateUtil.formatDateTime(DateUtil.offsetDay(date, -1))); + Integer yesterdayRunNum = lifterViolationMapper.selectLifterViolationCount(map); + map.put("queryStartTime", DateUtil.formatDateTime(DateUtil.offsetDay(date, -30))); + map.put("queryEndTime", null); + Integer last30DayRunNum = lifterViolationMapper.selectLifterViolationCount(map); + StatisticsElevatorNumVo vo = new StatisticsElevatorNumVo(); + vo.setTodayRunNum(todayRunNum); + vo.setYesterdayRunNum(yesterdayRunNum); + vo.setLast30DayRunNum(last30DayRunNum); + vo.setTodayRunNumCompareYesterday(todayRunNum - yesterdayRunNum); + vo.setTodayRunNumCompareLast30Day(todayRunNum - last30DayRunNum); + return vo; + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java index 48e1a2555..39c97ee98 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java @@ -2,16 +2,21 @@ package com.zhgd.xmgl.modules.bigdevice.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.Lifter; import com.zhgd.xmgl.modules.bigdevice.entity.LifterWorkCycle; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.StatisticsElevatorNumVo; import com.zhgd.xmgl.modules.bigdevice.mapper.LifterMapper; import com.zhgd.xmgl.modules.bigdevice.mapper.LifterWorkCycleMapper; import com.zhgd.xmgl.modules.bigdevice.service.ILifterWorkCycleService; +import com.zhgd.xmgl.util.DateUtil; import com.zhgd.xmgl.util.MessageUtil; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -61,4 +66,34 @@ public class LifterWorkCycleServiceImpl extends ServiceImpl map) { + Date date = new Date(); + Integer todayRunNum = lifterWorkCycleMapper.selectCount(Wrappers.lambdaQuery(LifterWorkCycle.class) + .eq(LifterWorkCycle::getProjectSn, MapUtils.getString(map, "projectSn")) + .ge(LifterWorkCycle::getAddTime, DateUtil.today()) + ); + Integer yesterdayRunNum = lifterWorkCycleMapper.selectCount(Wrappers.lambdaQuery(LifterWorkCycle.class) + .eq(LifterWorkCycle::getProjectSn, MapUtils.getString(map, "projectSn")) + .ge(LifterWorkCycle::getAddTime, DateUtil.formatDate(DateUtil.offsetDay(date, -1))) + .le(LifterWorkCycle::getAddTime, DateUtil.offsetDay(date, -1)) + ); + Integer last30DayRunNum = lifterWorkCycleMapper.selectCount(Wrappers.lambdaQuery(LifterWorkCycle.class) + .eq(LifterWorkCycle::getProjectSn, MapUtils.getString(map, "projectSn")) + .ge(LifterWorkCycle::getAddTime, DateUtil.offsetDay(date, -30)) + ); + + StatisticsElevatorNumVo vo = new StatisticsElevatorNumVo(); + vo.setTodayRunNum(todayRunNum); + vo.setYesterdayRunNum(yesterdayRunNum); + vo.setLast30DayRunNum(last30DayRunNum); + vo.setTodayRunNumCompareYesterday(todayRunNum - yesterdayRunNum); + vo.setTodayRunNumCompareLast30Day(todayRunNum - last30DayRunNum); + return vo; + } + + public static void main(String[] args) { + System.out.println(DateUtil.offsetDay(new Date(), -1)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java index 7b705f860..ce210a99a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java @@ -16,10 +16,7 @@ import com.zhgd.xmgl.modules.basicdata.service.ICompanyService; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.bigdevice.entity.*; import com.zhgd.xmgl.modules.bigdevice.entity.dto.TowerDataInfoDTO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.DevWorkerVO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.DriverVO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerAndDataInfoVO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerNumAndAlarmCount; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.*; import com.zhgd.xmgl.modules.bigdevice.mapper.*; import com.zhgd.xmgl.modules.bigdevice.service.ITowerService; import com.zhgd.xmgl.modules.bigdevice.service.ITowerVisualizeService; @@ -312,8 +309,10 @@ public class TowerServiceImpl extends ServiceImpl implements } @Override - public List> selectTowerCurrentCount(Map map) { - return towerMapper.selectTowerCurrentCount(map); + public List selectTowerCurrentCount(Map map) { + List> maps = towerMapper.selectTowerCurrentCount(map); + List countVoList = maps.stream().map(e -> BeanUtil.toBeanIgnoreCase(e, TowerCurrentCountVo.class, true)).collect(Collectors.toList()); + return countVoList; } @Override @@ -481,6 +480,11 @@ public class TowerServiceImpl extends ServiceImpl implements driverVO.setPhoneNumber(driver.getDriverPhone()); driverVO.setSpecialCertificateNumber(driver.getCertificateNumber()); driverVO.setImageUrl(driver.getImageUrl()); + driverVO.setSex(driver.getSex()); + driverVO.setAge(driver.getAge()); + driverVO.setWorkYear(driver.getWorkYear()); + driverVO.setContinuousWorkingTime(driver.getContinuousWorkingTime()); + driverVO.setIdCard(driver.getDriverIdCard()); return driverVO; }).collect(Collectors.toList()); DevWorkerVO devWorker = new DevWorkerVO(tower.getDevName(), tower.getDevSn(), tower.getRegistNo(), tower.getFactoryName(), null, driverList); 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 fa27737e7..ceeaf475f 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 @@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -405,4 +406,12 @@ public class ProjectController { return Result.success(Arrays.asList(SanjiangProgressProjectEnum.values())); } + @ApiOperation(value = "调外部接口,获取FMS监控⼤屏接⼊url", notes = "调外部接口,获取FMS监控⼤屏接⼊url", httpMethod = "GET") + @ApiImplicitParam(name = "account", value = "账号", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/getFmsMonitoringLargeScreenAccessUrl") + public Result> getFmsMonitoringLargeScreenAccessUrl(@RequestParam Map map) { + HashMap rsMap = projectService.getFmsMonitoringLargeScreenAccessUrl(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 44dc38d6d..f06f251a7 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 @@ -251,4 +251,10 @@ public class Project implements Serializable { @ApiModelProperty(value = "三江重点工程类型多选") private String keyProjectType; + @ApiModelProperty(value = "fms监控大屏username") + private String fmsMonitoringScreenUsername; + + @ApiModelProperty(value = "fms监控大屏key") + private String fmsMonitoringScreenKey; + } 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 12ed9425a..44eee0705 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 @@ -10,6 +10,7 @@ import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectProgressVo; import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectTypeVo; import com.zhgd.xmgl.modules.project.entity.vo.ProjectDurationVO; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -67,4 +68,6 @@ public interface IProjectService extends IService { List groupByProjectType(Map map); List groupByProjectProgress(); + + HashMap getFmsMonitoringLargeScreenAccessUrl(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java index ef88381e0..4dc42115f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java @@ -1,6 +1,11 @@ package com.zhgd.xmgl.modules.project.service.impl; import cn.hutool.core.util.NumberUtil; +import cn.hutool.crypto.digest.HMac; +import cn.hutool.crypto.digest.HmacAlgorithm; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +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.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -55,6 +60,7 @@ import com.zhgd.xmgl.modules.worker.service.*; import com.zhgd.xmgl.util.AddressUtil; import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.ProfileJudgeUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -77,6 +83,7 @@ import java.util.stream.Collectors; */ @Service @Transactional(rollbackFor = Exception.class) +@Slf4j public class ProjectServiceImpl extends ServiceImpl implements IProjectService { @Autowired private BimfaceConfigMapper bimfaceConfigMapper; @@ -146,6 +153,16 @@ public class ProjectServiceImpl extends ServiceImpl impl @Resource private RedisRepository redisRepository; + /** + * 接⼝地址host + */ + @Value("${fmsMonitoringScreenRequestHost:}") + private String fmsMonitoringScreenRequestHost; + /** + * 施⼯监控⼤屏⻚⾯地址 + */ + @Value("${fmsMonitoringScreenPageUrl:}") + private String fmsMonitoringScreenPageUrl; @Override public IPage selectProjectPage(Map map) { @@ -587,4 +604,60 @@ public class ProjectServiceImpl extends ServiceImpl impl return projectProgressVos; } + @Override + public HashMap getFmsMonitoringLargeScreenAccessUrl(Map map) { + //生成签名 + /* + 1.拼接签名字符串,由date与请求行拼接而成,以换行间隔,示例date: Thu, 22 Jun 2017 17:15:21 GMT\nGET /requests HTTP/1.1 + 2.对拼接的签名字符串,进行HMAC-SHA256签名,签名需要用到的key由FMS提供 + 3.对HMAC-SHA256的结果进行base64编码,得到signature值 + 签名注意事项: + 请求参数需要分别进行url编码(UTF-8) + */ + String account = MapUtils.getString(map, "account"); + if (StringUtils.isBlank(account)) { + throw new OpenAlertException("account不能为空"); + } + if (StringUtils.isBlank(fmsMonitoringScreenRequestHost)) { + throw new OpenAlertException("fmsMonitoringScreenHost未配置"); + } + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getFmsMonitoringScreenUsername, account)); + if (project == null) { + throw new OpenAlertException("查询不到此用户,请检查配置"); + } + + String key = project.getFmsMonitoringScreenKey(); + + Date now = new Date(); + String gmtTime = com.zhgd.xmgl.util.DateUtil.getGMTTime(now); + String algorithm = "hmac-sha256"; + String request_url = "/api-gateway/v2/system/getAccessToken"; + String request_line = "GET " + request_url + " HTTP/1.1"; + String content = "date: " + gmtTime + "\n" + request_line; + HMac mac = new HMac(HmacAlgorithm.HmacSHA256, key.getBytes()); + String signature = com.zhgd.xmgl.util.Base64.encodeBase64(mac.digest(content)); + + //获取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 accessUrl = fmsMonitoringScreenRequestHost + "/api-gateway/v2/system/getAccessToken"; + log.info("accessUrl:{},authorization:{},date:{}", accessUrl, authorization, gmtTime); + String rs = HttpRequest.get(accessUrl) + .header("authorization", authorization) + .header("date", gmtTime) + .execute().body(); + log.info("rs(获取access_token):{}", rs); + JSONObject tokenJsonObject = com.alibaba.fastjson.JSON.parseObject(rs); + if (!tokenJsonObject.getBoolean("success")) { + throw new OpenAlertException(MessageUtil.get("thirdErr")); + } + JSONObject dataJSONObject = tokenJsonObject.getJSONObject("data"); + String token = dataJSONObject.getString("token"); + + //返回url + String url = fmsMonitoringScreenPageUrl + token; + HashMap rsMap = new HashMap<>(); + rsMap.put("url", url); + return rsMap; + } } diff --git a/src/main/resources/application-shahu-gsx.properties b/src/main/resources/application-shahu-gsx.properties new file mode 100644 index 000000000..7fa350d04 --- /dev/null +++ b/src/main/resources/application-shahu-gsx.properties @@ -0,0 +1,80 @@ +#http.port=30250 +http.port=38323 +#spring.datasource.url=jdbc:mysql://124.71.178.44:3306/wisdomsite_lgdc?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true +#spring.datasource.url=jdbc:mysql://183.60.227.61:20246/wisdomsite?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&serverTimezone=UTC +#spring.datasource.url=jdbc:mysql://36.137.53.203:3306/wisdomsite?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true +#spring.datasource.url=jdbc:mysql://139.9.66.234:3386/wisdomsite_ty?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true +#spring.datasource.url=jdbc:mysql://182.90.224.237:3306/wisdomsite?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useSSL=false +#spring.datasource.url=jdbc:mysql://139.9.66.234:3306/wisdomsite?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true +spring.datasource.url=jdbc:mysql://localhost:3306/wisdomsite_shahu?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useSSL=false +spring.datasource.username=ENC(XR4C/hvTYCUqudS49Wh/jA==) +spring.datasource.password=ENC(LsKaVL2ycDu+uUNoPndYLA==) +server.port=30015 +#server.port=30246 +basePath=C:/jxj/prod/backEnd/itbgpImage/ +server.tomcat.basedir=C:/jxj/prod/backEnd/tempImage/ +#arcsoft.dllPath=D:/hz/wisdomSite/src/main/resources/dll +#basePath=F:/zhgd/itbgpImage/ +#server.tomcat.basedir=F:/zhgd/tempImage/ +#arcsoft.dllPath=F:/zhgd/dll +arcsoft.dllPath=C:/jxj/prod/backEnd/dll +security.enable=false +isGetStandardData=false +isGetEnvironmentData=false +isGetFaceFeatureDate=false +#\u6D77\u5EB7\u89C6\u9891\u62A5\u8B66\u56FE\u7247IP\u7AEF\u53E3\u66FF\u6362 +video.alarm.newUrl=223.82.100.80:6040 +wx-appid= +wx-AppSecret= +mqtt-scope=zjsjTopic +serverUrl=http://124.71.67.160:8088/ +#serverUrl=http://182.90.224.237:7000 +#serverUrl=http://127.0.0.1:6023 +#\u89C6\u9891\u5206\u6790url +video-analysis-url= +server.ssl.enabled=false +#\u9ED8\u8BA4\u653F\u52A1\u521B\u5EFA\u9879\u76EE\u6240\u5C5E\u4F01\u4E1A +defaultZwComapnySn= +#\u6587\u4EF6\u5B58\u50A8\u914D\u7F6E +#\u9ED8\u8BA4\u4F7F\u7528\u7684\u5B58\u50A8\u5E73\u53F0 +spring.file-storage.default-platform=local +#".min.jpg" #\u7F29\u7565\u56FE\u540E\u7F00\uFF0C\u4F8B\u5982\u3010.min.jpg\u3011\u3010.png\u3011 +spring.file-storage.thumbnail-suffix=.jpg +# \u672C\u5730\u5B58\u50A8\uFF0C\u4E0D\u4F7F\u7528\u7684\u60C5\u51B5\u4E0B\u53EF\u4EE5\u4E0D\u5199 +# \u5B58\u50A8\u5E73\u53F0\u6807\u8BC6 +spring.file-storage.local[0].platform=local +#\u542F\u7528\u5B58\u50A8 +spring.file-storage.local[0].enable-storage=true +#\u542F\u7528\u8BBF\u95EE\uFF08\u7EBF\u4E0A\u8BF7\u4F7F\u7528 Nginx \u914D\u7F6E\uFF0C\u6548\u7387\u66F4\u9AD8\uFF09 +spring.file-storage.local[0].enable-access=false +# \u8BBF\u95EE\u57DF\u540D\uFF0C\u4F8B\u5982\uFF1A\u201Chttp://127.0.0.1:6023/image/\u201D\uFF0C\u6CE8\u610F\u540E\u9762\u8981\u548C path-patterns \u4FDD\u6301\u4E00\u81F4\uFF0C\u201C/\u201D\u7ED3\u5C3E\uFF0C\u672C\u5730\u5B58\u50A8\u5EFA\u8BAE\u4F7F\u7528\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u65B9\u4FBF\u540E\u671F\u66F4\u6362\u57DF\u540D +spring.file-storage.local[0].domain= +# \u5B58\u50A8\u5730\u5740 +spring.file-storage.local[0].base-path=C:/jxj/prod/backEnd/itbgpImage/ +# \u8BBF\u95EE\u8DEF\u5F84\uFF0C\u5F00\u542F enable-access \u540E\uFF0C\u901A\u8FC7\u6B64\u8DEF\u5F84\u53EF\u4EE5\u8BBF\u95EE\u5230\u4E0A\u4F20\u7684\u6587\u4EF6 +spring.file-storage.local[0].path-patterns= +spring.file-storage.aliyun-oss[0].platform=aliyun-oss +spring.file-storage.aliyun-oss[0].enable-storage=false +spring.file-storage.aliyun-oss[0].access-key= +spring.file-storage.aliyun-oss[0].secret-key= +spring.file-storage.aliyun-oss[0].end-point= +spring.file-storage.aliyun-oss[0].bucket-name= +# \u8BBF\u95EE\u57DF\u540D\uFF0C\u6CE8\u610F\u201C/\u201D\u7ED3\u5C3E\uFF0C\u4F8B\u5982\uFF1Ahttps://abc.oss-cn-shanghai.aliyuncs.com/ +spring.file-storage.aliyun-oss[0].domain= +spring.file-storage.aliyun-oss[0].base-path= +# admin\u4E2D\u5BF9\u5E94\u7684\u5730\u5740\u53CA\u5B9E\u4F8B\u540D +spring.boot.admin.client.instance.service-url=http://localhost:18070 +spring.boot.admin.client.instance.name=zjsj +# \u6C34\u7535\u6570\u636E\u63A8\u9001\u5730\u5740 +double-carbon.water-data-url=http://test.cesms.net +double-carbon.ammeter-data-url=http://test.cesms.net +license.licensePath=C:/jxj/prod/backEnd/license/license.lic +license.publicKeysStorePath=C:/jxj/prod/backEnd/license/publicCerts.keystore +#\u9AD8\u652F\u6A21\u7684tcp\u670D\u52A1\u7AEF\u7684\u7AEF\u53E3\u53F7 +high_formwork.netty.port=15333 +#同步bim进度管理的IP端口号 +bimProgressIpPort=http://47.105.67.193:8086 +#fms接⼝地址host +fmsMonitoringScreenRequestHost=http://gateway.sit.bzlrobot.com +#fms施⼯监控⼤屏⻚⾯地址 +fmsMonitoringScreenPageUrl=https://fms.bzlrobot.com:8085/#/intelligenceMonitor/dataScreen?token=