Commit 359f4c40 authored by tianbo's avatar tianbo

Merge branch 'developer' into developer-latentDanger

parents 3e986dc4 18616264
......@@ -32,6 +32,8 @@ public class RedisKey {
public static final String CTI_TOKEN = "cti_token";
/**微信公众平台 token */
public static final String WECHAT_TOKEN = "wechat_token";
/**微信公众平台 token */
public static final String WECHAT_JS_TOKEN = "wechat_js_token";
/** 驼峰转下划线(简单写法,效率低于 ) */
public static String humpToLine(String str) {
......
......@@ -38,6 +38,7 @@ public interface FailureDetailsMapper extends BaseMapper<FailureDetails> {
String startTime, String endTime, String submissionName, Long submissionBranchId,
Long sequenceNbr);
int selectAllCount();
/**
* 查询我发起的 分页
* current 当前页
......
......@@ -23,11 +23,11 @@ public interface FireStationMapper extends BaseMapper<FireStation> {
// 微型消防站按时间倒叙排列add order by cb_fire_station.rec_date desc 2021-09-08 by kongfm
@Select("<script>"
+ "select * from cb_fire_station where cb_fire_station.is_delete=0 "
+ "<if test='par.name!=null'> and cb_fire_station.name like CONCAT('%',#{par.name},'%') </if>"
+ "<if test='par.bizCompanyId!=null'> and cb_fire_station.biz_company_id = #{par.bizCompanyId} </if>"
+ "<if test='par.bizCompanyCode!=null'> and cb_fire_station.biz_company_code like CONCAT('',#{par.bizCompanyCode},'%') </if>"
+" order by cb_fire_station.rec_date desc limit #{pageNum},#{pageSize}"
+ "select * ,(SELECT COUNT(*)FROM jc_firestation_jacket WHERE firefighters_id = a.sequence_nbr and is_delete =0) AS eqNum from cb_fire_station a where a.is_delete=0 "
+ "<if test='par.name!=null'> and a.name like CONCAT('%',#{par.name},'%') </if>"
+ "<if test='par.bizCompanyId!=null'> and a.biz_company_id = #{par.bizCompanyId} </if>"
+ "<if test='par.bizCompanyCode!=null'> and a.biz_company_code like CONCAT('',#{par.bizCompanyCode},'%') </if>"
+" order by a.rec_date desc limit #{pageNum},#{pageSize}"
+ "</script>")
List<FireStationDto>getFireStation(@Param("pageNum")int pageNum,@Param("pageSize")int pageSize,@Param("par")FireStationDto par);
@Select("<script>"
......
......@@ -32,6 +32,10 @@
order by submission_time DESC limit #{current},#{size};
</select>
<select id="selectAllCount" resultType="int">
SELECT COUNT(*) FROM cb_failure_details
</select>
<select id="selectWebPage" resultType="com.yeejoin.amos.boot.module.common.api.dto.FailureDetailsDto">
SELECT
sequence_nbr,
......
......@@ -151,10 +151,10 @@ LEFT JOIN cb_firefighters_education fe ON f.sequence_nbr = fe.firefighters_id
LEFT JOIN cb_firefighters_post fp ON f.sequence_nbr = fp.firefighters_id
WHERE
f.is_delete = 0
AND fc.is_delete = 0
AND fw.is_delete = 0
AND fe.is_delete = 0
AND fp.is_delete = 0
-- AND fc.is_delete = 0
-- AND fw.is_delete = 0
-- AND fe.is_delete = 0
-- AND fp.is_delete = 0
</select>
<select id="getFirefightersName" resultType="string">
......
......@@ -46,91 +46,98 @@
a.longitude,
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
AS distance,
case when csps.person_number is null then 0 else
csps.person_number end as userNum,
case when cre.vehicle_number is null then 0 else cre.vehicle_number end as
SUM(case when csps.person_number is null then 0 else
csps.person_number end) as userNum,
SUM(case when cre.vehicle_number is null then 0 else cre.vehicle_number end )as
carNum
FROM
cb_linkage_unit a
LEFT JOIN cb_special_position_staff csps ON a.sequence_nbr =
csps.company_id
LEFT JOIN cb_rescue_equipment cre on a.sequence_nbr = cre.company_id
<!--
case when csps.person_number is null then 0 else
csps.person_number end as userNum,
case when cre.vehicle_number is null then 0 else cre.vehicle_number end as
carNum-->
FROM
cb_linkage_unit a
LEFT JOIN cb_special_position_staff csps ON a.sequence_nbr =
csps.company_id
LEFT JOIN cb_rescue_equipment cre on a.sequence_nbr = cre.company_id
where a.longitude is not null and
a.latitude is not null
<if test='par.distance!=null'>
and
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
&lt;=
#{par.distance}
</if>
ORDER BY distance limit #{pageNum},#{pageSize}
</select>
where a.is_delete=0 and a.longitude is not null and
a.latitude is not null GROUP BY a.sequence_nbr
<if test='par.distance!=null'>
and
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
&lt;=
#{par.distance}
</if>
ORDER BY distance limit #{pageNum},#{pageSize}
</select>
<select id="listLinkageUnitZhDtoCount" resultType="Integer">
select
COUNT(a.sequence_nbr) num
FROM cb_linkage_unit a
where a.longitude
is not null and a.latitude is not null
<if test='par.distance!=null'>
and
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
&lt;=
#{par.distance}
</if>
</select>
<select id="listLinkageUnitZhDtoCount" resultType="Integer">
select
COUNT(a.sequence_nbr) num
FROM cb_linkage_unit a
where a.longitude
is not null and a.latitude is not null
<if test='par.distance!=null'>
and
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
&lt;=
#{par.distance}
</if>
</select>
<select id="getEmergencyLinkageUnitCodeGroupByAndCount"
resultType="java.util.Map">
SELECT
emergency_linkage_unit_code as
emergencyLinkageUnitCode,
COUNT(unit_code) AS count
FROM
cb_linkage_unit
WHERE
is_delete = 0
GROUP BY
emergency_linkage_unit_code
</select>
<select id="getEmergencyLinkageUnitCodeGroupByAndCount"
resultType="java.util.Map">
SELECT
emergency_linkage_unit_code as
emergencyLinkageUnitCode,
COUNT(unit_code) AS count
FROM
cb_linkage_unit
WHERE
is_delete = 0
GROUP BY
emergency_linkage_unit_code
</select>
<select id="exportToExcel"
resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto">
select
a.unit_name unitName,
a.linkage_unit_type
linkageUnitType,
a.address ,
a.latitude,
a.longitude,
a.agreement_start_date agreementStartDate,
a.agreement_end_date
agreementEndDate,
a.contact_user contactUser,
a.contact_phone
contactPhone,
b.*
from cb_linkage_unit a LEFT JOIN
(SELECT
m.instance_id,
max(case m.field_code when 'emergencyServiceContent' then
m.field_value end) emergencyServiceContent,
max(case m.field_code when
'fireRescueCapability' then m.field_value end) fireRescueCapability,
max(case m.field_code when 'responsibilitiesSituation' then
m.field_value end) responsibilitiesSituation,
max(case m.field_code
when 'unitSituation' then m.field_value end) unitSituation
FROM
cb_dynamic_form_instance m GROUP BY m.instance_id) b
<select id="exportToExcel"
resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto">
select
a.unit_name unitName,
a.linkage_unit_type
linkageUnitType,
a.address ,
a.latitude,
a.longitude,
a.agreement_start_date agreementStartDate,
a.agreement_end_date
agreementEndDate,
a.contact_user contactUser,
a.contact_phone
contactPhone,
b.*
from cb_linkage_unit a LEFT JOIN
(SELECT
m.instance_id,
max(case m.field_code when 'emergencyServiceContent' then
m.field_value end) emergencyServiceContent,
max(case m.field_code when
'fireRescueCapability' then m.field_value end) fireRescueCapability,
max(case m.field_code when 'responsibilitiesSituation' then
m.field_value end) responsibilitiesSituation,
max(case m.field_code
when 'unitSituation' then m.field_value end) unitSituation
FROM
cb_dynamic_form_instance m GROUP BY m.instance_id) b
on
b.instance_id=a.instance_id where a.unit_name is not null and a.is_delete=0
</select>
on
b.instance_id=a.instance_id where a.unit_name is not null and a.is_delete=0
</select>
<!--联动单位列表按时间倒叙排列add order by clu.rec_date desc 同时处理单位根节点-1时查询全部数据问题 2021-09-08 by kongfm -->
<!--联动单位列表按时间倒叙排列add order by clu.rec_date desc 同时处理单位根节点-1时查询全部数据问题 2021-09-08 by kongfm -->
<select id="getEmergencyLinkageUnitList"
resultType="java.util.Map">
SELECT
......
......@@ -245,10 +245,10 @@
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1) AS distance,
case when cks_d.count is null then 0 else cks_d.count end as keySiteNum
FROM important_companys a left join (
SELECT cks.belong_id ,count(cks.belong_id) count from cb_key_site cks GROUP BY cks.belong_id
SELECT cks.belong_id ,count(cks.belong_id) count from cb_key_site cks where cks.is_delete=0 GROUP BY cks.belong_id
)cks_d
on a.id=cks_d.belong_id
where a.longitude is not null and a.latitude is not null
where a.longitude is not null and a.latitude is not null
<if test='par.distance!=null'>
and Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1) &lt;=
#{par.distance}
......
......@@ -26,7 +26,8 @@ public class EquipSpecificDto extends BaseEntity {
/**
* 装备分类code(人员装备【10000000】)
*/
private String categoryCode = "10000000";
//private String categoryCode = "10000000";
private String categoryCode;
/**
* 队伍ID
*/
......
package com.yeejoin.amos.boot.module.tzs.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author litw
* @date 2021-09-28.
*/
@Data
public class AlertPaperInfoDto {
@ApiModelProperty(value = "警情id")
private Long alertId;
@ApiModelProperty(value = "所属区域代码")
private String regionCode;
@ApiModelProperty(value = "电梯应急救援识别码")
private Integer rescueCode;
@ApiModelProperty(value = "警情类别code")
private String alarmTypeCode;
@ApiModelProperty(value = "所属区域")
private String area;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "报警时间")
private Date callTime;
@ApiModelProperty(value = "救援倒计时")
private String rescueTime;
@ApiModelProperty(value = "被困人数")
private String trappedNum;
@ApiModelProperty(value = "死亡人数")
private String dieNum;
@ApiModelProperty(value = "受伤人数")
private String injuredNum;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "停留时间")
private String stopTime;
}
......@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author litw
* @date 2021-09-26.
......@@ -17,6 +19,13 @@ public class EsElevatorDto {
*
*/
private static final long serialVersionUID = 1L;
/**
* 电梯id
*/
@ApiModelProperty(value = "电梯id")
private Long sequenceNbr;
/**
* 注册编码
*/
......@@ -83,4 +92,16 @@ public class EsElevatorDto {
@ApiModelProperty(value = "警情id")
private String alertId;
/**
* 是否当天
*/
@ApiModelProperty(value = "是否当天")
private Boolean isToday ;
/**
* 发生时间
*/
@ApiModelProperty(value = "发生时间")
private Date happenTime ;
}
package com.yeejoin.amos.boot.module.tzs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 维保人员DTO
*/
@Data
@ApiModel(value="MainPersonDto", description="维保人员DTO")
public class MainPersonDto {
@ApiModelProperty(value = "维保人员名称")
private String name;
@ApiModelProperty(value = "维保人员电话")
private String telephone;
@ApiModelProperty(value = "维保单位id")
private String orgId;
@ApiModelProperty(value = "警情id")
private String alertId;
@ApiModelProperty(value = "维保单位名称")
private String orgName;
@ApiModelProperty(value = "维保单位地址")
private String orgAddress;
@ApiModelProperty(value = "使用单位地址")
private String unitAddress;
}
package com.yeejoin.amos.boot.module.tzs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 获取微信扫一扫签名信息
*/
@Data
@ApiModel(value="SignatureDto", description="获取微信扫一扫签名信息")
public class SignatureDto {
@ApiModelProperty(value = "时间戳")
private String timestamp;
@ApiModelProperty(value = "随机字符串")
private String noncestr;
@ApiModelProperty(value = "url地址")
private String url;
}
......@@ -48,7 +48,7 @@ public class EsElevator {
/**
* 所属区域代码
*/
@Field(type = FieldType.Text)
@Field(type = FieldType.Text, searchAnalyzer = "ik_max_word", analyzer = "ik_max_word")
private String regionCode;
/**
......
......@@ -62,10 +62,13 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
String alertStage,
String alertStatus,
String address);
Map<String, Integer> getTodayEmergencyCount();
Map<String, Integer> getTodayEmergencyCount(String regionCode);
Map<String, Integer> getImportantEventCount();
Map<String, Integer> getImportantEventDetail();
Map<String, Integer> getImportantEventCount(String regionCode);
List<Map<String, Object>> getImportantEventDetail(String type,String regionCode);
List<Map<String, Object>> getTodayEmergencyDetail(String rescueTotal,String rescueComplete, String regionCode);
}
package com.yeejoin.amos.boot.module.tzs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tzs.api.dto.MainPersonDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskListDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchTask;
......@@ -22,4 +23,6 @@ public interface DispatchTaskMapper extends BaseMapper<DispatchTask> {
WechatMyTaskDto getTaskInfoByTaskId(@Param("taskId") Long taskId);
List<WechatMyTaskListDto> getTaskListByPhonePager(@Param("phone") String phone,@Param("typeCode") String typeCode, @Param("current") Long current);
List<MainPersonDto> todayTaskPerson();
}
......@@ -63,4 +63,6 @@ public interface IAlertCalledService {
AlertHandlerDto getHandlerInfo(String alertId);
Object getCalledInfo();
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.tzs.api.service;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.MainPersonDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatDispatchFeedbackDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMessageDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto;
......@@ -42,4 +43,8 @@ public interface IDispatchTaskService {
* @return
*/
WechatMessageDto getWechatMessageDtoByDispatchTaskDto(DispatchTaskDto dispatchTaskDto);
List<MainPersonDto> todayTaskPerson();
}
......@@ -260,12 +260,12 @@
<select id="getTodayEmergencyCount" resultType="java.util.Map">
SELECT
COUNT(alarm_type_code = '960') as sleepyTncidentTotal,
COUNT(tz.alarm_type_code = '960') as sleepyTncidentTotal,
sum(
CASE
WHEN
alarm_type_code = '960'
AND alert_stage_code IN ('861', '862')
tz.alarm_type_code = '960'
AND alert_stage_code IN ('860','861', '862')
THEN
1
ELSE
......@@ -274,9 +274,9 @@
) as rescueTotal ,
sum(
CASE
WHEN alarm_type_code = '960'
WHEN tz.alarm_type_code = '960'
AND
alert_stage_code in
tz.alert_stage_code in
('864','865','866') THEN
1
ELSE
......@@ -285,45 +285,147 @@
) as
rescueComplete
FROM
tz_alert_called where is_delete=0
tz_alert_called tz left join tcb_elevator el on tz.equipment_id = el.sequence_nbr where tz.is_delete=0
and tz.call_time >= (select current_date())
and (select date_add(current_date(), interval 1 day)) >= tz.call_time
<if test="regionCode != null and regionCode != ''">
AND el.region_code like CONCAT(CONCAT('%',#{regionCode}),'%')
</if>
</select>
<select id="getImportantEventCount" resultType="java.util.Map">
select count(1) as importantEventCount from (
SELECT
count(afv.alert_called_id) as importantEventCount
ac.*
FROM
tz_alert_called ac
LEFT JOIN (
INNER JOIN (
SELECT
*
alert_called_id
FROM
tz_alert_form_value
WHERE
tz_alert_form_value.field_value IS NOT NULL
AND tz_alert_form_value.field_value != ''
AND field_code IN ('injured_num', 'die_num')
AND tz_alert_form_value.field_value != '0'
AND field_code IN ('injured_num', 'die_num')
and tz_alert_form_value.is_delete=0
group by alert_called_id
) afv ON ac.sequence_nbr = afv.alert_called_id
WHERE
ac.alarm_type_code = '960' and ac.is_delete=0
) tzs left join tcb_elevator te on tzs.equipment_id = te.sequence_nbr
where 1=1
and tzs.call_time >= (select current_date())
and (select date_add(current_date(), interval 1 day)) >= tzs.call_time
<if test="regionCode != null and regionCode != ''">
AND te.region_code like CONCAT(CONCAT('%',#{regionCode}),'%')
</if>
</select>
<select id="getImportantEventDetail" resultType="java.util.Map">
select tzs.contact_phone,tzs.rec_user_name,
tzs.type,tzs.emergency_person,tzs.alarm_type,tzs.alert_source,tzs.address,
tzs.device_id,tzs.contact_user,tzs.alarm_type_code,tzs.sequence_nbr,date_format(tzs.call_time,"%Y-%m-%d %H:%i:%S") call_time,
tzs.rec_user_id,tzs.registration_code,tzs.emergency_call,tzs.type_code,tzs.equipment_id
,te.latitude ,te.region_code ,te.longitude,tzs.injured from (
SELECT
ac.*
ac.*,'有伤亡' as injured
FROM
tz_alert_called ac
LEFT JOIN (
INNER JOIN (
SELECT
*
alert_called_id
FROM
tz_alert_form_value
WHERE
tz_alert_form_value.field_value IS NOT NULL
AND tz_alert_form_value.field_value != ''
AND field_code IN ('injured_num', 'die_num')
AND tz_alert_form_value.field_value != '0'
AND field_code IN ('injured_num', 'die_num')
and tz_alert_form_value.is_delete=0
group by alert_called_id
) afv ON ac.sequence_nbr = afv.alert_called_id
WHERE
ac.alarm_type_code = '960' and ac.is_delete=0
) tzs left join tcb_elevator te on tzs.equipment_id = te.sequence_nbr
where 1=1
and tzs.call_time >= (select current_date())
and (select date_add(current_date(), interval 1 day)) >= tzs.call_time
<if test="regionCode != null and regionCode != ''">
AND te.region_code like CONCAT(CONCAT('%',#{regionCode}),'%')
</if>
</select>
<select id="getTodayEmergencyDetail" resultType="java.util.Map">
select tzs.contact_phone,tzs.rec_user_name,
tzs.type,tzs.emergency_person,tzs.alarm_type,tzs.alert_source,tzs.address,
tzs.device_id,tzs.contact_user,tzs.alarm_type_code,tzs.sequence_nbr,date_format(tzs.call_time,"%Y-%m-%d %H:%i:%S") call_time,
tzs.rec_user_id,tzs.registration_code,tzs.emergency_call,tzs.type_code,tzs.equipment_id
,te.latitude ,te.region_code ,te.longitude,tzs.injured from (
SELECT
ac.*,'有伤亡' as injured
FROM
tz_alert_called ac
INNER JOIN (
SELECT
alert_called_id
FROM
tz_alert_form_value
WHERE
tz_alert_form_value.field_value IS NOT NULL
AND tz_alert_form_value.field_value != ''
AND field_code IN ('injured_num', 'die_num')
and tz_alert_form_value.is_delete=0
group by alert_called_id
) afv ON ac.sequence_nbr = afv.alert_called_id
WHERE
ac.alarm_type_code = '960' and ac.is_delete=0
) tzs left join tcb_elevator te on tzs.equipment_id = te.sequence_nbr
where 1=1
and tzs.call_time >= (select current_date())
and (select date_add(current_date(), interval 1 day)) >= tzs.call_time
<if test="regionCode != null and regionCode != ''">
AND te.region_code like CONCAT(CONCAT('%',#{regionCode}),'%')
</if>
<if test="rescueTotal != null and rescueTotal != ''">
AND tzs.alert_stage_code in ('861','862')
</if>
<if test="rescueComplete != null and rescueComplete != ''">
AND tzs.alert_stage_code in ('864','865','866')
</if>
union all
select tzs.contact_phone,tzs.rec_user_name,
tzs.type,tzs.emergency_person,tzs.alarm_type,tzs.alert_source,tzs.address,
tzs.device_id,tzs.contact_user,tzs.alarm_type_code,tzs.sequence_nbr,date_format(tzs.call_time,"%Y-%m-%d %H:%i:%S") call_time,
tzs.rec_user_id,tzs.registration_code,tzs.emergency_call,tzs.type_code,tzs.equipment_id
,te.latitude ,te.region_code ,te.longitude,tzs.injured from (
select *,'无伤亡' as injured from tz_alert_called where sequence_nbr not in (
SELECT
alert_called_id
FROM
tz_alert_form_value
WHERE
tz_alert_form_value.field_value IS NOT NULL
AND tz_alert_form_value.field_value != ''
AND field_code IN ('injured_num', 'die_num')
and tz_alert_form_value.is_delete=0
group by alert_called_id
)
) tzs left join tcb_elevator te on tzs.equipment_id = te.sequence_nbr
where 1=1
and tzs.call_time >= (select current_date())
and (select date_add(current_date(), interval 1 day)) >= tzs.call_time
<if test="regionCode != null and regionCode != ''">
AND te.region_code like CONCAT(CONCAT('%',#{regionCode}),'%')
</if>
<if test="rescueTotal != null and rescueTotal != ''">
AND tzs.alert_stage_code in ('861','862')
</if>
<if test="rescueComplete != null and rescueComplete != ''">
AND tzs.alert_stage_code in ('864','865','866')
</if>
</select>
</mapper>
......
......@@ -86,5 +86,20 @@
limit #{current},5
</select>
<select id="todayTaskPerson" resultType="com.yeejoin.amos.boot.module.tzs.api.dto.MainPersonDto">
select
t.response_user_name as name,
t.response_user_tel as telephone,
t.response_org_id as orgId,
t.response_org_name as orgName,
t.alert_id as alertId,
m.address as orgAddress,
u.address as unitAddress
from tz_dispatch_task t
left JOIN cb_maintenance_unit m on m.sequence_nbr = t.response_org_id
left JOIN tcb_use_unit u on u.sequence_nbr = t.response_org_id
where to_days(t.dispatch_time) = TO_DAYS(now())
</select>
</mapper>
......@@ -9,6 +9,8 @@
tcb_rescue_station.address,
tcb_rescue_station.rescue_leader_id,
tcb_rescue_station.rescue_leader,
tcb_rescue_station.longitude,
tcb_rescue_station.latitude,
tcb_rescue_station.rescue_leader_phone,
(
ACOS(
......
......@@ -144,7 +144,7 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
IPage<FailureDetailsDto> iPage = new Page<>();
iPage.setRecords(list);
iPage.setTotal(list.size());
iPage.setTotal(baseMapper.selectAllCount());
return iPage;
}
......
......@@ -171,6 +171,13 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
String[] split = sort!=null? sort.split(","):null;
String data = split!=null? RedisKey.humpToLine(split[0]):null;
/*2407 【web】日常值班>警情记录>接警记录,表头排序功能失效 chenzhao 09-28 start*/
if (data != null ) {
if (data.equals("alertType") || data.equals("alertSource") || data.equals("alarmType")) {
data = data + "Code";
}
}
/*2407 【web】日常值班>警情记录>接警记录,表头排序功能失效 chenzhao 09-28 end*/
String lift =split!=null?split[1]:null;
List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus, alertTypeCode, alertSourceCode, startTime, endTime,data,lift);
......@@ -244,6 +251,7 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
alertFormValuelist.stream().forEach(alertFormValue -> {
if(alertFormValue.getFieldCode().equals("responseLevel")){
alertCalled.setResponseLevelCode(alertFormValue.getFieldValueCode());
alertCalled.setResponseLevel(alertFormValue.getFieldValue());
}
});
}
......
......@@ -642,6 +642,11 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
String[] employeeHierarchy = item.getHighestEducation().split("@");
firefightersEducation.setHighestEducation(employeeHierarchy[1]);
}
if (item.getAcademicDegree()!= null) {
String[] employeeHierarchy = item.getAcademicDegree().split("@");
firefightersEducation.setAcademicDegree(employeeHierarchy[1]);
}
iFirefightersPostService.save(firefightersPost);
ifirefightersEducationService.save(firefightersEducation);
ifirefightersWorkexperienceService.save(firefightersWorkexperience);
......
......@@ -158,7 +158,7 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
// 3.消防队伍-监控大队
List<FireBrigadeResourceDto> monitorFireBrigadeList1 = fireTeamService.listMonitorFireBrigade(FireBrigadeTypeEnum.医疗救援队.getCode());
FireBrigadeResourceDto monitorResourceDto1 = new FireBrigadeResourceDto();
monitorResourceDto1.setId("0");
monitorResourceDto1.setId("-1");
monitorResourceDto1.setName(FireBrigadeTypeEnum.医疗救援队.getName());
monitorResourceDto1.setType(FireBrigadeTypeEnum.医疗救援队.getKey());
monitorResourceDto1.setChildren(monitorFireBrigadeList1);
......
......@@ -17,6 +17,7 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCallInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledObjsDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertPaperInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.ESAlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.ESAlertCalledRequestDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertCalled;
......@@ -92,6 +93,9 @@ public class AlertCalledController extends BaseController {
@Autowired
WechatRelationServiceImpl wechatRelationService;
@Autowired
ElevatorServiceImpl elevatorService;
/**
* 新增警情接警填报记录
*
......@@ -155,6 +159,39 @@ public class AlertCalledController extends BaseController {
return ResponseHelper.buildResponse(alertCalledDtoReturn);
}
/**
* 警情信息
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getAlertInfo")
@ApiOperation(httpMethod = "GET", value = "警情信息", notes = "警情信息")
public ResponseModel<AlertPaperInfoDto> getAlertInfo(@RequestParam Long alertId
) {
AlertCalled alertCalled = iAlertCalledService.getById(alertId);
AlertPaperInfoDto alertPaperInfoDto = new AlertPaperInfoDto();
alertPaperInfoDto.setAlertId(alertCalled.getSequenceNbr());
iAlertCalledService.selectAlertCalledByIdNew(alertPaperInfoDto);
LambdaQueryWrapper<Elevator> queryWrapper1= new LambdaQueryWrapper<>();
queryWrapper1.eq(Elevator::getSequenceNbr,alertCalled.getEquipmentId());
Elevator elevator = elevatorService.getOne(queryWrapper1);
alertPaperInfoDto.setArea(elevator.getProvince() + elevator.getCity() + elevator.getDistrict());
alertPaperInfoDto.setAddress(alertCalled.getAddress());
alertPaperInfoDto.setCallTime(alertCalled.getCallTime());
alertPaperInfoDto.setLatitude(elevator.getLatitude());
alertPaperInfoDto.setLongitude(elevator.getLongitude());
alertPaperInfoDto.setAlarmTypeCode(alertCalled.getAlarmTypeCode());
alertPaperInfoDto.setRegionCode(elevator.getRegionCode());
alertPaperInfoDto.setRescueCode(elevator.getRescueCode());
return ResponseHelper.buildResponse(alertPaperInfoDto);
}
/**
*
* <pre>
......@@ -458,21 +495,21 @@ public class AlertCalledController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getTodayEmergencyCount")
@ApiOperation(httpMethod = "GET", value = "今日应急统计", notes = "今日应急统计")
public ResponseModel<Object> getTodayEmergencyCount() {
return ResponseHelper.buildResponse(iAlertCalledService.getTodayEmergencyCount());
}
/**
* 重大事件
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getImportantEventCount")
@ApiOperation(httpMethod = "GET", value = "重要大事件统计", notes = "重要大事件统计")
public ResponseModel<Object> getImportantEventCount() {
return ResponseHelper.buildResponse(iAlertCalledService.getImportantEventCount());
public ResponseModel<Object> getTodayEmergencyCount(@RequestParam String regionCode) {
return ResponseHelper.buildResponse(iAlertCalledService.getTodayEmergencyCount(regionCode));
}
//
// /**
// * 重大事件
// */
// @TycloudOperation(ApiLevel = UserType.AGENCY)
// @GetMapping(value = "/getImportantEventCount")
// @ApiOperation(httpMethod = "GET", value = "重要大事件统计", notes = "重要大事件统计")
// public ResponseModel<Object> getImportantEventCount() {
// return ResponseHelper.buildResponse(iAlertCalledService.getImportantEventCount());
//
// }
/**
* 获取重大事件或者今日应急的统计详情信息
......@@ -480,8 +517,8 @@ public class AlertCalledController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getImportantEventOrTodayEmergencyCount")
@ApiOperation(httpMethod = "GET", value = "重要大事件统计", notes = "重要大事件统计")
public ResponseModel<Object> getImportantEventOrTodayEmergencyCount(@RequestParam String type) {
return ResponseHelper.buildResponse(iAlertCalledService.getImportantEventOrTodayEmergencyCount(type));
public ResponseModel<Object> getImportantEventOrTodayEmergencyCount(@RequestParam String type,@RequestParam String regionCode) {
return ResponseHelper.buildResponse(iAlertCalledService.getImportantEventOrTodayEmergencyCount(type,regionCode));
}
......@@ -495,4 +532,15 @@ public class AlertCalledController extends BaseController {
public ResponseModel<Object> getHandlerInfo(@RequestParam String alertId) {
return ResponseHelper.buildResponse(iAlertCalledService.getHandlerInfo(alertId));
}
/**
* 获取接警未派遣事件
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getCalledInfo")
@ApiOperation(httpMethod = "GET", value = "获取接警未派遣事件", notes = "获取接警未派遣事件")
public ResponseModel<Object> getCalledInfo() {
return ResponseHelper.buildResponse(iAlertCalledService.getCalledInfo());
}
}
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.tzs.biz.controller;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.module.tzs.api.dto.MainPersonDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatDispatchFeedbackDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -98,4 +99,16 @@ public class DispatchTaskController extends BaseController {
public ResponseModel<WechatMyTaskDto> saveWechatFeedBack(@RequestBody WechatDispatchFeedbackDto model) {
return ResponseHelper.buildResponse(dispatchTaskServiceImpl.saveWechatFeedBack(model));
}
/**
* 查找当日派遣人员信息
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "查找当日派遣人员信息", notes = "查找当日派遣人员信息")
@GetMapping(value = "/list/todayTaskPerson")
public ResponseModel<List<MainPersonDto>> todayTaskPerson() {
List<MainPersonDto> list = dispatchTaskServiceImpl.todayTaskPerson();
return ResponseHelper.buildResponse(list);
}
}
package com.yeejoin.amos.boot.module.tzs.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.feign.AmosFeignService;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
......@@ -13,6 +15,7 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.ElevatorMaintenanceInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.ElevatorNewDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.ElevatorTestInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.EsElevatorDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchTask;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.entity.MaintainInfo;
import com.yeejoin.amos.boot.module.tzs.api.entity.TestInfo;
......@@ -22,19 +25,23 @@ import com.yeejoin.amos.boot.module.tzs.biz.service.impl.ElevatorServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.MaintainInfoServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.TestInfoServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.utils.BeanDtoVoUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
......@@ -42,6 +49,7 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
......@@ -77,6 +85,12 @@ public class ElevatorController extends BaseController {
@Autowired
ESElevatorServiceImpl esElevatorService;
@Autowired
private EmqKeeper emqKeeper;
@Value("${mqtt.topic.elevator.push}")
private String elevatorpushTopic;
/**
* 新增电梯
*
......@@ -356,7 +370,7 @@ public class ElevatorController extends BaseController {
public void init() {
IPage<Elevator> elevatorPage = new Page<>();
Integer count = elevatorService.count();
for(int i = 0; i <= count % 500 ; i ++ ) {
for(int i = 0; i <= 2 ; i ++ ) {
elevatorPage.setCurrent(i);
elevatorPage.setSize(500);
elevatorPage = elevatorService.page(elevatorPage);
......@@ -369,20 +383,55 @@ public class ElevatorController extends BaseController {
/**
* ES分页查询电梯信息
* ES查询电梯信息
*
* @param current 当前页
* @param size 每页大小
* @param elevatorDto 查询参数
* @return 查询结果
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/query_elevator_list_es", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "ES分页查询电梯信息", notes = "ES分页查询电梯信息")
public ResponseModel<IPage<EsElevatorDto>> queryElevatorListEs(@RequestParam(value = "current") int current, @RequestParam(value = "size") int size,
@ApiOperation(httpMethod = "POST", value = "ES查询电梯信息", notes = "ES查询电梯信息")
public ResponseModel<List<EsElevatorDto>> queryElevatorListEs(
@RequestBody EsElevatorDto elevatorDto){
Page<EsElevatorDto> page = esElevatorService.queryByKeys(elevatorDto,current,size);
List<EsElevatorDto> page = esElevatorService.queryByKeys(elevatorDto);
return ResponseHelper.buildResponse(page);
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr sequenceNbr
* @return 返回结果
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/pushInfo/{sequenceNbr}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据电梯id 给主屏推送电梯信息", notes = "根据电梯id 给主屏推送电梯信息")
public ResponseModel<Boolean> pushElevatorInfo(@PathVariable Long sequenceNbr) {
ElevatorDto elevator = elevatorService.selectBySeq(sequenceNbr);
AgencyUserModel user =getUserInfo();
// 推送经纬度 人员姓名 电话 警情id
JSONObject jsonObject = new JSONObject();
jsonObject.put("userId",user.getUserId());
jsonObject.put("elevatorId",elevator.getSequenceNbr());
jsonObject.put("rescueCode",elevator.getRescueCode());
jsonObject.put("registerCode",elevator.getRegisterCode());
jsonObject.put("address",elevator.getAddress());
jsonObject.put("useUnit",elevator.getUseUnit());
jsonObject.put("useStatus",elevator.getUseStatus());
jsonObject.put("useSiteCategory",elevator.getUseSiteCategory());
jsonObject.put("city",elevator.getCity());
jsonObject.put("district",elevator.getDistrict());
try {
emqKeeper.getMqttClient().publish(elevatorpushTopic, jsonObject.toString().getBytes("UTF-8"), 1, false);
} catch (MqttException e) {
logger.error("mqtt发送失败" +jsonObject );
} catch (UnsupportedEncodingException e) {
logger.error("mqtt发送失败" +jsonObject );
}
return ResponseHelper.buildResponse(true);
}
}
......@@ -30,6 +30,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Arrays;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
/**
......@@ -241,5 +243,29 @@ public class RescueStationController extends BaseController {
return ResponseHelper.buildResponse(iRescueStationService.getListByLatLonDistance(latitude,longitude,distance));
}
/**
* 根据警情id和距离返回救援机构信息
* @param alertId
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/alert/{alertId}/distance", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据警情id和距离返回5个救援机构信息", notes = "根据警情id和距离返回5个救援机构信息")
public ResponseModel<Object> selectByAlertIdDistance(@PathVariable Long alertId) {
// 获取根据警情获取电梯信息
Elevator elevator = elevatorServiceImpl.selectByAlertId(alertId);
String longitude = elevator.getLongitude();
String latitude = elevator.getLatitude();
// 根据经纬度和距离返回救援机构信息
List<RescueStationDto> rescueStationDtos = new LinkedList<>();
List<RescueStationDto> list = iRescueStationService.getListByLatLonDistance(latitude,longitude,1000);
if(list.size() > 5) {
for(int i = 0 ; i < 5 ; i ++ ) {
rescueStationDtos.add(list.get(i));
}
}
return ResponseHelper.buildResponse(list.size() > 5 ? rescueStationDtos: list);
}
}
......@@ -9,6 +9,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.service.ISourceFileService;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledFormDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.SignatureDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatAccessDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMessageDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto;
......@@ -37,6 +38,9 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
......@@ -48,6 +52,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
......@@ -62,8 +67,10 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
......@@ -77,6 +84,8 @@ import java.util.Map;
@RequestMapping(value = "/wechatBack")
public class WechatController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(WechatController.class);
private long time = 600l;
@Value("${tzs.wechat.token}")
......@@ -85,6 +94,10 @@ public class WechatController extends BaseController {
@Value("${tzs.wechat.ticketurl}")
private String WECHAT_TICKETURL;
@Autowired
private EmqKeeper emqKeeper;
@Value("${mqtt.topic.task.personinfo}")
private String personInfoTopic;
@Autowired
RedisUtils redisUtils;
......@@ -136,35 +149,65 @@ public class WechatController extends BaseController {
}
}
/**
* 获取微信签名
* @param timestamp
* @param noncestr
* @param url
* @return
*/
@TycloudOperation(ApiLevel = UserType.ANONYMOUS , needAuth = false)
@GetMapping(value = "/getSignature")
@ApiOperation(httpMethod = "GET", value = "获取微信签名", notes = "获取微信签名")
public String getSignature(@RequestParam String timestamp,@RequestParam String noncestr,@RequestParam String url) {
@PostMapping(value = "/getSignature")
@ApiOperation(httpMethod = "POST", value = "获取微信签名", notes = "获取微信签名")
public ResponseModel<String> getSignature(@RequestBody SignatureDto signatureDto) {
List<String> params = new ArrayList<String>();
try {
if(!redisUtils.hasKey(RedisKey.WECHAT_TOKEN)){
throw new BadRequest("token不存在或已失效");
}
String token = redisUtils.get(RedisKey.WECHAT_TOKEN).toString();
String result = HttpUtils.doGet(WECHAT_TICKETURL+token+"&type=jsapi");
JSONObject jsonObject = JSONObject.parseObject(result);
String ticket = jsonObject.get("ticket").toString();
String ticket = null;
if(redisUtils.hasKey(RedisKey.WECHAT_JS_TOKEN)) {
ticket = redisUtils.get(RedisKey.WECHAT_JS_TOKEN).toString();
} else {
if(!redisUtils.hasKey(RedisKey.WECHAT_TOKEN)){
this.getAccessToken();
}
String token = redisUtils.get(RedisKey.WECHAT_TOKEN).toString();
String result = HttpUtils.doGet(WECHAT_TICKETURL+token+"&type=jsapi");
JSONObject jsonObject = JSONObject.parseObject(result);
ticket = jsonObject.get("ticket").toString();
redisUtils.set(RedisKey.WECHAT_JS_TOKEN,ticket, 600l);
}
params.add("jsapi_ticket="+ticket);
params.add(noncestr);
params.add(timestamp);
params.add(url);
Collections.sort(params);
params.add("noncestr=" + signatureDto.getNoncestr());
params.add("timestamp=" + signatureDto.getTimestamp());
params.add("url=" + signatureDto.getUrl());
logger.error("jsapi_ticket="+ticket);
logger.error("noncestr=" + signatureDto.getNoncestr());
logger.error("timestamp=" + signatureDto.getTimestamp());
logger.error("url=" + signatureDto.getUrl());
Collections.sort(params, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
char[] chars1=o1.toCharArray();
char[] chars2=o2.toCharArray();
int i=0;
while(i<chars1.length && i<chars2.length){
if(chars1[i]>chars2[i]){
return 1;
}else if(chars1[i]<chars2[i]){
return -1;
}else{
i++;
}
}
if(i==chars1.length){ //o1到头
return -1;
}
if(i== chars2.length){ //o2到头
return 1;
}
return 0;
}
});
String tokenStr = StringUtils.join(params,"&");
logger.error(tokenStr);
tokenStr = DigestUtils.sha1Hex(tokenStr);
return tokenStr;
return ResponseHelper.buildResponse(tokenStr);
} catch (Exception e) {
throw new BadRequest(e.getMessage());
}
......@@ -359,6 +402,23 @@ public class WechatController extends BaseController {
|| ValidationUtil.isEmpty(dto.getLongitude())){
throw new BadRequest("参数校验失败.");
}
// 推送经纬度 人员姓名 电话 警情id
JSONObject jsonObject = new JSONObject();
DispatchTask task = dispatchTaskServiceImpl.getById(dto.getTaskId());
jsonObject.put("personName",task.getResponseUserName());
jsonObject.put("personTel",task.getResponseUserTel());
jsonObject.put("latitude",dto.getLatitude());
jsonObject.put("longitude",dto.getLongitude());
jsonObject.put("alertId",task.getAlertId());
try {
emqKeeper.getMqttClient().publish(personInfoTopic, jsonObject.toString().getBytes("UTF-8"), 1, false);
} catch (MqttException e) {
logger.error("mqtt发送失败" +jsonObject );
} catch (UnsupportedEncodingException e) {
logger.error("mqtt发送失败" +jsonObject );
}
String distance = dispatchTaskService.returnDistanceByTaskId(dto.getTaskId(),dto.getLongitude(),dto.getLatitude());
return ResponseHelper.buildResponse(distance);
}
......
......@@ -18,6 +18,7 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledObjsDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertHandlerDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertHandlerInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertPaperInfoDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.FormValue;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertCalled;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertFormValue;
......@@ -43,7 +44,6 @@ import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -139,6 +139,28 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
}
}
public void selectAlertCalledByIdNew(AlertPaperInfoDto alertCalled) {
// 警情基本信息
LambdaQueryWrapper<AlertFormValue> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AlertFormValue::getAlertCalledId, alertCalled.getAlertId());
// 警情动态表单数据
List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper);
if(list!=null&&list.size()>0) {
for (AlertFormValue alertFormValue : list) {
if(alertFormValue.getFieldCode().equals("trapped_num")) {
alertCalled.setTrappedNum(alertFormValue.getFieldValue());
}
if(alertFormValue.getFieldCode().equals("injured_num")) {
alertCalled.setInjuredNum(alertFormValue.getFieldValue());
}
if(alertFormValue.getFieldCode().equals("die_num")) {
alertCalled.setDieNum(alertFormValue.getFieldValue());
}
}
}
}
@Override
public AlertCalledFormDto selectAlertCalledByIdNoCache(Long id) {
// 警情基本信息
......@@ -258,8 +280,8 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
if(null == called) {
throw new BadRequest("警情不存在");
}
map.put("接警",called.getCallTime());
map.put("上报",called.getRecDate());
map.put("answerThePolice",called.getCallTime());
map.put("report",called.getRecDate());
LambdaQueryWrapper<DispatchPaper> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(DispatchPaper::getAlertId,Long.valueOf(alertId));
......@@ -278,9 +300,9 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
if(null != dispatchTask &&dispatchTask.size() > 0 ) {
List<DispatchTask> taskList = dispatchTask.stream().filter(e->e.getOrgType().equals(s)).collect(Collectors.toList());
if(taskList.size() > 0) {
map.put("派遣/通知",called.getRecDate());
map.put("到达",dispatchTask.get(0).getArriveTime());
map.put("完成",dispatchTask.get(0).getSaveTime());
map.put("notice",called.getRecDate());
map.put("arrive",dispatchTask.get(0).getArriveTime());
map.put("complete",dispatchTask.get(0).getSaveTime());
dataInit(alertHandlerInfoDto,s,"", "","已派遣",
dispatchTask.get(0).getArriveTime() == null ? "" : "已到达" ,dispatchTask.get(0).getSaveTime() == null ? "" : "已完成",
dispatchPaper.getFeedbackTime() != null || dispatchPaper.getFeedbackFinishTime() != null ? "已回访" : "");
......@@ -290,7 +312,7 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
}
list.add(alertHandlerInfoDto);
}
map.put("回访",dispatchPaper.getFeedbackTime());
map.put("returnVisit",dispatchPaper.getFeedbackTime());
} else {
for(String s:str) {
AlertHandlerInfoDto alertHandlerInfoDto = new AlertHandlerInfoDto();
......@@ -303,6 +325,14 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
return alertHandlerDto;
}
@Override
public Object getCalledInfo() {
LambdaQueryWrapper<AlertCalled> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(AlertCalled::getAlertStageCode,"860");
Object list = this.list(queryWrapper);
return list;
}
private void dataInit(AlertHandlerInfoDto alertHandlerInfoDto, String process,String answerThePolice, String report, String notice, String arrive, String complete,String returnVisit) {
alertHandlerInfoDto.setProcess(process);
alertHandlerInfoDto.setAnswerThePolice(answerThePolice);
......@@ -363,6 +393,10 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
alertCalled.setAlertStageCode(AlertStageEnums.JJ.getId());
alertCalled.setType(AlertStageEnums.JQCB.getValue());
alertCalled.setTypeCode(AlertStageEnums.JQCB.getId());
LambdaQueryWrapper<Elevator> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Elevator::getRescueCode,alertCalled.getDeviceId());
Elevator elevator = iElevatorService.getOne(queryWrapper);
alertCalled.setEquipmentId(elevator.getSequenceNbr());
this.save(alertCalled);
// 动态表单
......@@ -495,27 +529,56 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
return result;
}
public Object getTodayEmergencyCount() {
return alertCalledMapper.getTodayEmergencyCount();
}
public Object getImportantEventCount() {
return alertCalledMapper.getImportantEventCount();
public Object getTodayEmergencyCount(String regionCode) {
Map<String,Integer> map = alertCalledMapper.getTodayEmergencyCount(regionCode);
Map<String,Integer> map1 = alertCalledMapper.getImportantEventCount(regionCode);
map.put("importantEventCount",map1.get("importantEventCount"));
return map;
}
public Object getImportantEventOrTodayEmergencyCount(String type) {
List<Map<String, Object>> map=null;
LambdaQueryWrapper<AlertCalled> queryWrapper=new LambdaQueryWrapper<AlertCalled>();
queryWrapper.eq(AlertCalled::getIsDelete, 0);
queryWrapper.eq(AlertCalled::getAlarmTypeCode, "960");
if("rescueTotal".equals(type)) {
queryWrapper.in(AlertCalled::getAlertStageCode,Arrays.asList("861","862"));
}else if("rescueComplete".equals(type)) {
queryWrapper.in(AlertCalled::getAlertStageCode,Arrays.asList("864","865","866"));
}
// public Object getImportantEventCount() {
// return
// }
public Object getImportantEventOrTodayEmergencyCount(String type,String regionCode) {
// List<Map<String, Object>> map=null;
// List<Map<String, Object>> map1= new LinkedList<>();
// LambdaQueryWrapper<AlertCalled> queryWrapper=new LambdaQueryWrapper<AlertCalled>();
// queryWrapper.eq(AlertCalled::getIsDelete, 0);
// queryWrapper.eq(AlertCalled::getAlarmTypeCode, "960");
// if("rescueTotal".equals(type)) {
// queryWrapper.in(AlertCalled::getAlertStageCode,Arrays.asList("861","862"));
// }else if("rescueComplete".equals(type)) {
// queryWrapper.in(AlertCalled::getAlertStageCode,Arrays.asList("864","865","866"));
// }
if("importantEventCount".equals(type)) {
return alertCalledMapper.getImportantEventDetail();
}
return this.baseMapper.selectMaps(queryWrapper);
}
return alertCalledMapper.getImportantEventDetail(type,regionCode);
} else {
if("rescueTotal".equals(type)) {
return alertCalledMapper.getTodayEmergencyDetail(type,null,regionCode);
} else if("rescueComplete".equals(type)) {
return alertCalledMapper.getTodayEmergencyDetail(null,type,regionCode);
} else {
return alertCalledMapper.getTodayEmergencyDetail(null,null,regionCode);
}
}
// for (Map<String,Object> m: map
// ) {
// LambdaQueryWrapper<Elevator> queryWrapper1=new LambdaQueryWrapper<>();
// queryWrapper1.eq(Elevator::getIsDelete, 0);
// queryWrapper1.eq(Elevator::getSequenceNbr, m.get("equipment_id"));
// Elevator elevator = iElevatorService.getOne(queryWrapper1);
// m.put("injured","无伤亡");
// if(null != elevator) {
// m.put("longitude",elevator.getLongitude());
// m.put("latitude",elevator.getLatitude());
// m.put("regionCode",elevator.getRegionCode());
//
// if(elevator.getRegionCode().contains(regionCode)) {
// map1.add(m);
// }
// }
// }
}
}
\ No newline at end of file
......@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.common.api.service.ISourceFileService;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchPaperFormDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.MainPersonDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.RescueProcessDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatDispatchFeedbackDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMessageDto;
......@@ -449,26 +450,40 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
// 根据警情分类 封装MessageDto
AlertCalled alertCalled = alertCalledServiceImpl.getById(dispatchTaskDto.getAlertId());
Map<String,String> data = new HashMap<>();
data.put("address",alertCalled.getAddress());
data.put("dispatchTime", DateUtils.date2LongStr(dispatchTaskDto.getDispatchTime()));
if(AlertStageEnums.KRJY.getId().equals(dispatchTaskDto.getAlertCode())) {
temp.setTemplateId(KRJY_TEMPID);
temp.setUrl(KRJY_URL);
temp.setUrl(KRJY_URL+ "?id=" + dispatchTaskDto.getSequenceNbr());
data.put("first","电梯困人任务已派遣,请尽快前往救援!");
data.put("keyword1",alertCalled.getAddress());
data.put("keyword2", DateUtils.date2LongStr(dispatchTaskDto.getDispatchTime()));
data.put("keyword3", alertCalled.getEmergencyCall());
data.put("remark", "请在收到任务后30分钟内到达人员被困位置进行救援!");
temp.setData(data);
} else if(AlertStageEnums.GZWX.getId().equals(dispatchTaskDto.getAlertCode())) {
temp.setTemplateId(WX_TEMPID);
temp.setUrl(WX_URL);
temp.setUrl(WX_URL + "?id=" + dispatchTaskDto.getSequenceNbr());
data.put("first","故障维修任务已派遣,请尽快前往救援!");
data.put("keyword1","故障维修");
data.put("keyword2", "电梯故障");
data.put("keyword3", alertCalled.getEmergencyPerson());
data.put("keyword4", alertCalled.getEmergencyCall());
data.put("keyword5", DateUtils.date2LongStr(dispatchTaskDto.getDispatchTime()));
data.put("remark", "任务已派遣,请尽快前往处置!");
temp.setData(data);
} else if(AlertStageEnums.TSZX.getId().equals(dispatchTaskDto.getAlertCode())) {
temp.setTemplateId(TS_TEMPID);
temp.setUrl(TS_URL);
temp.setUrl(TS_URL+ "?id=" + dispatchTaskDto.getSequenceNbr());
temp.setData(data);
}
return temp;
}
@Override
public List<MainPersonDto> todayTaskPerson() {
return baseMapper.todayTaskPerson();
}
@Transactional
@Override
public Boolean createDispatchTask(DispatchTaskDto dispatchTaskDto, AgencyUserModel sendUser) {
......@@ -587,6 +602,7 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
// 发送任务单
WechatRelation temp = wechatRelationServiceImpl.getOne(new LambdaQueryWrapper<WechatRelation>().eq(WechatRelation::getPhone,dispatchTaskDto.getResponseUserTel()));
if(temp != null && temp.getOpenId() != null) {
dispatchTaskDto.setSequenceNbr(dispatchTask.getSequenceNbr());
WechatMessageDto dto = this.getWechatMessageDtoByDispatchTaskDto(dispatchTaskDto);
wechatService.sendWechatModelMessage(temp.getOpenId() , dto);
}
......
......@@ -2,7 +2,6 @@ package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.tzs.api.dto.EsElevatorDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertCalled;
......@@ -13,7 +12,6 @@ import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
......@@ -25,6 +23,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
/**
*
......@@ -69,8 +68,10 @@ public class ESElevatorServiceImpl {
esElevator.setCity(elevator.getCity());
esElevator.setDistrict(elevator.getDistrict());
esElevator.setLatitude(elevator.getLatitude());
esElevator.setLongitude(elevator.getLongitude());
esElevator.setRegisterCode(elevator.getRegisterCode());
esElevator.setRegionCode(elevator.getRegionCode());
esElevator.setRescueCode(elevator.getRescueCode());
esElavtorRepository.save(esElevator);
return esElevator;
......@@ -81,38 +82,49 @@ public class ESElevatorServiceImpl {
* 根据关键字查询文档,关键字不为空时按相关性从大到小排序
*
* @param elevatorDto 关键字
* @param current 当前页码
* @param size 页面大小
* @return
*/
@SuppressWarnings({ "rawtypes" })
public Page<EsElevatorDto> queryByKeys(EsElevatorDto elevatorDto, int current, int size) {
Page<EsElevatorDto> result = new Page<>(current, size);
public List<EsElevatorDto> queryByKeys(EsElevatorDto elevatorDto) {
String alarmTypeCode = elevatorDto.getAlarmTypeCode();
String address = elevatorDto.getAddress();
String regionCode = elevatorDto.getRegionCode();
String alertId = elevatorDto.getAlertId();
/**
* 通用匹配规则,条件构建
*/
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
BoolQueryBuilder qb0 = QueryBuilders.boolQuery();
LambdaQueryWrapper<AlertCalled> queryWrapper = new LambdaQueryWrapper();
if(!ValidationUtil.isEmpty(alarmTypeCode)) {
BoolQueryBuilder qb0 = QueryBuilders.boolQuery();
LambdaQueryWrapper<AlertCalled> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(AlertCalled::getAlarmTypeCode,alarmTypeCode);
}
if(!ValidationUtil.isEmpty(alertId)) {
AlertCalled alertCalled = iAlertCalledService.getById(elevatorDto.getAlertId());
BoolQueryBuilder qb4 = QueryBuilders.boolQuery();
qb4.must(QueryBuilders.termQuery("sequenceNbr", alertCalled.getEquipmentId()));
boolMust.must(qb4);
}
if(elevatorDto.getIsToday() != null && elevatorDto.getIsToday()) {
queryWrapper.ge(AlertCalled::getCallTime, DateUtils.stampToDate(System.currentTimeMillis(),DateUtils.DATE_PATTERN));
queryWrapper.le(AlertCalled::getCallTime, DateUtils.stampToDate(DateUtils.dateAddDays(new Date(),1).getTime(),DateUtils.DATE_PATTERN));
List<AlertCalled> alertCalleds = iAlertCalledService.list(queryWrapper);
List<Long> stringList = new ArrayList<>();
for (AlertCalled al: alertCalleds
) {
stringList.add(al.getEquipmentId());
}
qb0.must(QueryBuilders.termsQuery("sequenceNbr", stringList.toArray()));
boolMust.must(qb0);
}
List<AlertCalled> alertCalleds = iAlertCalledService.list(queryWrapper);
List<Long> stringList = new ArrayList<>();
for (AlertCalled al: alertCalleds
) {
stringList.add(al.getEquipmentId());
}
List<Long> listL = stringList.stream().distinct().collect(Collectors.toList());
qb0.should(QueryBuilders.termsQuery("sequenceNbr", listL.toArray()));
boolMust.must(qb0);
if(!ValidationUtil.isEmpty(address)) {
BoolQueryBuilder boolMustAddress = QueryBuilders.boolQuery();
......@@ -124,22 +136,20 @@ public class ESElevatorServiceImpl {
if(!ValidationUtil.isEmpty(regionCode)) {
BoolQueryBuilder qb2= QueryBuilders.boolQuery().
filter(QueryBuilders. termQuery("regionCode", regionCode));
filter(QueryBuilders. matchPhraseQuery("regionCode", regionCode));
boolMust.must(qb2);
}
// 创建查询构造器
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
// 分页
.withPageable(PageRequest.of(current, size))
// .withPageable(PageRequest.of(current, size))
// 排序
// .withSort(SortBuilders.fieldSort("callTimeLong").order(SortOrder.DESC))
//过滤条件
.withQuery(boolMust);
List<EsElevatorDto> list = new LinkedList<>();
long totle = 0;
try
{
SearchHits<EsElevator> searchHits =elasticsearchTemplate.search(queryBuilder.build(), EsElevator.class);
......@@ -148,17 +158,22 @@ public class ESElevatorServiceImpl {
{
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
EsElevatorDto esElevatorDto =JSONObject.toJavaObject(jsonObject, EsElevatorDto.class);
for (AlertCalled al: alertCalleds
) {
if(al.getEquipmentId().equals(esElevatorDto.getSequenceNbr())) {
esElevatorDto.setHappenTime(al.getCallTime());
esElevatorDto.setAlertId(String.valueOf(al.getSequenceNbr()));
esElevatorDto.setAlarmTypeCode(al.getAlarmTypeCode());
break;
}
}
list.add(esElevatorDto);
}
totle =searchHits.getTotalHits();
}
catch (Exception e)
{
// TODO: handle exception
}
result.setRecords(list);
result.setTotal(totle);
return result;
return list;
}
}
......@@ -42,9 +42,9 @@ tzs.cti.secretkey=7bd29115-99ee-4f7d-1fb1-7c4719d5f43a
tzs.cti.url=http://36.46.151.113:8000
tzs.wechat.url=https://api.weixin.qq.com
##wechatAPPID
tzs.wechat.appid=wx8918c1aaad956617
##wechatSECRET
##wechatAPPID wx79aca5bb1cb4af92 wx8918c1aaad956617
tzs.wechat.appid=wx79aca5bb1cb4af92
##wechatSECRET 337c3d8f3e749140d4f9aedc8311033b f3a12323ba731d282c3d4698c27c3e97
tzs.wechat.secret=337c3d8f3e749140d4f9aedc8311033b
##wechatToken
......@@ -52,9 +52,14 @@ tzs.wechat.token=yeejoin_2021
##wechatTicketUrl
tzs.wechat.ticketurl=https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=
tzs.wechat.tempId.kr=SLjmNJoCNLC3FBcYzWzR-u3el0kqXf8WMTmzw8dAQm4
tzs.wechat.url.kr=www.baidu.com
tzs.wechat.tempId.wx=SLjmNJoCNLC3FBcYzWzR-u3el0kqXf8WMTmzw8dAQm4
tzs.wechat.url.wx=www.baidu.com
tzs.wechat.tempId.kr=Hlu43OOCVTESzOtkP4we1AUZJoPfquZl2_DEn6U66Z4
tzs.wechat.url.kr=tzs.yeeamos.com/persondetail.html
tzs.wechat.tempId.wx=rags-expfNSBB-h2WenuBI2c6pCEndH4uwTtOqlHqDM
tzs.wechat.url.wx=tzs.yeeamos.com/persondetail.html
tzs.wechat.tempId.ts=SLjmNJoCNLC3FBcYzWzR-u3el0kqXf8WMTmzw8dAQm4
tzs.wechat.url.ts=www.baidu.com
tzs.wechat.url.ts=tzs.yeeamos.com/persondetail.html
mqtt.topic.task.personinfo=tzs-task-personinfo
mqtt.topic.elevator.push=/tzs/tcb_elevator
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment