Kaynağa Gözat

修改路径结束时间

liyg 2 yıl önce
ebeveyn
işleme
0881bc392a

+ 10 - 22
src/main/java/com/steerinfo/dil/controller/OffSiteTransportationController.java

@@ -287,33 +287,27 @@ public class OffSiteTransportationController extends BaseRESTfulController {
             //保存路线
             String redisJson = (String) redisTemplate.opsForValue().get(prefixOrder+":"+orderNumber);
             HashMap mapValue = JSON.parseObject(redisJson, HashMap.class);
+            if(mapValue!=null){
+                mapValue.put("qryBtm",new Date());
+            }
             String json = zhongJiaoXingLu.visualRoute(mapValue);
             ViewVisualization to=null;
             if (json!=null){
                 //设置60天后过期
-                Calendar calendar=Calendar.getInstance();
-                long agoTime= calendar.getTime().getTime();
-                calendar.add(Calendar.MONTH,2);
-                long lateTime= calendar.getTime().getTime();
-                long saveTime=(lateTime-agoTime)/1000;
-                redisTemplate.opsForValue().set(prefixLine+":"+orderNumber, json, saveTime, TimeUnit.SECONDS);
-                //删除订单
+                redisTemplate.opsForValue().set(prefixLine+":"+orderNumber, json, 60*60*24*60, TimeUnit.SECONDS);
+                //删除redis订单前缀:prefixOrder
                 redisTemplate.delete(prefixOrder+":"+orderNumber);
                 redisTemplate.delete(prefixOrder+":"+orderNumber+suffix);
                 //添加运输距离
-                to= (ViewVisualization) JSON.parseObject(json,ViewVisualization.class);
-
+                to=  JSON.parseObject(json,ViewVisualization.class);
             }else {
                 HashMap<String,Object> hashMap=new HashMap();
                 hashMap.put("orderNumber",orderNumber);
                 Map<String,Object> resultMap= offSiteTransportationService.getStartAndEndCapacityNumber(hashMap);
-
                 if (resultMap!=null){
                     json= getPathJSON(resultMap.get("capacityNumber").toString(),resultMap.get("resultOutGateTime").toString());
-
-
                     if (json!=null&&!json.equals("")){
-                        to= (ViewVisualization) JSON.parseObject(json,ViewVisualization.class);
+                        to=JSON.parseObject(json,ViewVisualization.class);
                     }
                 }
             }
@@ -378,17 +372,11 @@ public class OffSiteTransportationController extends BaseRESTfulController {
             redisMap.put("endLonlat", Lng2.substring(0, 9) + "," + Lat2.substring(0, 8));
             redisMap.put("vclN", capacityNumber);
             redisMap.put("vco","2");
-            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
             String qryBtm=resultOutGateTime;
-            //获得23小时、45分钟之后的时间
-            Date parse = simpleDateFormat.parse(qryBtm);
-            //时间添加
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(parse);
-            calendar.add(Calendar.HOUR_OF_DAY, 23);
-            calendar.add(Calendar.SECOND, 45);
             redisMap.put("qryBtm", qryBtm);
-            redisMap.put("qryEtm",simpleDateFormat.format(calendar.getTime()));
+            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            //时间添加
+            redisMap.put("qryEtm",simpleDateFormat.format(new Date()));
             System.out.println(redisMap);
             String json = zhongJiaoXingLu.visualRoute(redisMap);
             System.out.println(json.length()>100?json.substring(0,100):json);

+ 9 - 4
src/main/java/com/steerinfo/route/service/impl/RouteServiceImpl.java

@@ -464,6 +464,7 @@ public class RouteServiceImpl implements RouteService {
 
         HashMap routeMap = JSON.parseObject(redisJson, HashMap.class);
         String json = "";
+        //查询路线信息
         if (routeMap != null) {
             json = zhongJiaoXingLu.visualRoute(routeMap);
         } else {
@@ -531,8 +532,13 @@ public class RouteServiceImpl implements RouteService {
                     //redis 存储的时间(秒)
                     long saveTime = (reductionTime1 - reductionTime2) / 1000;
                     redisMap.put("qryBtm", simpleDateFormat.format(simpleDateFormat.parse(qryBtm)));
-                    String qryEtm = simpleDateFormat.format(calendar.getTime());
-                    redisMap.put("qryEtm", qryEtm);
+                    //设置结束时间为签收时间
+                    if(resultMap.get("receiptTime")==null){
+                        String qryEtm = simpleDateFormat.format(new Date());
+                        redisMap.put("qryEtm", qryEtm);
+                    }else{
+                        redisMap.put("qryEtm",""+resultMap.get("receiptTime"));
+                    }
                     if (saveTime > 1800) {
                         String orderUrl = prefixOrder + ":" + mapValue.get("orderNumber").toString();
 
@@ -558,10 +564,9 @@ public class RouteServiceImpl implements RouteService {
                     }
 
                 }
-            } else {
-
             }
         }
+        //处理结果,返回路线详情
         JSONObject jsonObject = JSONObject.parseObject(json);
         if (json != null && jsonObject != null && jsonObject.get("status").toString().equals(1001 + "")) {
             //初始开始链路和结束线路、开始点、结束点、当前点的集合

+ 13 - 5
src/main/java/com/steerinfo/route/threeRequest/ZhongJiaoXingLu.java

@@ -60,15 +60,23 @@ public class ZhongJiaoXingLu {
             map.put("vclN", routeMap.get("vclN").toString());
             map.put("vco",routeMap.get("vco").toString());
             map.put("qryBtm", routeMap.get("qryBtm").toString());
-            //判断结束时间是否大于现在时间
+            //判断结束时间是否大于起始时间,且在72小时以内
             SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             SimpleDateFormat simpleDateFormat2=new SimpleDateFormat("yyyy-MM-dd 23:59:59");
-            Date nowDate=simpleDateFormat.parse(simpleDateFormat2.format(new Date()));
-            if (nowDate.getTime()<simpleDateFormat.parse(routeMap.get("qryEtm").toString()).getTime()){
-                map.put("qryEtm", simpleDateFormat.format(nowDate));
-            }else {
+            Date btm=simpleDateFormat.parse(routeMap.get("qryBtm").toString());//起始时间
+            Date etm=new Date(btm.getTime()+1000*60*60*72);//最大结束时间
+            if(etm.getTime() > new Date().getTime()){
+                //如果最大结束时间大于当前时间,则结束时间为当前时间
+                etm=new Date();
+            }
+            //判断结束时间是否在规定时间范围之内
+            if (routeMap.get("qryEtm")!=null
+            && simpleDateFormat.parse(routeMap.get("qryEtm").toString()).getTime()<etm.getTime()
+            && simpleDateFormat.parse(routeMap.get("qryEtm").toString()).getTime() > btm.getTime()){
                 Date qryEtm = simpleDateFormat.parse(routeMap.get("qryEtm").toString());
                 map.put("qryEtm", simpleDateFormat2.format(qryEtm));
+            }else {
+                map.put("qryEtm", simpleDateFormat.format(etm));
             }
             //routeMap.get("qryEtm").toString()
             map.put("timeNearby", "30");

+ 5 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -717,6 +717,8 @@
                  SELECT
                     -- 出厂时间
                     to_char(TLFR.RESULT_OUT_GATE_TIME,'yyyy-mm-dd hh24:mi:ss')  "resultOutGateTime",
+                    -- 签收时间
+                    to_char(TRR.INSERT_TIME,'yyyy-mm-dd hh24:mi:ss')  "receiptTime",
                     --出厂抓拍图片
                     TLFR.RESULT_TRUCK_SNAPSHOT_PICTURE "resultTruckSnapshotPicture",
                     --出厂方式
@@ -748,6 +750,8 @@
                     TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
                     --  总实绩
                     LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                    -- 签收实绩
+                    LEFT JOIN TMSTRUCK_RECEIPT_RESULT TRR ON TRR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
                     -- 运输订单
                     LEFT JOIN OMSTRUCK_ORDER OO ON TTR.ORDER_ID = OO.ORDER_ID
                      -- 销售订单信息
@@ -774,6 +778,7 @@
                     AND OO.ORDER_TYPE =1 AND OO.ORDER_NUMBER=#{orderNumber}
                     
                     )
+                FETCH NEXT 1 ROWS ONLY
     </select>