查询报警数量(按报警类型区分)和更新dll
This commit is contained in:
parent
d52f8bbec5
commit
41ccea4a87
@ -38,9 +38,9 @@
|
||||
order by t3.parent_id,t3.priority
|
||||
</select>
|
||||
<select id="selectHeadquartersMenuList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
|
||||
SELECT a.*
|
||||
SELECT DISTINCT a.*
|
||||
from base_menu a INNER JOIN base_module m ON a.module_id=m.module_id
|
||||
LEFT JOIN base_module_project b ON a.module_id=b.module_id
|
||||
LEFT JOIN base_module_project b ON a.module_id=b.module_id
|
||||
WHERE b.sn=#{headquartersSn} and b.type=1 and a.status=1 and m.style_type=#{styleType}
|
||||
order by a.parent_id,a.priority
|
||||
</select>
|
||||
@ -51,4 +51,4 @@
|
||||
WHERE b.user_id=#{userId} and a.status=1 and m.style_type=#{styleType}
|
||||
order by a.parent_id,a.priority
|
||||
</select>
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
@ -12,6 +12,7 @@ import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.Tower;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.vo.AlarmsDistinguishedNumberByAlarmType;
|
||||
import com.zhgd.xmgl.modules.bigdevice.service.ITowerAlarmService;
|
||||
import com.zhgd.xmgl.modules.bigdevice.service.ITowerService;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -340,4 +341,17 @@ public class TowerAlarmController {
|
||||
return Result.error("参数错误 ").data(false);
|
||||
}
|
||||
}
|
||||
|
||||
@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<AlarmsDistinguishedNumberByAlarmType> queryAlarmsDistinguishedNumberByAlarmType(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(towerAlarmService.queryAlarmsDistinguishedNumberByAlarmType(map));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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.TowerNumAndAlarmCount;
|
||||
import com.zhgd.xmgl.modules.bigdevice.service.ITowerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
@ -149,7 +150,7 @@ public class TowerController {
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/selectTowerNumAndAlarmCount")
|
||||
public Result<Map<String, Object>> selectTowerNumAndAlarmCount(@RequestBody Map<String, Object> map) {
|
||||
public Result<TowerNumAndAlarmCount> selectTowerNumAndAlarmCount(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(towerService.selectTowerNumAndAlarmCount(map));
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
package com.zhgd.xmgl.modules.bigdevice.entity.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AlarmsDistinguishedNumberByAlarmType {
|
||||
@ApiModelProperty(value = "报警总数")
|
||||
private Integer alarmNum;
|
||||
private List<TypeNum> typeNumList;
|
||||
|
||||
@Data
|
||||
public static class TypeNum {
|
||||
@ApiModelProperty(value = "报警类型:momentAlarm>力矩报警 0: 正常 1:报警 2:预警\n" +
|
||||
"windSpeedAlarm>风速报警 0: 正常 1:报警 2:预警\n" +
|
||||
"heightAlarm>高度上限位报警 0: 正常 1:报警 2:预警\n" +
|
||||
"heightLowerAlarm>高度下限位报警 0: 正常 1:报警 2:预警\n" +
|
||||
"minRangeAlarm>幅度内限位报警 0: 正常 1:报警 2:预警\n" +
|
||||
"maxRangeAlarm>幅度外限位报警 0: 正常 1:报警 2:预警\n" +
|
||||
"posAngleAlarm>顺时针回转限位报警 0: 正常 1:报警 2:预警\n" +
|
||||
"negAngleAlarm>逆时针回转限位报警 0: 正常 1:报警 2:预警\n" +
|
||||
"obliguityAlarm>倾角报警 0: 正常 1:报警 2:预警\n" +
|
||||
"environmentAlarm>环境防撞报警 0: 正常 1:报警 2:预警\n" +
|
||||
"multiAlarm>多机防撞报警 0: 正常 1:报警 2:预警\n" +
|
||||
"standardHighAlarm>塔机间竖向高度报警 0: 正常 1:报警 2:预警")
|
||||
private String type;
|
||||
@ApiModelProperty(value = "报警数量")
|
||||
private Integer num;
|
||||
}
|
||||
}
|
||||
@ -14,8 +14,6 @@ import lombok.NoArgsConstructor;
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "驾驶员信息", description = "驾驶员信息")
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DriverVO {
|
||||
@ApiModelProperty(value = "驾驶员名称")
|
||||
private String workerName;
|
||||
@ -28,4 +26,14 @@ public class DriverVO {
|
||||
|
||||
@ApiModelProperty(value = "司机照片")
|
||||
private String imageUrl;
|
||||
@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;
|
||||
@ApiModelProperty(value = "身份证号")
|
||||
private java.lang.String idCard;
|
||||
}
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
package com.zhgd.xmgl.modules.bigdevice.entity.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TowerCurrentCountVo {
|
||||
@ApiModelProperty(value = "设备sn")
|
||||
private String devSn;
|
||||
@ApiModelProperty(value = "今日吊次")
|
||||
private String cycleNum;
|
||||
private String faultNum;
|
||||
@ApiModelProperty(value = "今日告警数量")
|
||||
private Integer alarmNum;
|
||||
private String devOnline;
|
||||
private Integer warningNum;
|
||||
@ApiModelProperty(value = "设备名称")
|
||||
private String devName;
|
||||
@ApiModelProperty(value = "配置载重功能 0:未配置 1:已配置")
|
||||
private Integer weightSet;
|
||||
@ApiModelProperty(value = "今日吊重")
|
||||
private Double totalLoading;
|
||||
@ApiModelProperty(value = "工作时长(运行时间,塔吊工作循环时长)")
|
||||
private Integer runMinuteTime;
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
package com.zhgd.xmgl.modules.bigdevice.entity.vo;
|
||||
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.Tower;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class TowerNumAndAlarmCount {
|
||||
private DevCount devCount;
|
||||
private AlarmCount alarmCount;
|
||||
@ApiModelProperty(value = "故障总数")
|
||||
private Integer faultNum;
|
||||
@ApiModelProperty(value = "设备列表")
|
||||
private List<Tower> deviceList;
|
||||
|
||||
@Data
|
||||
public static class DevCount {
|
||||
|
||||
private Integer collideOnlineRatio;
|
||||
@ApiModelProperty(value = "在线设备数量")
|
||||
private Integer devOnline;
|
||||
@ApiModelProperty(value = "防碰撞的在线设备数量")
|
||||
private Integer collideDevOnline;
|
||||
@ApiModelProperty(value = "防碰撞的设备数量")
|
||||
private Integer collideDevNum;
|
||||
@ApiModelProperty(value = "塔吊设备数量")
|
||||
private String devNum;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class AlarmCount {
|
||||
|
||||
@ApiModelProperty(value = "报警总数")
|
||||
private Integer alarmNum;
|
||||
@ApiModelProperty(value = "预警总数")
|
||||
private Integer warningNum;
|
||||
@ApiModelProperty(value = "报警+预警总数")
|
||||
private String totalAlarmNum;
|
||||
@ApiModelProperty(value = "违章总数")
|
||||
private String violationNum;
|
||||
|
||||
@ApiModelProperty(value = "报警总数(相比昨日同一时间)")
|
||||
private Integer alarmNumYesterdaySameTime;
|
||||
@ApiModelProperty(value = "预警总数(相比昨日同一时间)")
|
||||
private Integer warningNumYesterdaySameTime;
|
||||
@ApiModelProperty(value = "报警+预警总数(相比昨日同一时间)")
|
||||
private Integer totalAlarmNumYesterdaySameTime;
|
||||
@ApiModelProperty(value = "违章总数(相比昨日同一时间)")
|
||||
private Integer violationNumYesterdaySameTime;
|
||||
@ApiModelProperty(value = "违章总数(相比过去30日平均值)")
|
||||
private Integer violationNumBefore30Day;
|
||||
}
|
||||
|
||||
}
|
||||
@ -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.TowerAlarm;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.vo.AlarmsDistinguishedNumberByAlarmType;
|
||||
import org.apache.ibatis.annotations.MapKey;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -31,6 +32,14 @@ public interface TowerAlarmMapper extends BaseMapper<TowerAlarm> {
|
||||
|
||||
Map<String, Object> selectCurrentAlarmCount(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* 昨日同时间
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> selectYesterdaySameTimeAlarmCount(Map<String, Object> map);
|
||||
|
||||
Map<String, Object> selectYesterdayAlarmCount(Map<String, Object> map);
|
||||
|
||||
List<Map<String, Integer>> selectHourTowerAlarmCount(Map<String, Object> map);
|
||||
@ -67,4 +76,7 @@ public interface TowerAlarmMapper extends BaseMapper<TowerAlarm> {
|
||||
List<Map<String, Object>> selectTowerDevAlarmGroupCount(Map<String, Object> map);
|
||||
|
||||
IPage<EntityMap> selectPageInfo(Page<EntityMap> page, @Param("map") Map<String, Object> map);
|
||||
|
||||
List<TowerAlarm> queryAlarmsByTime(Map<String, Object> map);
|
||||
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.TowerViolation;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerNumAndAlarmCount;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -38,4 +39,6 @@ public interface TowerViolationMapper extends BaseMapper<TowerViolation> {
|
||||
List<Map<String, Object>> selectAllProjectTowerViolationList(Map<String, Object> map);
|
||||
|
||||
List<Map<String, Object>> selectAllProjectTowerAlarmViolationList(Map<String, Object> map);
|
||||
|
||||
TowerNumAndAlarmCount.AlarmCount selectViolation30DaysTodayYesterdayCount(Map<String, Object> map);
|
||||
}
|
||||
|
||||
@ -107,15 +107,14 @@
|
||||
</select>
|
||||
<select id="selectCurrentAlarmCount" resultType="java.util.Map">
|
||||
select count(1) totalAlarmNum,
|
||||
IFNULL(SUM((case when a.alarm_type=1 then 1 else 0 end)),0) alarmNum,
|
||||
IFNULL(SUM((case when a.alarm_type=2 then 1 else 0 end)),0) warningNum
|
||||
IFNULL(SUM((case when a.alarm_type=1 then 1 else 0 end)),0) alarmNum, <!--报警数-->
|
||||
IFNULL(SUM((case when a.alarm_type=2 then 1 else 0 end)),0) warningNum <!--预警数-->
|
||||
from tower_alarm a
|
||||
where a.project_sn=#{projectSn}
|
||||
<if test="devSn!=null and devSn!=''">
|
||||
<if test="devSn != null and devSn != ''">
|
||||
and a.dev_sn=#{devSn}
|
||||
</if>
|
||||
AND a.add_time >=CONCAT(DATE_FORMAT(now(),"%Y-%m-%d"),' 00:00:00')
|
||||
|
||||
</select>
|
||||
<select id="selectYesterdayAlarmCount" resultType="java.util.Map">
|
||||
select count(1) totalAlarmNum,
|
||||
@ -722,4 +721,24 @@
|
||||
</if>
|
||||
order by o.update_date desc,o.add_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
<select id="selectYesterdaySameTimeAlarmCount" resultType="java.util.Map">
|
||||
select count(1) totalAlarmNumYesterdaySameTime,
|
||||
IFNULL(SUM((case when a.alarm_type=1 then 1 else 0 end)),0) alarmNumYesterdaySameTime,
|
||||
IFNULL(SUM((case when a.alarm_type=2 then 1 else 0 end)),0) warningNumYesterdaySameTime
|
||||
from tower_alarm a
|
||||
where a.project_sn=#{projectSn}
|
||||
<if test="devSn != null and devSn != ''">
|
||||
and a.dev_sn=#{devSn}
|
||||
</if>
|
||||
and a.add_time>=CONCAT(DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),' 00:00:00')
|
||||
and a.add_time <=CONCAT(DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),DATE_FORMAT(now(),'
|
||||
%H:%i:%s'))
|
||||
</select>
|
||||
|
||||
<select id="queryAlarmsByTime"
|
||||
resultType="com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm">
|
||||
select ta.* from tower_alarm ta where ta.add_time >= #{queryStartTime} and ta.add_time <![CDATA[<=]]>
|
||||
#{queryEndTime} and ta.alarm_type=1
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -252,27 +252,28 @@
|
||||
de.dev_sn devSn,
|
||||
de.dev_name devName,
|
||||
IFNULL(((case
|
||||
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(de.real_time)) / 60) <= 30 then 1
|
||||
else 0 end)), 0) devOnline,
|
||||
IFNULL(tp.cycleNum, 0) cycleNum,
|
||||
IFNULL(tp.totalLoading, 0) totalLoading,
|
||||
IFNULL(tp2.faultNum, 0) faultNum,
|
||||
IFNULL(tp3.alarmNum, 0) alarmNum,
|
||||
IFNULL(tp3.warningNum, 0) warningNum
|
||||
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(de.real_time)) / 60) <= 30 then 1
|
||||
else 0 end)), 0) devOnline,
|
||||
IFNULL(tp.cycleNum, 0) cycleNum,
|
||||
IFNULL(tp.totalLoading, 0) totalLoading,
|
||||
IFNULL(tp2.faultNum, 0) faultNum,
|
||||
IFNULL(tp3.alarmNum, 0) alarmNum,
|
||||
IFNULL(tp3.warningNum, 0) warningNum
|
||||
FROM tower de
|
||||
LEFT JOIN (select a.dev_sn,
|
||||
count(1) cycleNum,
|
||||
IFNULL(SUM(loading), 0) totalLoading
|
||||
FROM tower_work_cycle a
|
||||
WHERE a.project_sn = #{projectSn}
|
||||
AND a.start_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
||||
group by a.dev_sn
|
||||
LEFT JOIN (select a.dev_sn,
|
||||
count(1) cycleNum,
|
||||
IFNULL(SUM(TIMESTAMPDIFF(MINUTE,a.start_time,a.end_time)),0) runMinuteTime,
|
||||
IFNULL(SUM(loading), 0) totalLoading
|
||||
FROM tower_work_cycle a
|
||||
WHERE a.project_sn = #{projectSn}
|
||||
AND a.start_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
||||
group by a.dev_sn
|
||||
) tp ON de.dev_sn = tp.dev_sn
|
||||
LEFT JOIN (SELECT dev_sn, COUNT(1) faultNum
|
||||
from tower_fault
|
||||
WHERE project_sn = #{projectSn}
|
||||
AND add_time >= CONCAT(DATE_FORMAT(NOW(), '%Y-%m-%d'), ' 00:00:00')
|
||||
group by dev_sn
|
||||
LEFT JOIN (SELECT dev_sn, COUNT(1) faultNum
|
||||
from tower_fault
|
||||
WHERE project_sn = #{projectSn}
|
||||
AND add_time >= CONCAT(DATE_FORMAT(NOW(), '%Y-%m-%d'), ' 00:00:00')
|
||||
group by dev_sn
|
||||
) tp2 ON de.dev_sn = tp2.dev_sn
|
||||
LEFT JOIN (SELECT dev_sn,
|
||||
IFNULL(SUM((case when alarm_type = 1 then 1 else 0 end)), 0) alarmNum,
|
||||
@ -672,7 +673,8 @@
|
||||
|
||||
<resultMap id="towerAndDriverInfo" type="com.zhgd.xmgl.modules.bigdevice.entity.Tower" autoMapping="true">
|
||||
<id property="id" column="id"/>
|
||||
<collection property="driverList" ofType="com.zhgd.xmgl.modules.bigdevice.entity.BigDeviceDriverRecord">
|
||||
<collection property="driverList" ofType="com.zhgd.xmgl.modules.bigdevice.entity.BigDeviceDriverRecord"
|
||||
autoMapping="true">
|
||||
<id property="id" column="bId"/>
|
||||
<result property="driverName" column="worker_name"/>
|
||||
<result property="driverPhone" column="phone_number"/>
|
||||
@ -683,21 +685,31 @@
|
||||
|
||||
<select id="getTowerAndDriverInfo" resultMap="towerAndDriverInfo">
|
||||
select t.id,
|
||||
t.dev_name,
|
||||
t.project_sn,
|
||||
t.dev_sn,
|
||||
t.regist_no,
|
||||
t.factory_name,
|
||||
t.forearm_length,
|
||||
t.tower_height,
|
||||
bddr.id bId,
|
||||
wi.worker_name,
|
||||
wi.phone_number,
|
||||
wi.special_certificate_number,
|
||||
wi.field_acquisition_url
|
||||
t.dev_name,
|
||||
t.project_sn,
|
||||
t.dev_sn,
|
||||
t.regist_no,
|
||||
t.factory_name,
|
||||
t.forearm_length,
|
||||
t.tower_height,
|
||||
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 tower t
|
||||
left join big_device_driver_record bddr on t.dev_sn = bddr.dev_sn and bddr.type = 1
|
||||
left join worker_info wi on wi.id = bddr.worker_id
|
||||
left join big_device_driver_record bddr on t.dev_sn = bddr.dev_sn and bddr.type = 1
|
||||
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 tower_work_cycle a
|
||||
where a.id in (select max(id) from tower_work_cycle twc group by twc.driver_id_card)
|
||||
) t1 on wi.id_card = t1.driver_id_card
|
||||
where t.dev_sn = #{devSn}
|
||||
</select>
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
@ -462,6 +462,42 @@
|
||||
) tp
|
||||
where totalNum>0
|
||||
order by totalNum desc
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
<select id="selectViolation30DaysTodayYesterdayCount"
|
||||
resultType="com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerNumAndAlarmCount$AlarmCount">
|
||||
select t1.violation_num,
|
||||
t1.violation_num-t2.violation_num_yesterday_same_time as violation_num_yesterday_same_time,
|
||||
t1.violation_num-t3.violation_num_before30_day as violation_num_before30_day from (
|
||||
select count(1) violation_num
|
||||
from tower_violation a
|
||||
where a.project_sn=#{projectSn}
|
||||
<if test="devSn != null and devSn != ''">
|
||||
and a.dev_sn=#{devSn}
|
||||
</if>
|
||||
AND a.add_time >=CONCAT(DATE_FORMAT(now(),"%Y-%m-%d"),' 00:00:00')
|
||||
)t1
|
||||
join
|
||||
(
|
||||
select count(1) violation_num_yesterday_same_time
|
||||
from tower_violation a
|
||||
where a.project_sn=#{projectSn}
|
||||
<if test="devSn != null and devSn != ''">
|
||||
and a.dev_sn=#{devSn}
|
||||
</if>
|
||||
and a.add_time>=CONCAT(DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),' 00:00:00')
|
||||
and a.add_time <=CONCAT(DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d'),DATE_FORMAT(now(),'
|
||||
%H:%i:%s'))
|
||||
)t2
|
||||
join
|
||||
(
|
||||
select count(1) violation_num_before30_day
|
||||
from tower_violation a
|
||||
where a.project_sn=#{projectSn}
|
||||
<if test="devSn != null and devSn != ''">
|
||||
and a.dev_sn=#{devSn}
|
||||
</if>
|
||||
and a.add_time>=CONCAT(DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -30 DAY),'%Y-%m-%d'),' 00:00:00')
|
||||
)t3
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -5,6 +5,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.TowerCurrentData;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.vo.AlarmsDistinguishedNumberByAlarmType;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
@ -52,13 +53,15 @@ public interface ITowerAlarmService extends IService<TowerAlarm> {
|
||||
|
||||
List<Map<String,Object>> selectProjectTowerAlarmCountList(Map<String, Object> map);
|
||||
|
||||
List<Map<String,Object>> selectAllProjectTowerAlarmList(Map<String, Object> map);
|
||||
List<Map<String, Object>> selectAllProjectTowerAlarmList(Map<String, Object> map);
|
||||
|
||||
Map<String, Object> selectComapnyTowerAlarmCount(Map<String, Object> param);
|
||||
|
||||
List<Map<String,Object>> selectTowerAlarmTrendList(Map<String, Object> map);
|
||||
List<Map<String, Object>> selectTowerAlarmTrendList(Map<String, Object> map);
|
||||
|
||||
List<EntityMap> selectProjectNewestTowerAlarmList(Map<String, Object> map);
|
||||
|
||||
IPage<EntityMap> selectPageInfo(Map<String, Object> map);
|
||||
|
||||
AlarmsDistinguishedNumberByAlarmType queryAlarmsDistinguishedNumberByAlarmType(Map<String, Object> map);
|
||||
}
|
||||
|
||||
@ -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.TowerNumAndAlarmCount;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -38,7 +39,7 @@ public interface ITowerService extends IService<Tower> {
|
||||
|
||||
void deleteProjectBigDevicesData(String projectSn);
|
||||
|
||||
Map<String, Object> selectTowerNumAndAlarmCount(Map<String, Object> map);
|
||||
TowerNumAndAlarmCount selectTowerNumAndAlarmCount(Map<String, Object> map);
|
||||
|
||||
List<Map<String, Object>> selectTowerCurrentCount(Map<String, Object> map);
|
||||
|
||||
|
||||
@ -322,8 +322,14 @@ public class LifterServiceImpl extends ServiceImpl<LifterMapper, Lifter> impleme
|
||||
|
||||
LifterCurrentData newData = redisRepository.getOrSet("lifterCurrentData" + lifter.getProjectSn() + lifter.getDevSn(), (() -> lifterCurrentDataMapper.getNewData(devSn)));
|
||||
log.info("getRelatedInfo升降机实时数据信息:{}", newData);
|
||||
List<DriverVO> driverList = lifter.getDriverList().stream().map(driver -> new DriverVO(driver.getDriverName(),
|
||||
driver.getDriverPhone(), driver.getCertificateNumber(), driver.getImageUrl())).collect(Collectors.toList());
|
||||
List<DriverVO> driverList = lifter.getDriverList().stream().map(driver -> {
|
||||
DriverVO driverVO = new DriverVO();
|
||||
driverVO.setWorkerName(driver.getDriverName());
|
||||
driverVO.setPhoneNumber(driver.getDriverPhone());
|
||||
driverVO.setSpecialCertificateNumber(driver.getCertificateNumber());
|
||||
driverVO.setImageUrl(driver.getImageUrl());
|
||||
return driverVO;
|
||||
}).collect(Collectors.toList());
|
||||
DevWorkerVO devWorker = new DevWorkerVO(lifter.getDevName(), lifter.getDevSn(), lifter.getRegistNo(), lifter.getFactoryName(), lifter.getMaxLoad(), driverList);
|
||||
|
||||
LifterDataInfoDTO lifterDataInfo = new LifterDataInfoDTO().setTotalFloor(lifter.getTotalFloor()).setHeight(lifter.getMaxHeight());
|
||||
|
||||
@ -11,6 +11,7 @@ import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.Tower;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.TowerCurrentData;
|
||||
import com.zhgd.xmgl.modules.bigdevice.entity.vo.AlarmsDistinguishedNumberByAlarmType;
|
||||
import com.zhgd.xmgl.modules.bigdevice.mapper.TowerAlarmMapper;
|
||||
import com.zhgd.xmgl.modules.bigdevice.mapper.TowerCurrentDataMapper;
|
||||
import com.zhgd.xmgl.modules.bigdevice.mapper.TowerFaultMapper;
|
||||
@ -20,6 +21,7 @@ import com.zhgd.xmgl.modules.bigdevice.service.ITowerService;
|
||||
import com.zhgd.xmgl.util.DateUtil;
|
||||
import com.zhgd.xmgl.util.JxlExcelUtils;
|
||||
import com.zhgd.xmgl.util.MessageUtil;
|
||||
import com.zhgd.xmgl.util.ReflectionUtil;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -552,4 +554,96 @@ public class TowerAlarmServiceImpl extends ServiceImpl<TowerAlarmMapper, TowerAl
|
||||
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
||||
return towerAlarmMapper.selectPageInfo(new Page<>(pageNo, pageSize), map);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AlarmsDistinguishedNumberByAlarmType queryAlarmsDistinguishedNumberByAlarmType(Map<String, Object> 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<TowerAlarm> towerAlarms = towerAlarmMapper.queryAlarmsByTime(map);
|
||||
Map<String, Integer> countTowerAlarmByTypeMap = countTowerAlarmByType(towerAlarms);
|
||||
List<AlarmsDistinguishedNumberByAlarmType.TypeNum> typeNums = new ArrayList<>();
|
||||
for (Map.Entry<String, Integer> 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 towerAlarms
|
||||
*/
|
||||
private Map<String, Integer> countTowerAlarmByType(List<TowerAlarm> towerAlarms) {
|
||||
Map<String, Integer> typeNumMap = new HashMap<>();
|
||||
for (TowerAlarm towerAlarm : towerAlarms) {
|
||||
if (Objects.equals(towerAlarm.getMomentAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getMomentAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getWindSpeedAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getWindSpeedAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getHeightAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getHeightAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getHeightLowerAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getHeightLowerAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getMinRangeAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getMinRangeAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getMaxRangeAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getMaxRangeAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getPosAngleAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getPosAngleAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getNegAngleAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getNegAngleAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getObliguityAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getObliguityAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getEnvironmentAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getEnvironmentAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getMultiAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getMultiAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
if (Objects.equals(towerAlarm.getStandardHighAlarm(), 1)) {
|
||||
String fieldName = ReflectionUtil.getFieldName(TowerAlarm::getStandardHighAlarm);
|
||||
addTowerAlarmCountByType(typeNumMap, fieldName);
|
||||
}
|
||||
}
|
||||
return typeNumMap;
|
||||
}
|
||||
|
||||
private void addTowerAlarmCountByType(Map<String, Integer> typeNumMap, String fieldName) {
|
||||
Integer integer = typeNumMap.get(fieldName);
|
||||
if (integer != null) {
|
||||
integer += 1;
|
||||
} else {
|
||||
integer = 1;
|
||||
}
|
||||
typeNumMap.put(fieldName, integer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@ -18,6 +19,7 @@ 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.mapper.*;
|
||||
import com.zhgd.xmgl.modules.bigdevice.service.ITowerService;
|
||||
import com.zhgd.xmgl.modules.bigdevice.service.ITowerVisualizeService;
|
||||
@ -72,6 +74,8 @@ public class TowerServiceImpl extends ServiceImpl<TowerMapper, Tower> implements
|
||||
private ISystemUserService systemUserService;
|
||||
@Autowired
|
||||
private IMqttSender mqttSender;
|
||||
@Autowired
|
||||
private TowerViolationMapper towerViolationMapper;
|
||||
|
||||
|
||||
@Autowired
|
||||
@ -280,15 +284,31 @@ public class TowerServiceImpl extends ServiceImpl<TowerMapper, Tower> implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> selectTowerNumAndAlarmCount(Map<String, Object> map) {
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
Map<String, Object> devCount = towerMapper.selectTowerNumCount(map);
|
||||
Map<String, Object> currentAlarmCount = towerAlarmMapper.selectCurrentAlarmCount(map);
|
||||
public TowerNumAndAlarmCount selectTowerNumAndAlarmCount(Map<String, Object> map) {
|
||||
Map<String, Object> dataMap = new HashMap<>();
|
||||
Map<String, Object> devCountMap = towerMapper.selectTowerNumCount(map);
|
||||
Map<String, Object> currentAlarmCountMap = towerAlarmMapper.selectCurrentAlarmCount(map);
|
||||
Map<String, Object> yesterdaySameTimeAlarmCountMap = towerAlarmMapper.selectYesterdaySameTimeAlarmCount(map);
|
||||
Integer faultNum = towerFaultMapper.selectCurrentFaultCount(map);
|
||||
data.put("devCount", devCount);
|
||||
data.put("alarmCount", currentAlarmCount);
|
||||
data.put("faultNum", faultNum);
|
||||
return data;
|
||||
dataMap.put("devCount", devCountMap);
|
||||
//报警总数
|
||||
dataMap.put("alarmCount", currentAlarmCountMap);
|
||||
//故障总数
|
||||
dataMap.put("faultNum", faultNum);
|
||||
List<EntityMap> towerList = towerMapper.selectTowerList(map);
|
||||
List<Tower> towerBeanList = towerList.stream().map(e -> BeanUtil.toBeanIgnoreCase(e, Tower.class, true)).collect(Collectors.toList());
|
||||
dataMap.put("deviceList", towerBeanList);
|
||||
TowerNumAndAlarmCount.AlarmCount violationCount = towerViolationMapper.selectViolation30DaysTodayYesterdayCount(map);
|
||||
|
||||
TowerNumAndAlarmCount towerNumAndAlarmCount = BeanUtil.toBean(dataMap, TowerNumAndAlarmCount.class);
|
||||
TowerNumAndAlarmCount.AlarmCount alarmCount = towerNumAndAlarmCount.getAlarmCount();
|
||||
alarmCount.setAlarmNumYesterdaySameTime(alarmCount.getAlarmNum() - MapUtils.getInteger(yesterdaySameTimeAlarmCountMap, "alarmNumYesterdaySameTime"));
|
||||
alarmCount.setWarningNumYesterdaySameTime(alarmCount.getWarningNum() - MapUtils.getInteger(yesterdaySameTimeAlarmCountMap, "warningNumYesterdaySameTime"));
|
||||
alarmCount.setTotalAlarmNumYesterdaySameTime(Integer.valueOf(alarmCount.getTotalAlarmNum()) - MapUtils.getInteger(yesterdaySameTimeAlarmCountMap, "totalAlarmNumYesterdaySameTime"));
|
||||
alarmCount.setViolationNum(violationCount.getViolationNum());
|
||||
alarmCount.setViolationNumYesterdaySameTime(violationCount.getViolationNumYesterdaySameTime());
|
||||
alarmCount.setViolationNumBefore30Day(violationCount.getViolationNumBefore30Day());
|
||||
return towerNumAndAlarmCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -455,8 +475,14 @@ public class TowerServiceImpl extends ServiceImpl<TowerMapper, Tower> implements
|
||||
|
||||
log.info("getRelatedInfo塔吊实时数据信息:{}", newData);
|
||||
|
||||
List<DriverVO> driverList = tower.getDriverList().stream().map(driver -> new DriverVO(driver.getDriverName(),
|
||||
driver.getDriverPhone(), driver.getCertificateNumber(), driver.getImageUrl())).collect(Collectors.toList());
|
||||
List<DriverVO> driverList = tower.getDriverList().stream().map(driver -> {
|
||||
DriverVO driverVO = new DriverVO();
|
||||
driverVO.setWorkerName(driver.getDriverName());
|
||||
driverVO.setPhoneNumber(driver.getDriverPhone());
|
||||
driverVO.setSpecialCertificateNumber(driver.getCertificateNumber());
|
||||
driverVO.setImageUrl(driver.getImageUrl());
|
||||
return driverVO;
|
||||
}).collect(Collectors.toList());
|
||||
DevWorkerVO devWorker = new DevWorkerVO(tower.getDevName(), tower.getDevSn(), tower.getRegistNo(), tower.getFactoryName(), null, driverList);
|
||||
|
||||
|
||||
|
||||
@ -204,7 +204,7 @@ public class ProjectController {
|
||||
result.error500(MessageUtil.get("notFindErr"));
|
||||
} else {
|
||||
boolean ok = projectService.update(project, queryWrapper);
|
||||
redisRepository.del("projectInfoBySn:" + projectSn);
|
||||
redisRepository.del("projectInfoBySn:" + projectEntity.getProjectSn());
|
||||
if (ok) {
|
||||
result.successMsg(MessageUtil.get("editSucess"));
|
||||
}
|
||||
|
||||
@ -42,4 +42,10 @@ public class BIMProgressTaskRqBody {
|
||||
* sign 是 String 校验码-->例如:"sign": "842e133f81eb3506f60877652000a9fa"
|
||||
*/
|
||||
private String sign;
|
||||
/**
|
||||
* 特殊的值:
|
||||
* project=1 是金融城那个(原来的中建四局)
|
||||
* project=2 是坪山沙湖那个
|
||||
*/
|
||||
private Integer projectId;
|
||||
}
|
||||
|
||||
@ -4,6 +4,8 @@ import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zhgd.xmgl.modules.project.entity.BIMProgressTaskRqBody;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -15,19 +17,17 @@ import java.util.HashMap;
|
||||
@Component
|
||||
@Slf4j
|
||||
public class AsyBim {
|
||||
//测试
|
||||
//String ipPort = "http://47.105.67.193:8086";
|
||||
|
||||
//生产
|
||||
String ipPort = "http://124.71.79.109:8086";
|
||||
@Value("${bimProgressIpPort:}")
|
||||
private String bimProgressIpPort;
|
||||
|
||||
@Async("bimExecutor")
|
||||
public void asynAddProgressTask(BIMProgressTaskRqBody bimProgressTaskRqBody) {
|
||||
String url = ipPort + "/Other/SaveProgress";
|
||||
String body = JSON.toJSONString(bimProgressTaskRqBody);
|
||||
log.info("http调用bim保存进度:url:{},body:{}", url, body);
|
||||
String rs = HttpUtil.post(url, body);
|
||||
log.info("http调用bim保存进度结果:{}", rs);
|
||||
if (StringUtils.isNotBlank(bimProgressIpPort)) {
|
||||
String url = bimProgressIpPort + "/Other/SaveProgress";
|
||||
String body = JSON.toJSONString(bimProgressTaskRqBody);
|
||||
log.info("http调用bim保存进度:url:{},body:{}", url, body);
|
||||
String rs = HttpUtil.post(url, body);
|
||||
log.info("http调用bim保存进度结果:{}", rs);
|
||||
/*
|
||||
结果:
|
||||
{
|
||||
@ -57,29 +57,30 @@ public class AsyBim {
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@Async("bimExecutor")
|
||||
public void asynDeleteProgressTask(String floor, String major) {
|
||||
String url = ipPort + "/Other/DeleteProgress?floor=" + floor + "&major=" + major;
|
||||
log.info("http调用bim删除进度:url:{}", url);
|
||||
String rs = HttpUtil.post(url, new HashMap<>());
|
||||
log.info("http调用bim删除进度结果:{}", rs);
|
||||
/*
|
||||
结果:
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": 1
|
||||
}
|
||||
if (StringUtils.isNotBlank(bimProgressIpPort)) {
|
||||
String url = bimProgressIpPort + "/Other/DeleteProgress?floor=" + floor + "&major=" + major;
|
||||
log.info("http调用bim删除进度:url:{}", url);
|
||||
String rs = HttpUtil.post(url, new HashMap<>());
|
||||
log.info("http调用bim删除进度结果:{}", rs);
|
||||
/*
|
||||
结果:
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": 1
|
||||
}
|
||||
|
||||
{
|
||||
"code": 500,
|
||||
"message": "操作失败",
|
||||
"data": 1
|
||||
{
|
||||
"code": 500,
|
||||
"message": "操作失败",
|
||||
"data": 1
|
||||
}
|
||||
*/
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
|
||||
log.info("原progressTasks:{}", JSON.toJSONString(progressTasks));
|
||||
progressTaskMapper.delete(Wrappers.lambdaQuery(ProgressTask.class).eq(ProgressTask::getProjectSn, projectSn));
|
||||
|
||||
if (profileJudgeUtil.isZjsjProd()) {
|
||||
if (isBIMAsyncEnable()) {
|
||||
//调用BIM同步删除数据
|
||||
List<BIMProgressTaskRqBody> deleteList = getBimTasksByProgressTasks(progressTasks);
|
||||
if (CollUtil.isNotEmpty(deleteList)) {
|
||||
@ -108,7 +108,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
|
||||
log.info("importData的新增数据:{}", progressTaskList);
|
||||
if (CollUtil.isNotEmpty(progressTaskList)) {
|
||||
progressTaskMapper.insertBatch(progressTaskList);
|
||||
if (profileJudgeUtil.isZjsjProd()) {
|
||||
if (isBIMAsyncEnable()) {
|
||||
//调用BIM同步添加数据
|
||||
List<BIMProgressTaskRqBody> bimProgressTaskRqBodies = getBimTasksByProgressTasks(progressTasks);
|
||||
if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) {
|
||||
@ -400,7 +400,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
|
||||
setDutyUserName(progressTask);
|
||||
progressTaskMapper.updateById(progressTask);
|
||||
|
||||
if (profileJudgeUtil.isZjsjProd()) {
|
||||
if (isBIMAsyncEnable()) {
|
||||
//同步数据到bim,先删除再更新bim
|
||||
if (progressTask.getParentId() != 0) {
|
||||
ProgressTask top = progressTaskMapper.selectById(progressTask.getParentId());
|
||||
@ -424,6 +424,15 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
|
||||
sanjiangDataCall.sendUpdateProgressTask(progressTask);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否开启bim的进度同步功能
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private boolean isBIMAsyncEnable() {
|
||||
return profileJudgeUtil.isZjsj();
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建bim的task对象
|
||||
*
|
||||
@ -441,6 +450,9 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
|
||||
body.setActualStartTime(getDateFormatForBimAddProgressTask(progressTask.getActualStartDate()));
|
||||
body.setActualFinishTime(getDateFormatForBimAddProgressTask(progressTask.getActualFinishDate()));
|
||||
body.setStatus(convertToBimProgressTaskStatus(progressTask));
|
||||
if (profileJudgeUtil.isZjsj()) {
|
||||
body.setProjectId(1);
|
||||
}
|
||||
String sign = getBimProgressTaskRqBodyMd5Sign(body);
|
||||
body.setSign(sign);
|
||||
return body;
|
||||
@ -673,7 +685,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
|
||||
|
||||
@Override
|
||||
public void autoTaskUpdateForBim() {
|
||||
if (profileJudgeUtil.isZjsjProd()) {
|
||||
if (isBIMAsyncEnable()) {
|
||||
List<ProgressTask> progressTasks = progressTaskMapper.selectList(new LambdaQueryWrapper<>());
|
||||
List<BIMProgressTaskRqBody> bimTasksByProgressTasks = getBimTasksByProgressTasks(progressTasks);
|
||||
if (CollUtil.isNotEmpty(bimTasksByProgressTasks)) {
|
||||
|
||||
@ -60,6 +60,15 @@ public class ProfileJudgeUtil {
|
||||
return "zjsj".equals(activeProfile);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否中建四局环境
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isZjsj() {
|
||||
return Stream.of("zjsj-gsx", "zjsj").anyMatch(s -> s.equals(activeProfile));
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否云联万物生产环境
|
||||
*
|
||||
|
||||
74
src/main/resources/application-temp-init-gsx.properties
Normal file
74
src/main/resources/application-temp-init-gsx.properties
Normal file
@ -0,0 +1,74 @@
|
||||
#http.port=30250
|
||||
http.port=45232
|
||||
#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_temp?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=30013
|
||||
#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
|
||||
74
src/main/resources/application-test-gsx.properties
Normal file
74
src/main/resources/application-test-gsx.properties
Normal file
@ -0,0 +1,74 @@
|
||||
#http.port=30250
|
||||
http.port=45732
|
||||
#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-test?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=30014
|
||||
#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
|
||||
@ -71,4 +71,6 @@ 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
|
||||
high_formwork.netty.port=15333
|
||||
#同步bim进度管理的IP端口号
|
||||
bimProgressIpPort=http://47.105.67.193:8086
|
||||
|
||||
BIN
src/main/resources/dll/libarcsoft_face.so
Normal file
BIN
src/main/resources/dll/libarcsoft_face.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/main/resources/dll/libarcsoft_face_engine.so
Normal file
BIN
src/main/resources/dll/libarcsoft_face_engine.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/main/resources/dll/libarcsoft_face_engine_jni.so
Normal file
BIN
src/main/resources/dll/libarcsoft_face_engine_jni.so
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user