瀏覽代碼

修改重复接单可能

txf 3 年之前
父節點
當前提交
c4422c6af3

+ 6 - 2
src/main/java/com/steerinfo/dil/controller/OmstruckOrderController.java

@@ -326,8 +326,12 @@ public class OmstruckOrderController extends BaseRESTfulController {
     })
     @PostMapping("/driverReceiveOrRefuse")
     public RESTfulResult driverReceiveOrRefuse(@RequestBody Map<String, Object> map) {
-        int i = omstruckOrderService.driverReceiveOrRefuse(map);
-        return success(i);
+        try {
+            int i = omstruckOrderService.driverReceiveOrRefuse(map);
+            return success(i);
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
     }
 
     @ApiOperation(value = "司机APP端调用接口查询数据 4 已下发 5 已接收")

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

@@ -69,7 +69,7 @@ public interface IOmstruckOrderService {
     int deleteOrder(Map<String, Object> map);
 
     //司机接单\拒绝
-    int driverReceiveOrRefuse(Map<String, Object> map);
+    int driverReceiveOrRefuse(Map<String, Object> map) throws RuntimeException;
 
     //查询所有接单或拒绝接单的订单
     List<Map<String, Object>> getReceiveRefuseOrder(Map<String, Object> map);

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

@@ -786,17 +786,21 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
      */
     @Override
     @Transactional
-    public synchronized int driverReceiveOrRefuse(Map<String, Object> map) {
+    public synchronized int driverReceiveOrRefuse(Map<String, Object> map) throws RuntimeException {
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         OmstruckOrder omstruckOrder = new OmstruckOrder();
         if((Integer) map.get("orderReceiveStatus") == 1) {
             List<Integer> orderIdList = omstruckOrderMapper.getReceiveOrderIdListByCapacityNum((String) map.get("capacityNumber"));
             if (orderIdList.size() > 0) {
-                return 0;
+                throw  new RuntimeException("已有接收的订单!");
             }
             omstruckOrder.setOrderStatus(new BigDecimal(5)); //5 :已接收
             //通过订单ID查询信息
             Map<String, Object> orderMessage = omstruckOrderSeparateMapper.getOrderMessagge(orderId);
+            int orderStatus = DataChange.dataToBigDecimal(orderMessage.get("orderStatus")).intValue();
+            if(orderStatus == 5 || orderStatus == 6) {
+                throw new RuntimeException("订单已被接收或已被拒绝!");
+            }
             //添加各个实绩
             omstruckOrderSeparateService.addAllSonResult(orderMessage);
             //判断订单是否是一车多单

+ 1 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.xml

@@ -73,6 +73,7 @@
                OO.ORDER_NUMBER    AS "orderNumber",
                OO.UNLOAD_POINT_ID AS "unloadPointId",
                OO.LINE_ID     "lineId",
+               OO.ORDER_STATUS "orderStatus",
                TTR.RESULT_TOTAL_ID  "resultTotalId"
         FROM OMSTRUCK_ORDER OO
             left join TMSTRUCK_TOTAL_RESULT TTR