Browse Source

[feat]

1、增加图片比对历史预警、根据经纬度查看重复预警个数
pull/4/head
杨威 2 months ago
parent
commit
010341500b
  1. 10
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  2. 3
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java
  3. 3
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java
  4. 32
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  5. 10
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

10
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -56,6 +56,16 @@ public class BusinessAlertController extends BaseController {
}
@Operation(summary ="根据经纬度获取历史预警",description = "根据经纬度获取历史预警")
@GetMapping("/listHandleHistory")
public R<List<BusinessAlert>> listHandleHistory(
@RequestParam("lng") String lng,
@RequestParam("lat") String lat,
@RequestParam("createTime") String createTime) {
return R.ok(businessAlertService.listHandleHistory(lng,lat,createTime));
}
@SaCheckPermission("business:alert:delete")
@Log(title = "删除预警", businessType = BusinessType.DELETE)
@Operation(summary ="删除预警",description = "删除预警")

3
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java

@ -101,4 +101,7 @@ public interface BusinessAlertMapper extends BaseMapperPlus<BusinessAlert, Busin
Map<String, Object> listAppAlertCount(@Param("param") BusinessAlertBo businessAlertBo);
List<BusinessAlert> listHandleHistory(@Param("lng") String lng, @Param("lat") String lat,@Param("createTime") String createTime);
}

3
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java

@ -86,4 +86,7 @@ public interface IBusinessAlertService {
BusinessAlert getTodoBusinessAlert(Long alertId);
Boolean deleteFalseAlert(Long alertId);
List<BusinessAlert> listHandleHistory(String lng, String lat, String createTime);
}

32
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -21,6 +21,7 @@ import org.dromara.business.utils.BatchProcessorUtil;
import org.dromara.business.utils.MinioUntil;
import org.dromara.business.utils.constants.MinIOConstants;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.enums.FormatsType;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
@ -119,6 +120,11 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
alert.setHandleType(BusinessStatusEnum.VERIFY.getStatus());
BeanUtils.copyProperties(alert, businessAlert);
//查询历史预警
List<BusinessAlert> businessAlertList = this.listHandleHistory(alert.getLng(), alert.getLat(), DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, alert.getCreateTime()));
businessAlert.setHandleNum(businessAlertList.size());
return businessAlert;
}).toList();
@ -656,6 +662,32 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
return this.baseMapper.update(wrapper) > 0;
}
@Override
public List<BusinessAlert> listHandleHistory(String lng, String lat, String createTime) {
if (ObjectUtil.hasEmpty(lng, lat)) {
return ListUtil.empty();
}
List<BusinessAlert> businessAlerts = this.baseMapper.listHandleHistory(lng, lat, createTime);
try {
businessAlerts.forEach(businessAlert -> {
if (businessAlert.getBusinessType() == 2){
businessAlert.setImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_DKCY, businessAlert.getImages(), 3600).toString());
}else {
businessAlert.setImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getImages(), 3600).toString());
businessAlert.setMaxImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getMaxImages(), 3600).toString());
businessAlert.setMaxMateSourceImgUrl(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getMaxMateSourceImgUrl(), 3600).toString());
businessAlert.setMateSourceImgUrl(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getMateSourceImgUrl(), 3600).toString());
}
});
} catch (Exception e) {
log.error(e.getMessage(),e);
}
return businessAlerts;
}
public static void main(String[] args) {
System.out.println(getLastSixDays());

10
dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

@ -834,6 +834,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
${ew.getCustomSqlSegment}
</select>
<select id="listHandleHistory" resultType="org.dromara.business.domain.BusinessAlert">
SELECT job_name,max_images,images,create_time,id,handle_type,del_flag,ST_Distance_Sphere(point(lng, lat), point(#{lng},#{lat})) AS distance
FROM business_alert
WHERE <![CDATA[ create_time >= DATE_SUB(#{createTime}, INTERVAL 60 DAY) ]]>
AND <![CDATA[ create_time <= #{createTime} ]]>
and del_flag = 0
HAVING <![CDATA[ distance <= 30 ]]>
ORDER BY create_time desc
</select>
</mapper>

Loading…
Cancel
Save