Commit 8c5e31e9 authored by KeYong's avatar KeYong

风险查询业务数据接口

parent 058963b6
...@@ -81,9 +81,6 @@ public class EquipmentIndexVO { ...@@ -81,9 +81,6 @@ public class EquipmentIndexVO {
@ApiModelProperty(value = "网关标识") @ApiModelProperty(value = "网关标识")
private String gatewayId; private String gatewayId;
@ApiModelProperty(value = "是否是告警设备")
private String isAlarm;
@ApiModelProperty(value = "装备名称") @ApiModelProperty(value = "装备名称")
private String equipmentSpecificName; private String equipmentSpecificName;
......
package com.yeejoin.equipmanage.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author keyong
* @title: RiskSourceTypeEnum
* <pre>
* @description: TODO
* </pre>
* @date 2023/8/2 18:40
*/
@Getter
@AllArgsConstructor
public enum RiskSourceTypeEnum {
EQUIP("equip", "装备告警"), PATROL("patrol", "巡检异常"),
HIDDENDANGER("danger", "隐患"), DEFECT("defect", "缺陷");
private String name;
private String describe;
}
...@@ -18,6 +18,8 @@ public class SendToMsgRiskEquipInfoVo { ...@@ -18,6 +18,8 @@ public class SendToMsgRiskEquipInfoVo {
// 装备名称 // 装备名称
private String name; private String name;
private String value;
// 装备编码 // 装备编码
private String code; private String code;
......
...@@ -4,17 +4,16 @@ import com.yeejoin.equipmanage.common.dto.FireRiskSourceDto; ...@@ -4,17 +4,16 @@ import com.yeejoin.equipmanage.common.dto.FireRiskSourceDto;
import com.yeejoin.equipmanage.common.request.Common3dRequest; import com.yeejoin.equipmanage.common.request.Common3dRequest;
import com.yeejoin.equipmanage.common.response.Common3dResponse; import com.yeejoin.equipmanage.common.response.Common3dResponse;
import com.yeejoin.equipmanage.common.response.Common3dResponseUtil; import com.yeejoin.equipmanage.common.response.Common3dResponseUtil;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.common.vo.Request3dVo; import com.yeejoin.equipmanage.common.vo.Request3dVo;
import com.yeejoin.equipmanage.service.IRiskSourceService; import com.yeejoin.equipmanage.service.IRiskSourceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List; import java.util.List;
...@@ -56,4 +55,13 @@ public class RiskSourceController extends AbstractBaseController { ...@@ -56,4 +55,13 @@ public class RiskSourceController extends AbstractBaseController {
return Common3dResponseUtil.success(list); return Common3dResponseUtil.success(list);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "获取巡检记录设备详情发送至风险", notes = "获取巡检记录设备详情发送至风险")
@RequestMapping(value = "/risk/equip/detail", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
public ResponseModel getEquipDetailByCheckId( @RequestParam(value = "source") String source,
@RequestParam(value = "id") String id,
@RequestParam(value = "indexKey", required = false) String indexKey) {
return CommonResponseUtil.success(riskSourceService.getEquipmentToRiskInfo(source, id, indexKey));
}
} }
...@@ -272,4 +272,8 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> { ...@@ -272,4 +272,8 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
List<String> selectIdsByPatrolCheck(String id); List<String> selectIdsByPatrolCheck(String id);
List<Map<String, Object>> queryCheckInputItemsByCheckId(@Param(value="checkId") String checkId);
Map<String, Object> getPointById(@Param(value = "pointId") Long id);
} }
...@@ -2,6 +2,8 @@ package com.yeejoin.equipmanage.service; ...@@ -2,6 +2,8 @@ package com.yeejoin.equipmanage.service;
import com.yeejoin.equipmanage.common.dto.FireRiskSourceDto; import com.yeejoin.equipmanage.common.dto.FireRiskSourceDto;
import com.yeejoin.equipmanage.common.vo.RiskBizInfoVo;
import com.yeejoin.equipmanage.common.vo.RiskDataVo;
import java.util.List; import java.util.List;
...@@ -14,4 +16,6 @@ public interface IRiskSourceService { ...@@ -14,4 +16,6 @@ public interface IRiskSourceService {
* @return * @return
*/ */
List<FireRiskSourceDto> getFiskSourceTierTree(Integer tier, Boolean isRegion); List<FireRiskSourceDto> getFiskSourceTierTree(Integer tier, Boolean isRegion);
RiskBizInfoVo getEquipmentToRiskInfo(String source, String id, String indexKey);
} }
package com.yeejoin.equipmanage.service.impl; package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.yeejoin.equipmanage.common.dto.FireRiskSourceDto; import com.yeejoin.equipmanage.common.dto.FireRiskSourceDto;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.enums.DynamicLabelEnum;
import com.yeejoin.equipmanage.common.enums.EquipQrcodeColorEnum;
import com.yeejoin.equipmanage.common.enums.RiskSourceTypeEnum;
import com.yeejoin.equipmanage.common.utils.StringUtil;
import com.yeejoin.equipmanage.common.utils.TreeNodeUtil; import com.yeejoin.equipmanage.common.utils.TreeNodeUtil;
import com.yeejoin.equipmanage.mapper.RiskSourceMapper; import com.yeejoin.equipmanage.common.vo.*;
import com.yeejoin.equipmanage.mapper.*;
import com.yeejoin.equipmanage.service.IEquipmentSpecificIndexService;
import com.yeejoin.equipmanage.service.IRiskSourceService; import com.yeejoin.equipmanage.service.IRiskSourceService;
import liquibase.pro.packaged.E;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import java.util.List; import java.text.SimpleDateFormat;
import java.util.*;
@Slf4j
@Service("riskSourceService") @Service("riskSourceService")
public class RiskSourceServiceImpl implements IRiskSourceService { public class RiskSourceServiceImpl implements IRiskSourceService {
static IEquipmentSpecificIndexService equipmentSpecificIndexService;
@Autowired @Autowired
private RiskSourceMapper riskSourceMapper; private RiskSourceMapper riskSourceMapper;
@Autowired
private EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired
EquipmentDetailMapper equipmentDetailMapper;
@Autowired
private ManufacturerInfoMapper manufacturerInfoMapper;
@Autowired
private FireFightingSystemMapper fireFightingSystemMapper;
@Autowired
EquipmentSpecificIndexMapper equipmentSpecificIndexMapper;
@Override @Override
@Transactional @Transactional
public List<FireRiskSourceDto> getFiskSourceTierTree(Integer tier, Boolean isRegion) { public List<FireRiskSourceDto> getFiskSourceTierTree(Integer tier, Boolean isRegion) {
...@@ -38,5 +67,175 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -38,5 +67,175 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
} }
return Lists.newArrayList(); return Lists.newArrayList();
} }
public RiskBizInfoVo getEquipmentToRiskInfo(String source, String id, String indexKey){
String equipmentSpecId = null;
SendToMsgRiskDetailVo detailVo = new SendToMsgRiskDetailVo();
SendToMsgRiskEquipInfoVo equipInfoVo = new SendToMsgRiskEquipInfoVo();
SendToMsgRiskAlarmInfoVo equipAlarm = new SendToMsgRiskAlarmInfoVo();
if (source.equalsIgnoreCase(RiskSourceTypeEnum.PATROL.getName())) {
List<Map<String, Object>> checkInputItems = equipmentSpecificMapper.queryCheckInputItemsByCheckId(id);
Map<String, Object> map = checkInputItems.get(0);
if (map.containsKey("equipId")) {
equipmentSpecId = String.valueOf(map.get("equipId"));
Map<String, Object> pointMap = equipmentSpecificMapper.getPointById(Long.valueOf(String.valueOf(map.get("pointId"))));
equipAlarm.setIndexNo(String.valueOf(pointMap.get("id")));
equipAlarm.setName(String.valueOf(pointMap.get("pointName")));
equipAlarm.setIndexNo(String.valueOf(pointMap.get("pointNo")));
equipAlarm.setKey(String.valueOf(map.get("inputItem")));
equipAlarm.setValue(String.valueOf(map.get("input_value")));
equipInfoVo.setName(String.valueOf(map.get("inputItem")));
equipInfoVo.setValue(String.valueOf(map.get("input_value")));
equipInfoVo.setCode(String.valueOf(map.get("item_no")));
equipInfoVo.setBizOrgCode(String.valueOf(map.get("biz_org_code")));
equipInfoVo.setBizOrgName(String.valueOf(map.get("biz_org_name")));
}
} else if (source.equalsIgnoreCase(RiskSourceTypeEnum.EQUIP.getName())) {
equipmentSpecId = id;
QueryWrapper<EquipmentSpecificIndex> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("equipment_specific_id", equipmentSpecId);
queryWrapper.eq("equipment_index_key", indexKey);
EquipmentSpecificIndex equipmentSpeIndex = equipmentSpecificIndexMapper.selectOne(queryWrapper);
equipAlarm.setKey(indexKey);
equipAlarm.setValue(equipmentSpeIndex.getValue());
equipAlarm.setAlarmContent(equipmentSpeIndex.getEquipmentName() + equipmentSpeIndex.getEquipmentIndexName());
equipAlarm.setAlarmDate(equipmentSpeIndex.getUpdateDate());
equipInfoVo.setName(equipmentSpeIndex.getEquipmentSpecificName());
equipInfoVo.setCode(equipmentSpeIndex.getEquipmentSpecificCode());
equipInfoVo.setReportIsAlarm(Boolean.TRUE);
equipInfoVo.setEquipSpeId(equipmentSpecId);
} else {
equipmentSpecId = id;
}
equipInfoVo.setId(equipmentSpecId);
if (StringUtil.isNotEmpty(equipmentSpecId)) {
EquipmentSpecific specific = equipmentSpecificMapper.selectById(equipmentSpecId);
equipInfoVo.setPosition(specific.getPosition());
equipInfoVo.setManufacturerName(getEquipmentDetailInfo(specific.getEquipmentDetailId()).getManufacturerName());
equipInfoVo.setSystemIds(specific.getSystemId());
equipInfoVo.setSystemName(getSystemNameBySpeId(specific));
equipInfoVo.setQrCode(specific.getQrCode());
equipInfoVo.setCodeColor(EquipQrcodeColorEnum.getEnumByKey(specific.getEquipStatus()).getColor());
equipInfoVo.setBatchNo(getEquipmentDetailInfo(specific.getEquipmentDetailId()).getStandard());
equipInfoVo.setBizOrgCode(specific.getBizOrgCode());
equipInfoVo.setBizOrgName(specific.getBizOrgName());
if (source.equalsIgnoreCase(RiskSourceTypeEnum.HIDDENDANGER.getName()) || source.equalsIgnoreCase(RiskSourceTypeEnum.DEFECT.getName())) {
equipInfoVo.setName(specific.getName());
equipInfoVo.setCode(specific.getCode());
equipInfoVo.setReportIsAlarm(Boolean.TRUE);
equipInfoVo.setEquipSpeId(equipmentSpecId);
}
}
detailVo.setEquipInfo(equipInfoVo);
detailVo.setAlarmInfo(equipAlarm);
RiskBizInfoVo infoVo = new RiskBizInfoVo();
infoVo.setWarningObjectName(detailVo.getEquipInfo().getName());
infoVo.setWarningObjectCode(detailVo.getEquipInfo().getCode());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
infoVo.setWarningTime(sdf.format(new Date()));
infoVo.setSourceAttribution(detailVo.getEquipInfo().getBizOrgCode());
infoVo.setSourceAttributionDesc(detailVo.getEquipInfo().getBizOrgName());
infoVo.setWarningObjectCode(detailVo.getEquipInfo().getId());
List<RiskDynamicDetailsVo> detailsVos = new ArrayList<>();
RiskDynamicDetailsVo dynamicDetailsVo = new RiskDynamicDetailsVo();
dynamicDetailsVo.setTabName("装备指标联动数据");
List<TableContentVo> contentVos = new ArrayList<>();
for (DynamicLabelEnum u : DynamicLabelEnum.values()) {
TableContentVo contentVo = new TableContentVo();
contentVo.setKey(u.getCode());
switch (u.getCode()) {
case "name":
contentVo.setLabel(u.getDescribe());
contentVo.setValue(equipInfoVo.getName());
contentVo.setType("text");
break;
case "code":
contentVo.setLabel(u.getDescribe());
contentVo.setValue(equipInfoVo.getCode());
contentVo.setType("text");
break;
case "position":
contentVo.setLabel(u.getDescribe());
contentVo.setValue(equipInfoVo.getPosition());
contentVo.setType("text");
break;
case "manufacturer":
contentVo.setLabel(u.getDescribe());
contentVo.setValue(equipInfoVo.getManufacturerName());
contentVo.setType("text");
break;
case "systemName":
contentVo.setLabel(u.getDescribe());
contentVo.setValue(equipInfoVo.getSystemName());
contentVo.setType("text");
break;
case "qrCode":
contentVo.setLabel(u.getDescribe());
Map<String, Object> map = new HashMap<>();
map.put("qrCode", equipInfoVo.getQrCode());
map.put("color", equipInfoVo.getCodeColor());
contentVo.setValue(map);
contentVo.setType("qrcode");
break;
case "alarmContent":
contentVo.setLabel(u.getDescribe());
contentVo.setValue(equipAlarm.getAlarmContent());
contentVo.setType("text");
break;
case "alarmDate":
contentVo.setLabel(u.getDescribe());
contentVo.setValue(equipAlarm.getAlarmDate());
contentVo.setType("text");
break;
default:
log.info("方法参数错误 !!!");
break;
}
contentVos.add(contentVo);
}
dynamicDetailsVo.setTabContent(contentVos);
detailsVos.add(dynamicDetailsVo);
infoVo.setDynamicDetails(detailsVos);
return infoVo;
}
public EquipmentDetail getEquipmentDetailInfo(long id) {
EquipmentDetail detail = equipmentDetailMapper.selectById(id);
if (ObjectUtils.isEmpty(detail.getManufacturerId())) {
detail.setManufacturerName("");
return detail;
}
ManufacturerInfo info = manufacturerInfoMapper.selectById(detail.getManufacturerId());
detail.setManufacturerName(info.getName());
return Optional.ofNullable(detail).orElse(detail);
}
public String getSystemNameBySpeId(EquipmentSpecific equipmentSpecific) {
List<FireFightingSystemEntity> sys = new ArrayList<>();
String[] ids;
String sysIds = equipmentSpecific.getSystemId();
if (StringUtil.isNotEmpty(sysIds)) {
if (-1 != sysIds.indexOf(",")) {
ids = sysIds.split(",");
sys = fireFightingSystemMapper.getFightingSysByIds(ids);
} else {
FireFightingSystemEntity entity = fireFightingSystemMapper.selectById(Long.valueOf(sysIds));
sys.add(entity);
}
}
StringBuilder sb = new StringBuilder();
sys.forEach(x -> {
if (0 < sb.length()) {
sb.append(",");
}
sb.append(x.getName());
});
return sb.toString();
}
} }
package com.yeejoin.amos.patrol.business.controller; package com.yeejoin.amos.patrol.business.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.patrol.business.constants.XJConstant; import com.yeejoin.amos.patrol.business.constants.XJConstant;
...@@ -50,10 +51,8 @@ import javax.xml.transform.*; ...@@ -50,10 +51,8 @@ import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource; import javax.xml.transform.stream.StreamSource;
import java.io.*; import java.io.*;
import java.util.Date; import java.text.SimpleDateFormat;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
......
...@@ -2374,6 +2374,56 @@ ...@@ -2374,6 +2374,56 @@
ppc.equipment_id = #{id} ppc.equipment_id = #{id}
</select> </select>
<select id="queryCheckInputItemsByCheckId" resultType="Map">
SELECT
c.id,
c.point_id pointId,
ii.item_no,
ii.NAME inputItem,
ci.input_value,
CASE
ci.is_ok
WHEN 1 THEN
'合格'
WHEN 2 THEN
'不合格' ELSE '漏检'
END AS is_ok,
ii.biz_org_code,
ii.biz_org_name,
ci.score ,
ci.id as traceId,
ppc.equipment_id as equipId
FROM
p_check c
LEFT JOIN p_check_input ci ON ci.check_id = c.id
LEFT JOIN p_input_item ii ON ii.id = ci.input_id
LEFT JOIN p_point_classify ppc on ci.point_classify_id = ppc.id
WHERE
c.id = #{checkId}
ORDER BY
ci.order_no
</select>
<select id="getPointById" resultType="Map">
SELECT
p.id,
p.route_name routeName,
p.point_no pointNo,
p.NAME pointName,
(CASE p.is_fixed
WHEN 1 THEN
'固定点'
ELSE
'移动点'
END) fixed,
p.charge_person_name userName,
p.biz_org_name departmentName,
IFNULL(p.risk_source_id, '') as buildingId,
p.remark,
p.offline
FROM
p_point p
where p.id = #{pointId}
</select>
</mapper> </mapper>
\ 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