jinpengyong
2023-08-21 dcb98a36af4ad7823edd61a9c3388bd024db740f
screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateDetailServiceImpl.java
@@ -31,27 +31,27 @@
    private HistorySecondCruiserMapper historySecondCruiserMapper;
    /**
     * 新增经纬度
     * @param manageCoordinateDetail
     * @param manageCoordinateDetails
     * @return
     */
    @Override
    public Integer insertCoordinate(ManageCoordinateDetail manageCoordinateDetail) {
        double[] doubles = RoadUtils.transformBD09ToWGS84(manageCoordinateDetail.getLongitude(), manageCoordinateDetail.getLatitude());
        log.info(doubles[0]+"_"+doubles[1]);
        QueryWrapper<ManageCoordinateDetail> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("coordinate_id",manageCoordinateDetail.getCoordinateId());
        queryWrapper.eq("longitude",doubles[0]);
        queryWrapper.eq("latitude",doubles[1]);
        Integer integer = manageCoordinateDetailMapper.selectCount(queryWrapper);
        if (integer<1){
            manageCoordinateDetail.setCreateTime(new Date());
            manageCoordinateDetail.setUpdateTime(new Date());
            manageCoordinateDetail.setLongitude(doubles[0]);
            manageCoordinateDetail.setLatitude(doubles[1]);
            int insert = manageCoordinateDetailMapper.insert(manageCoordinateDetail);
            return insert;
    @Transactional
    public Integer insertCoordinate(List<ManageCoordinateDetail> manageCoordinateDetails) {
        for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
            if (manageCoordinateDetail.getState().equals("1")){
                manageCoordinateDetail.setState("2");
                int insert = manageCoordinateDetailMapper.insert(manageCoordinateDetail);
                if (insert!=1){
                    return null;
                }
            }else {
                int i = manageCoordinateDetailMapper.deleteById(manageCoordinateDetail.getId());
                if (i!=1){
                    return null;
                }
            }
        }
        return null;
        return 200;
    }
    /**
@@ -59,7 +59,7 @@
     * @param id
     */
    @Override
    public void deleteCoordinate(Integer id) {
    public void deleteCoordinate(Integer id)  {
        manageCoordinateDetailMapper.deleteById(id);
    }
@@ -76,25 +76,41 @@
        QueryWrapper<ManageCoordinateDetail> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("coordinate_id",coordinateId);
        List<ManageCoordinateDetail> manageCoordinateDetails = manageCoordinateDetailMapper.selectList(queryWrapper);
        ArrayList<String> list1 = new ArrayList<>();
        ArrayList<String> list2 = new ArrayList<>();
        for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
            Double latitude = manageCoordinateDetail.getLatitude();
            Double longitude = manageCoordinateDetail.getLongitude();
            String s = longitude + "_" + latitude;
            list1.add(s);
        }
        List<CruiserDTO> cruiserInfo = historySecondCruiserMapper.getCruiserInfo(params);
        for (CruiserDTO cruiserDTO : cruiserInfo) {
            String s = cruiserDTO.getFlyLat().toString();
            String s1 = cruiserDTO.getFlyLon().toString();
            String rs = s1 + "_" + s;
            list2.add(rs);
        }
        //取交集
        list1.retainAll(list2);
        //取差集
        list2.removeAll(list1);
//        ArrayList<String> list1 = new ArrayList<>();
//        ArrayList<String> list2 = new ArrayList<>();
//        for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
//            Double latitude = manageCoordinateDetail.getLatitude();
//            Double longitude = manageCoordinateDetail.getLongitude();
//            String s = longitude + "_" + latitude;
//            list1.add(s);
//        }
//        List<CruiserDTO> cruiserInfo = historySecondCruiserMapper.getCruiserInfo(params);
//        for (CruiserDTO cruiserDTO : cruiserInfo) {
//            String s = cruiserDTO.getFlyLat().toString();
//            String s1 = cruiserDTO.getFlyLon().toString();
//            String rs = s1 + "_" + s;
//            list2.add(rs);
//        }
//        //取交集
//        list1.retainAll(list2);
//        //取差集
//        list2.removeAll(list1);
//        //存入数据库的数据
//        CruiserDTO rsDTO = new CruiserDTO();
//        for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
//            String latitude = manageCoordinateDetail.getLatitude().toString();
//            String longitude = manageCoordinateDetail.getLongitude().toString();
//            for (CruiserDTO cruiserDTO : cruiserInfo) {
//                Double flyLat = cruiserDTO.getFlyLat();
//                Double flyLon = cruiserDTO.getFlyLon();
//                if (latitude.equals(flyLat+"") && longitude.equals(flyLon+"")){
//                rsDTO.setFlyLat(flyLat);
//                rsDTO.setFlyLon(flyLon);
//                }
//            }
//        }
        return null;
    }
@@ -109,28 +125,32 @@
    @Transactional
    public Integer batchAll(Map<String, Object> params) {
        params.put("dateFormat", "%Y-%m-%d %H:%i:%s");
        String coordinateId = params.get("coordinateId").toString();
        int coordinateId = Integer.parseInt(params.get("coordinateId").toString());
        QueryWrapper<ManageCoordinateDetail> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("coordinate_id",coordinateId);
        List<ManageCoordinateDetail> manageCoordinateDetails = manageCoordinateDetailMapper.selectList(queryWrapper);
        ArrayList<String> list1 = new ArrayList<>();
        ArrayList<String> list2 = new ArrayList<>();
        for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
            Double latitude = manageCoordinateDetail.getLatitude();
            Double longitude = manageCoordinateDetail.getLongitude();
            String s = longitude + "_" + latitude;
            list1.add(s);
        }
        List<CruiserDTO> cruiserInfo = historySecondCruiserMapper.getCruiserInfo(params);
        for (CruiserDTO cruiserDTO : cruiserInfo) {
            String s = cruiserDTO.getFlyLat().toString();
            String s1 = cruiserDTO.getFlyLon().toString();
            String rs = s1 + "_" + s;
            list2.add(rs);
        for (ManageCoordinateDetail manageCoordinateDetail : manageCoordinateDetails) {
            String latitude = manageCoordinateDetail.getLatitude().toString();
            String longitude = manageCoordinateDetail.getLongitude().toString();
            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;
                    }
                }
            }
        }
        //取差集
        list2.removeAll(list1);
        return null;
        return 200;
    }
}