txf 3 rokov pred
rodič
commit
d987b63f58

+ 10 - 0
src/main/java/com/steerinfo/dil/controller/OmstruckOrderController.java

@@ -1341,6 +1341,16 @@ public class OmstruckOrderController extends BaseRESTfulController {
     @PostMapping("/driverConfirmation")
     @PostMapping("/driverConfirmation")
     public RESTfulResult driverConfirmation(@RequestBody(required = false) Map<String,Object> mapvalue) {
     public RESTfulResult driverConfirmation(@RequestBody(required = false) Map<String,Object> mapvalue) {
         int result = omstruckOrderService.driverConfirmation(mapvalue);
         int result = omstruckOrderService.driverConfirmation(mapvalue);
+        if(result == 0){
+            return failed(result);
+        }
+        return success(result);
+    }
+
+    @ApiOperation(value = "查询订单是否确认")
+    @PostMapping("/getDriverConfirmation")
+    public RESTfulResult getDriverConfirmation(@RequestBody(required = false) Map<String,Object> map) {
+        boolean result = omstruckOrderService.getDriverConfirmation(map);
         return success(result);
         return success(result);
     }
     }
 
 

+ 6 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -256,4 +256,10 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     BigDecimal getCarrierIdBySSO(String carrierSsoId);
     BigDecimal getCarrierIdBySSO(String carrierSsoId);
 
 
     List<Map<String, Object>> getOrderMaterialList(BigDecimal orderId);
     List<Map<String, Object>> getOrderMaterialList(BigDecimal orderId);
+
+    //查询订单是否确认
+    Integer getDriverConfirmation(BigDecimal orderId);
+
+    //查看当前订单最大路段顺序号 与当前订单路段顺序号
+    Map<String, Object> getMaxLineSeqByOrderId(BigDecimal orderId);
 }
 }

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

@@ -171,6 +171,9 @@ public interface IOmstruckOrderService {
     //司机确认订单
     //司机确认订单
     int driverConfirmation(Map<String, Object> map);
     int driverConfirmation(Map<String, Object> map);
 
 
+    //查询订单是否确认
+    boolean getDriverConfirmation(Map<String, Object> map);
+
     //通过运输订单号查询订单信息给司机
     //通过运输订单号查询订单信息给司机
     Map<String, Object> getMessageToApp(Map<String, Object> map);
     Map<String, Object> getMessageToApp(Map<String, Object> map);
 
 

+ 34 - 2
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -1570,15 +1570,47 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Override
     @Override
     public int driverConfirmation(Map<String, Object> map) {
     public int driverConfirmation(Map<String, Object> map) {
         OmstruckOrder omstruckOrder = new OmstruckOrder();
         OmstruckOrder omstruckOrder = new OmstruckOrder();
+        BigDecimal orderId;
         //通过运输订单号查询运输订单Id
         //通过运输订单号查询运输订单Id
-        Integer orderId = omstruckOrderMapper.getOrderIdByOrderNumber((String) map.get("orderNumber"));
-        omstruckOrder.setOrderId(new BigDecimal(orderId));
+        if(map.get("orderId") == null){
+            orderId = new BigDecimal(omstruckOrderMapper.getOrderIdByOrderNumber((String) map.get("orderNumber")));
+        }else {
+            orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        }
+        Map<String, Object> seqMap = omstruckOrderMapper.getMaxLineSeqByOrderId(orderId);
+        if(seqMap != null){
+            //如果没有到最后一步之前 不允许确认
+            BigDecimal orderLineSequence = DataChange.dataToBigDecimal(seqMap.get("orderLineSequence"));
+            BigDecimal maxSegmentSqe = DataChange.dataToBigDecimal(seqMap.get("segmentSqe"));
+            int i = maxSegmentSqe.intValue() - orderLineSequence.intValue();
+            if( i != 1){
+                return 0;
+            }
+        }
+
+        omstruckOrder.setOrderId(orderId);
         //设置司机确认订单
         //设置司机确认订单
         omstruckOrder.setDriverConfirmation(new BigDecimal(1));
         omstruckOrder.setDriverConfirmation(new BigDecimal(1));
         omstruckOrder.setUpdateTime(new Date());
         omstruckOrder.setUpdateTime(new Date());
         return omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
         return omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
     }
     }
 
 
+    /**
+     * 查询订单是否确认
+     * @Author TXF
+     * @Date 2022/1/4 23:36
+     * @param map {orderId}
+     * @return
+     **/
+    public boolean getDriverConfirmation(Map<String, Object> map){
+        Integer driverConfirmation = omstruckOrderMapper.getDriverConfirmation(DataChange.dataToBigDecimal(map.get("orderId")));
+        if(driverConfirmation == null){
+            return true;
+        }else {
+            return false;
+        }
+    }
+
     /**
     /**
      * 通过运输订单号查询订单信息给司机
      * 通过运输订单号查询订单信息给司机
      * @param map
      * @param map

+ 20 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -2952,4 +2952,24 @@
         ON RM.MATERIAL_ID = OOM.MATERIAL_ID
         ON RM.MATERIAL_ID = OOM.MATERIAL_ID
         WHERE OOM.ORDER_ID = #{orderId}
         WHERE OOM.ORDER_ID = #{orderId}
     </select>
     </select>
+
+    <!--  查询订单是否确认  -->
+    <select id="getDriverConfirmation" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select OO.DRIVER_CONFIRMATION
+        from OMSTRUCK_ORDER OO
+        where OO.ORDER_ID = #{orderId}
+    </select>
+
+<!--  查看当前订单最大路段顺序号  -->
+    <select id="getMaxLineSeqByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select OO.ORDER_LINE_SEQUENCE "orderLineSequence",
+               (select max(RLS.SEGMENT_SQE)
+                    from RMS_LINE_SEGEMNT RLS
+                   where RLS.LINE_ID = RL.LINE_ID
+               )    "segmentSqe"
+        from OMSTRUCK_ORDER OO
+        join RMS_LINE RL
+            on RL.LINE_ID = OO.LINE_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
 </mapper>
 </mapper>