From f58ecce62bc5ecad8e8a862b7b0ad590005cfc7e Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 10 Apr 2024 11:43:51 +0800
Subject: [PATCH] fix:走航日报补充提交
---
screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java | 95 +++++++++++++++++++++++++++--------------------
1 files changed, 54 insertions(+), 41 deletions(-)
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
index 26e7ecc..510670a 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
@@ -18,10 +18,10 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
-
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -192,27 +192,51 @@
@Transactional
public Integer batchAll(Map<String, Object> params) {
params.put("dateFormat", "%Y-%m-%d %H:%i:%s");
+ String type = params.get("type").toString();
int coordinateId = Integer.parseInt(params.get("coordinateId").toString());
QueryWrapper<ManageCoordinateDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("coordinate_id",coordinateId);
- String time1 = params.remove("time1").toString();
- String time2 = params.remove("time2").toString();
- long l = DateUtils.compareDateStrDay(time1, time2);
- if (l>0){
- params.put("time1",time1);
- params.put("time2",time2);
- }else {
- params.put("time1",time2);
- params.put("time2",time1);
- }
int j =0;
List<ManageCoordinateDetail> manageCoordinateDetails = manageCoordinateDetailMapper.selectList(queryWrapper);
- List<CruiserDTO> cruiserInfo = historySecondCruiserMapper.getCruiserInfo(params);
- cruiserInfo = cruiserInfo.stream().distinct().collect(Collectors.toList());
+// List<CruiserDTO> cruiserInfo = (List<CruiserDTO>) params.get("list");
+ List<CruiserDTO> cruiserInfo;
+ //������������
+ if (type.equals("1")){
+ List<HashMap<String, Object>> list = (List<HashMap<String, Object>>) params.get("list");
+ cruiserInfo = list.stream().distinct()
+ .map(map -> {
+
+ CruiserDTO p = new CruiserDTO();
+ Double flylat = (Double) map.get("flylat");
+ Double flylon = (Double) map.get("flylon");
+ p.setFlyLat(flylat);
+ p.setFlyLon(flylon);
+ return p;
+ })
+ .collect(Collectors.toList());
+
+ }else {
+ //���������������
+ String time1 = params.remove("time1").toString();
+ String time2 = params.remove("time2").toString();
+ long l = DateUtils.compareDateStrDay(time1, time2);
+ if (l>0){
+ params.put("time1",time1);
+ params.put("time2",time2);
+ }else {
+ params.put("time1",time2);
+ params.put("time2",time1);
+ }
+ cruiserInfo = historySecondCruiserMapper.getCruiserInfo(params);
+ cruiserInfo = cruiserInfo.stream().distinct().collect(Collectors.toList());
+ }
if (ObjectUtils.isEmpty(manageCoordinateDetails)){
for (CruiserDTO cruiserDTO : cruiserInfo) {
Double flyLat = cruiserDTO.getFlyLat();
Double flyLon = cruiserDTO.getFlyLon();
+ if (ObjectUtils.isEmpty(flyLat) || ObjectUtils.isEmpty(flyLon)){
+ continue;
+ }
ManageCoordinateDetail rsDTO = new ManageCoordinateDetail();
rsDTO.setLatitude(flyLat);
rsDTO.setLongitude(flyLon);
@@ -225,35 +249,24 @@
log.info(j+"");
}
}else {
- for (int i=cruiserInfo.size()-1;i>0;i--) {
- CruiserDTO cruiserDTO = cruiserInfo.get(i);
- Double flyLat = cruiserDTO.getFlyLat();
- Double flyLon = cruiserDTO.getFlyLon();
- for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
- String latitude = manageCoordinateDetail.getLatitude().toString();
- String longitude = manageCoordinateDetail.getLongitude().toString();
-// double lonDouble1 = Double.parseDouble(longitude);
-// double latDouble1 = Double.parseDouble(latitude);
-// if (lonDouble1==flyLon && flyLat==latDouble1 ){
- if (longitude.equals(flyLon+"") && latitude.equals(flyLat+"")){
- cruiserInfo.remove(i);
- break;
- }
- }
- }
+ Map<String,Integer> map = new HashMap<>(manageCoordinateDetails.size()+50);
+ manageCoordinateDetails.forEach(it->map.put(it.getLatitude()+"_"+it.getLongitude(),it.getId()));
+ List<ManageCoordinateDetail> result = new ArrayList<>();
for (CruiserDTO cruiserDTO : cruiserInfo) {
- Double flyLat = cruiserDTO.getFlyLat();
- Double flyLon = cruiserDTO.getFlyLon();
- ManageCoordinateDetail rsDTO = new ManageCoordinateDetail();
- rsDTO.setLatitude(flyLat);
- rsDTO.setLongitude(flyLon);
- rsDTO.setState("2");
- rsDTO.setCreateTime(new Date());
- rsDTO.setUpdateTime(new Date());
- rsDTO.setCoordinateId(coordinateId);
- manageCoordinateDetailMapper.insert(rsDTO);
- j++;
- log.info(j+"");
+ String fly = cruiserDTO.getFlyLat()+"_"+cruiserDTO.getFlyLon();
+ if(!map.containsKey(fly)){
+ ManageCoordinateDetail rsDTO = new ManageCoordinateDetail();
+ rsDTO.setLatitude(cruiserDTO.getFlyLat());
+ rsDTO.setLongitude(cruiserDTO.getFlyLon());
+ rsDTO.setState("2");
+ rsDTO.setCreateTime(new Date());
+ rsDTO.setUpdateTime(new Date());
+ rsDTO.setCoordinateId(coordinateId);
+ result.add(rsDTO);
+ }
+ }
+ if(!CollectionUtils.isEmpty(result)){
+ this.saveBatch(result);
}
}
return 200;
--
Gitblit v1.8.0