jinpengyong
2023-09-05 ba9c4bca1bdf36f827ab258222d92c885ff890db
screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
@@ -38,8 +38,8 @@
import com.moral.api.util.RoadUtils;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
import com.moral.util.DateUtils;
import com.moral.util.TokenUtils;
import com.sun.org.apache.regexp.internal.RE;
@Service
@@ -74,10 +74,12 @@
        List<Map<String, Object>> data = (List<Map<String, Object>>) params.get("data");
        for (Map<String, Object> datum : data) {
            ManageCoordinateDetail manageCoordinateDetail = new ManageCoordinateDetail();
            String code = datum.get("code").toString();
            String state = datum.get("state").toString();
            if (state.equals("1")){
            if (state.equals("2")){
                ManageCoordinateDetail manageCoordinateDetail = new ManageCoordinateDetail();
                String[] rs = code.split("_");
                manageCoordinateDetail.setCoordinateId(coordinateId);
                manageCoordinateDetail.setLongitude(Double.parseDouble(rs[0]));
@@ -91,25 +93,19 @@
                wrapper.eq("latitude",manageCoordinateDetail.getLatitude());
                Integer integer = manageCoordinateDetailMapper.selectCount(wrapper);
                if (integer>=1){
                    return null;
                    return 1;
                }
                manageCoordinateDetailMapper.insert(manageCoordinateDetail);
            }else {
                manageCoordinateDetailMapper.deleteById(manageCoordinateDetail.getId());
//                    manageCoordinateDetailMapper.delete(wrapper);
                Object id1 = datum.get("id");
                if (ObjectUtils.isEmpty(id1)){
                    return 2;
                }
                manageCoordinateDetailMapper.deleteById(Integer.parseInt(id1.toString()));
            }
        }
        return 200;
    }
    /**
     * 删除经纬度点
     * @param id
     */
    @Override
    public void deleteCoordinate(Integer id)  {
        manageCoordinateDetailMapper.deleteById(id);
    }
@@ -178,8 +174,9 @@
                String latitude = manageCoordinateDetail.getLatitude().toString();
                String longitude = manageCoordinateDetail.getLongitude().toString();
                if (latitude.equals(flyLat) && longitude.equals(flyLon)){
                    manageCoordinateDetail.setLongitude(Double.parseDouble(flyLon));
                    manageCoordinateDetail.setLatitude(Double.parseDouble(flyLat));
                    manageCoordinateDetail.setCode(data);
                    manageCoordinateDetail.setLongitude(cruiserDTO.getFlyLon());
                    manageCoordinateDetail.setLatitude(cruiserDTO.getFlyLat());
                    rsList1.add(manageCoordinateDetail);
                    cruiserInfo.remove(i);
                    break;
@@ -205,28 +202,62 @@
        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);
        for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
            String latitude = manageCoordinateDetail.getLatitude().toString();
            String longitude = manageCoordinateDetail.getLongitude().toString();
        if (ObjectUtils.isEmpty(manageCoordinateDetails)){
            for (CruiserDTO cruiserDTO : cruiserInfo) {
                Double flyLat = cruiserDTO.getFlyLat();
                Double flyLon = cruiserDTO.getFlyLon();
                if (!latitude.equals(flyLat+"") || !longitude.equals(flyLon+"")){
                    ManageCoordinateDetail rsDTO = new ManageCoordinateDetail();
                    rsDTO.setLatitude(flyLat);
                    rsDTO.setLongitude(flyLon);
                    rsDTO.setState("2");
                    rsDTO.setCreateTime(new Date());
                    rsDTO.setUpdateTime(new Date());
                    rsDTO.setCoordinateId(coordinateId);
                    int insert = manageCoordinateDetailMapper.insert(rsDTO);
                    if (insert!=1){
                        return null;
                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+"");
            }
        }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();
                    if (latitude.equals(flyLat+"") && longitude.equals(flyLon+"")){
                        cruiserInfo.remove(i);
                        break;
                    }
                }
            }
            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+"");
            }
        }
        return 200;
    }