| | |
| | | String time = (String) gpsMap.get("result");//å®ä½æ¶é´ |
| | | String deptNum = (String) result.get("deptId");//è·åé¨é¨ID |
| | | String deptName = (String) result.get("deptName");//è·åé¨é¨åç§° |
| | | // String carId = "13"; |
| | | // String lng = "124.74695492384757"; |
| | | // String lat = "46.09510768522894"; |
| | | // String carName = "é»E21397";//è·å车çå· |
| | | // String time = "20231019161815";//å®ä½æ¶é´ |
| | | // String deptNum = "100";//è·åé¨é¨ID |
| | | // String deptName = "å级";//è·åé¨é¨åç§° |
| | | //å®ä¹2ç»´ç©ºé´ |
| | | Point2D.Double point = new Point2D.Double(Double.parseDouble(lng), Double.parseDouble(lat)); |
| | | List<Point2D.Double> pts = new ArrayList<Point2D.Double>(); |
| | |
| | | ArdAccessFence ardAccessFence = ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).queryAccess(carId); |
| | | //å¦ææ²¡æè¯´æè½¦è¾æªè¿å
¥è£
æ²¹ç¹ï¼éè¦å¹é
ææè£
æ²¹ç¹å´æ |
| | | if(ardAccessFence==null){ |
| | | //å¹é
å
¨é¨è£
æ²¹ç¹å´æ |
| | | //è½¦è¾æªè¿å
¥è£
æ²¹ç¹ |
| | | List<ArdOilWall> ardOilWalls = ((ArdOilWallServiceImpl)SpringUtils.getBean("ArdOilWallServiceImpl")).accessAll(); |
| | | for (int i = 0; i < ardOilWalls.size(); i++) { |
| | | pts.clear(); |
| | |
| | | pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j+1]))); |
| | | } |
| | | if(GeoTools.IsPtInPoly(point, pts)){ |
| | | //è¿å
¥äºå´æ å
¥åº |
| | | //è¿å
¥è£
æ²¹ç¹å
¥åº |
| | | ArdAccessFence ardAccessFence1 = new ArdAccessFence(); |
| | | ardAccessFence1.setId(String.valueOf(UUID.randomUUID())); |
| | | ardAccessFence1.setCarId(carId); |
| | | ardAccessFence1.setCarName(carName); |
| | | ardAccessFence1.setDeptId(deptNum); |
| | | ardAccessFence1.setDeptName(deptName); |
| | | ardAccessFence1.setIntoShipment("è¿å
¥è£
æ²¹ç¹"); |
| | | ardAccessFence1.setIntoShipmentId(ardOilWall.getId()); |
| | | ardAccessFence1.setIntoShipmentTime(time); |
| | | ardAccessFence1.setLng(lng); |
| | | ardAccessFence1.setLat(lat); |
| | |
| | | } |
| | | } |
| | | }else { |
| | | String unload = ardAccessFence.getIntoUnloadId(); |
| | | //妿unload为空ï¼å¤ææ¯å¦è¿å
¥å¸æ²¹ç¹ |
| | | if(unload==null){ |
| | | //æ¥è¯¢å
¨é¨å¸æ²¹ç¹ |
| | | List<ArdOilWall> ardOilWalls = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).uploadAll(); |
| | | for (int i = 0; i < ardOilWalls.size(); i++) { |
| | | pts.clear(); |
| | | ArdOilWall ardOilWall = ardOilWalls.get(i); |
| | | String[] coord = ardOilWall.getCoord().split(","); |
| | | for (int j = 0; j < coord.length; j = j + 3) { |
| | | pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j + 1]))); |
| | | } |
| | | if (GeoTools.IsPtInPoly(point, pts)) { |
| | | //è¿å
¥å¸æ²¹ç¹,åå
¥å¸æ²¹ç¹å´æ ID |
| | | ardAccessFence.setIntoUnloadId(ardOilWall.getId()); |
| | | ardAccessFence.setIntoUnloadTime(time); |
| | | break; |
| | | } |
| | | } |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); |
| | | }else { |
| | | //妿unloadæå¼ï¼åç»§ç»å¤ææ¯å¦åºäºå¸æ²¹ç¹ï¼å¹é
叿²¹ç¹çå¯ä¸ID |
| | | ArdOilWall ardOilWall = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).one(unload); |
| | | String out = ardAccessFence.getOutShipmentId(); |
| | | if(out == null){ |
| | | //è½¦è¾æªå¼åºè£
æ²¹ç¹ |
| | | String into = ardAccessFence.getIntoShipmentId(); |
| | | ArdOilWall ardOilWall = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).one(into); |
| | | pts.clear(); |
| | | String[] coord = ardOilWall.getCoord().split(","); |
| | | for (int j = 0; j < coord.length; j = j + 3) { |
| | | pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j + 1]))); |
| | | } |
| | | if (!GeoTools.IsPtInPoly(point, pts)) { |
| | | //å¼åºäºå¸æ²¹ç¹å´æ ï¼å é¤è¯¥æ¡è½¦è¾æ°æ® |
| | | ((ArdAccessFenceServiceImpl) SpringUtils.getBean("ArdAccessFenceServiceImpl")).delAccess(carId); |
| | | //车è¾å¼åºè£
æ²¹ç¹ |
| | | ardAccessFence.setOutShipmentId(into); |
| | | ardAccessFence.setOutShipmentTime(time); |
| | | } |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); |
| | | }else { |
| | | //车è¾å·²ç»å¼åºè£
æ²¹ç¹ï¼å¤ææ¯å¦è¿å
¥å¸æ²¹ç¹ |
| | | String unload = ardAccessFence.getIntoUnloadId(); |
| | | //妿unload为空ï¼å¤ææ¯å¦è¿å
¥å¸æ²¹ç¹ |
| | | if (unload == null) { |
| | | //è½¦è¾æªè¿å
¥å¸æ²¹ç¹ |
| | | List<ArdOilWall> ardOilWalls = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).uploadAll(); |
| | | //æ¯å¦å¨è·¯ä¸ |
| | | Boolean isRoad = true; |
| | | for (int i = 0; i < ardOilWalls.size(); i++) { |
| | | pts.clear(); |
| | | ArdOilWall ardOilWall = ardOilWalls.get(i); |
| | | String[] coord = ardOilWall.getCoord().split(","); |
| | | for (int j = 0; j < coord.length; j = j + 3) { |
| | | pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j + 1]))); |
| | | } |
| | | if (GeoTools.IsPtInPoly(point, pts)) { |
| | | //è¿å
¥å¸æ²¹ç¹,åå
¥å¸æ²¹ç¹å´æ ID |
| | | ardAccessFence.setIntoUnloadId(ardOilWall.getId()); |
| | | ardAccessFence.setIntoUnloadTime(time); |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ((ArdAccessFenceServiceImpl) SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); |
| | | //å·²ç»è¿å
¥å¸æ²¹ç¹ï¼ä¸å¨è·¯ä¸ä¸éè¦å车æ¥è¦ |
| | | isRoad = false; |
| | | break; |
| | | } |
| | | } |
| | | if(isRoad){ |
| | | //妿å¨è·¯ä¸éè¦è®°å½æ¯æ¬¡åæ ä¸ä¸æ¬¡æ¯å¦ç¸åï¼å¦æä¸æ ·æ´æ°åçæ¶é´ |
| | | } |
| | | }else { |
| | | //æªå¼åºå¸æ²¹ç¹ï¼æ´æ°ç»çº¬åº¦ä¿å |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); |
| | | //车è¾å·²ç»è¿å
¥å¸æ²¹ç¹ï¼å¤ææ¯å¦å·²ç»å¼åºå¸æ²¹ç¹ |
| | | ArdOilWall ardOilWall = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).one(unload); |
| | | pts.clear(); |
| | | String[] coord = ardOilWall.getCoord().split(","); |
| | | for (int j = 0; j < coord.length; j = j + 3) { |
| | | pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j + 1]))); |
| | | } |
| | | if (!GeoTools.IsPtInPoly(point, pts)) { |
| | | //å¼åºäºå¸æ²¹ç¹å´æ ï¼å é¤è¯¥æ¡è½¦è¾æ°æ® |
| | | ((ArdAccessFenceServiceImpl) SpringUtils.getBean("ArdAccessFenceServiceImpl")).delAccess(carId); |
| | | }else { |
| | | //æªå¼åºå¸æ²¹ç¹ï¼æ´æ°ç»çº¬åº¦ä¿å |
| | | ardAccessFence.setLng(lng); |
| | | ardAccessFence.setLat(lat); |
| | | ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | //æ¸
æ·¤å
¥æ ç»æ------------ |
| | | |