瀏覽代碼

修改内转计时结束推单

zx 3 年之前
父節點
當前提交
9b41583d48

+ 4 - 0
src/main/java/com/steerinfo/dil/feign/OmsFeign.java

@@ -46,6 +46,10 @@ public interface OmsFeign {
     @PostMapping("api/v1/oms/utilscontroller/addPurInwardOrder")
     Map<String,Object> addPurInwardOrder(@RequestParam BigDecimal orderId);
 
+
+    @PostMapping("api/v1/oms/omstruckorderseparates/addNewTransportOrder")
+    Map<String,Object> addNewTransportOrder(@RequestParam BigDecimal orderId);
+
     @PostMapping("api/v1/oms/omstruckorderseparates/closeInwardOrder")
     Map<String,Object> closeInwardOrder(@RequestParam("orderId") Integer orderId, @RequestParam("sqe") Integer sqe);
 

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.java

@@ -34,6 +34,9 @@ public interface TmstruckTimeTaskResultMapper extends IBaseMapper<TmstruckTimeTa
     //查询计时作业
     List<Map<String, Object>> getAllTimeTaskResult(Map<String, Object> map);
 
+    //根据运输订单号查找需要用车时长
+    Map<String,Object>  selectInwardDueTimeByOrderId(BigDecimal orderId);
+
     //根据运输订单id查找实绩中是否含有已经计时结束的实绩
     int CountTimeTaskByOrderId(BigDecimal orderId);
 

+ 3 - 0
src/main/java/com/steerinfo/dil/service/ITmstruckTimeTaskResultService.java

@@ -40,6 +40,9 @@ public interface ITmstruckTimeTaskResultService {
     //用车单位确认暂停结束
     int unitSureEndTimeout(Map<String, Object> map);
 
+    //确认暂停结束后进行推单
+    int pushOrderForPause(Map<String,Object> map);
+
     //司机申请结束
     int applyEndTime(Map<String, Object> map);
 

+ 36 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.service.impl;
 
+import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.TmstruckTimeTaskResultMapper;
 import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckTimeTaskResult;
@@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.xml.crypto.Data;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
@@ -38,6 +40,9 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
     private UtilsMapper utilsMapper;
     @Autowired
     private UtilsServiceImpl utilsService;
+    @Autowired
+    private OmsFeign omsFeign;
+
 
 
     /**
@@ -146,6 +151,9 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
         //如果订单类型为5
         String personnelSsoId =(String) map.get("personnelSsoId");
         String orderNumber =(String) map.get("orderNumber");
+        //根据运输订单号查找运输订单id
+        BigDecimal orderId = utilsMapper.getOrderIdByOrderNumber(orderNumber);
+        map.put("orderId",orderId);
         BigDecimal inwardType =DataChange.dataToBigDecimal(map.get("inwardType"));
         if (inwardType.intValue()==5){
             generateTimeTaskResult(map);
@@ -164,11 +172,39 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
             tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
             tmstruckTimeTaskResult.setResultValue(new BigDecimal((dueTime/(1000*60))));
             tmstruckTimeTaskResult.setUpdateTime(new Date());
+            tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
             i+=tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
+            //判断计时结束后推送新的订单
+            pushOrderForPause(map);
         }
 
         return i;
     }
+   //判断计时订单结束后推单
+    @Override
+    public int pushOrderForPause(Map<String, Object> map) {
+         int i=0;
+         //关闭内转订单
+         map.put("orderStatus", 2);
+         i = utilsMapper.updateOrderStatusByOrderIdOrNum(map);
+         BigDecimal orderId1 = DataChange.dataToBigDecimal(map.get("orderId"));
+         map= tmstruckTimeTaskResultMapper.selectInwardDueTimeByOrderId(orderId1);
+        //根据运输订单id查找需求日期是否超过一个月
+        if(map != null) {
+            Date dueDate = (Date) map.get("dueTime");
+            //当前时间小于截至日期
+            long DueTime = dueDate.getTime() + 86400000;
+            //获取当前时间
+            Date date = new Date();
+            long nowTime = date.getTime();
+            if (nowTime < DueTime) {
+                //推送
+                 omsFeign.addNewTransportOrder(orderId1);
+            }
+
+        }
+        return i;
+    }
 
     /**
      * 司机申请结束

+ 12 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.xml

@@ -807,4 +807,16 @@
     WHERE OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE=3 and TTTR.RESULT_VALUE IS not NULL
   </select>
 
+    <select id="selectInwardDueTimeByOrderId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+      select AIR.DUE_DATE  "dueTime"
+      from OMSTRUCK_ORDER OO
+      left join AMSTRUCK_INWARD_PLAN AIP
+                       on AIP.PLAN_ID=OO.ORDER_PLAN_ID
+             left join AMSTRUCK_REQUIREMENT_PLAN ARP
+                       on ARP.PLAN_ID=AIP.PLAN_ID
+             left join AMSTRUCK_INWARD_REQUIREMENT AIR
+                       on AIR.REQUIREMENT_ID=ARP.REQUIREMENT_ID
+      where OO.ORDER_ID=#{orderId}
+    </select>
+
 </mapper>