Bläddra i källkod

运输服务-承运订单-接单操作

lengfaqiang 2 år sedan
förälder
incheckning
5da38c35c7
19 ändrade filer med 200 tillägg och 24 borttagningar
  1. 1 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java
  2. 1 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/base/BaseModel.java
  3. 9 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/common/enums/LogisticsOrderEnum.java
  4. 13 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  5. 30 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  6. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java
  7. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderAddress.java
  8. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderCirculate.java
  9. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderContract.java
  10. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderGoods.java
  11. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderTrack.java
  12. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java
  13. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java
  14. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTicket.java
  15. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTrack.java
  16. 6 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderDTO.java
  17. 38 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderTakingDTO.java
  18. 67 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  19. 25 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

+ 1 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java

@@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
 import java.util.List;
-import java.util.Objects;
 import java.util.Set;
 
 @Slf4j
@@ -77,7 +76,7 @@ public class GlobalSystemExceptionHandler {
             }
         }
         String errMsg = sb.toString();
-        log.info("参数校验异常m:{}", errMsg);
+        log.info("参数校验异常:{}", errMsg);
         return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE, errMsg);
     }
 

+ 1 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/base/BaseModel.java

@@ -1,6 +1,5 @@
 package com.sckw.core.model.base;
 
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -32,7 +31,7 @@ public class BaseModel implements Serializable {
 	/**
 	 * 状态:0正常/1锁定
 	 */
-	private Integer status = 0;
+	private Integer status;
 
 	/**
 	 * 创建人

+ 9 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/common/enums/LogisticsOrderEnum.java

@@ -6,14 +6,17 @@ package com.sckw.transport.common.enums;
  * @date 2023-07-07 14:07:23
  */
 public enum LogisticsOrderEnum {
-    TO_BE_PLANNED(0, "toBePlanned", "0", "待计划"),
+    TO_BE_PLANNED(0, "waitingSigning", "0", "待签约"),
     PENDING_ORDER(1, "pendingOrder", "1", "待接单"),
     WAIT_DELIVERY(2, "waitDelivery", "2", "待派车"),
     IN_TRANSIT(3, "inTransit", "3", "运输中"),
-    WAIT_LOADING(4, "waitLoading", "4", "待装货"),
-    WAIT_UNLOADING(5, "waitUnLoading", "5", "待卸货"),
-    END_LOADING(6, "endLoading", "6", "装货完成"),
-    END_UNLOADING(7, "endUnloading", "7", "卸货完成");
+    //    WAIT_LOADING(4, "waitLoading", "4", "待装货"),
+//    WAIT_UNLOADING(5, "waitUnLoading", "5", "待卸货"),
+    HAVE_FINISHED(4, "haveFinished", "4", "已完成"),
+    HAVE_RECONCILED(5, "haveReconciled", "5", "已对账"),
+    HAVE_ALREADY_SETTLED(6,"haveAlreadySettled","5","已结算"),
+    SEND_BACK(7,"sendBack","5","已退回");
+
     private final Integer code;
     private final String value;
     private final String status;
@@ -50,4 +53,4 @@ public enum LogisticsOrderEnum {
         }
         return null;
     }
-}
+    }

+ 13 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -5,6 +5,7 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
+import com.sckw.transport.model.dto.OrderTakingDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.vo.ConsignOrderVO;
 import com.sckw.transport.service.AcceptCarriageOrderService;
@@ -12,6 +13,8 @@ import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -78,7 +81,16 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单-分包托运s
+     * 承运订单-接单
+     * @param orderDTO
+     * @return
+     */
+    @RequestMapping(value = "/orderTaking", method = RequestMethod.POST)
+    public HttpResult orderTaking(@Validated @RequestBody OrderTakingDTO orderDTO) {
+        return acceptCarriageOrderService.orderTaking(orderDTO);
+    }
+    /**
+     * 承运订单-分包托运
      * @param query 查询参数
      * @return
      */

+ 30 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -57,5 +57,35 @@ public class ConsignOrderController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+    /**
+     * 托运订单-撤销托运
+     *
+     * @param orderDto
+     * @return
+     */
+    @RequestMapping(value = "/cancelConsign", method = RequestMethod.POST)
+    public HttpResult cancelConsign(@Validated @RequestBody OrderDTO orderDto) {
+        try {
+            return consignOrderService.cancelConsign(orderDto);
+        } catch (Exception e) {
+            log.error("托运订单-撤销托运运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
 
+    /**
+     * 托运订单-完结订单
+     *
+     * @param orderDto
+     * @return
+     */
+    @RequestMapping(value = "/commitOrderFinish", method = RequestMethod.POST)
+    public HttpResult commitOrderFinish(@Validated @RequestBody OrderDTO orderDto) {
+        try {
+            return null;
+        } catch (Exception e) {
+            log.error("托运订单-撤销托运运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java

@@ -158,7 +158,7 @@ public class KwtLogisticsOrder implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderAddress.java

@@ -93,7 +93,7 @@ public class KwtLogisticsOrderAddress implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderCirculate.java

@@ -77,7 +77,7 @@ public class KwtLogisticsOrderCirculate implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderContract.java

@@ -38,7 +38,7 @@ public class KwtLogisticsOrderContract implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderGoods.java

@@ -54,7 +54,7 @@ public class KwtLogisticsOrderGoods implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderTrack.java

@@ -34,7 +34,7 @@ public class KwtLogisticsOrderTrack implements Serializable {
     /**
      * 用户状态(待受理、待运输、运输中、已完成、已取消)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java

@@ -61,7 +61,7 @@ public class KwtLogisticsOrderUnit implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java

@@ -77,7 +77,7 @@ public class KwtWaybillOrder implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTicket.java

@@ -59,7 +59,7 @@ public class KwtWaybillOrderTicket implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTrack.java

@@ -33,7 +33,7 @@ public class KwtWaybillOrderTrack implements Serializable {
     /**
      * 用户状态(待受理、待运输、运输中、已完成、已取消)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 6 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderDTO.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.model.dto;
 
-import jakarta.validation.constraints.NotBlank;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -12,8 +13,10 @@ import lombok.experimental.Accessors;
 @Data
 @Accessors(chain = true)
 public class OrderDTO {
-    @NotBlank(message = "单据编号不能为空")
+    @JsonProperty("orderNo")
+    @NotNull(message = "单据编号不能为空")
     private String orderNo;
-    @NotBlank(message = "数据id不能为空")
+    @JsonProperty("id")
+    @NotNull(message = "数据id不能为空")
     private String id;
 }

+ 38 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderTakingDTO.java

@@ -0,0 +1,38 @@
+package com.sckw.transport.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 操作订单-接单操作
+ * @date 2023-07-12 15:07:32
+ */
+@Data
+public class OrderTakingDTO {
+    /**
+     * 单据号
+     */
+    @NotNull(message = "单据号不能为空")
+    @JsonProperty(value = "lOrderNo")
+    private String lOrderNo;
+    /**
+     * 数据主键id
+     */
+    @NotNull(message = "主键id不能为空")
+    @JsonProperty(value = "lOrderId")
+    private String lOrderId;
+    /**
+     * 是否接单的类型(true:接受;false:拒绝)
+     */
+    @NotNull(message = "接单类型不能为空")
+    @JsonProperty(value = "type")
+    private Boolean type;
+    /**
+     * 驳回时填写原因
+     */
+    @JsonProperty(value = "remark")
+    private String remark;
+
+}

+ 67 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -1,18 +1,34 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.common.enums.LogisticsOrderEnum;
+import com.sckw.transport.dao.KwtLogisticsOrderMapper;
+import com.sckw.transport.dao.KwtLogisticsOrderTrackMapper;
+import com.sckw.transport.model.KwtLogisticsOrder;
+import com.sckw.transport.model.KwtLogisticsOrderTrack;
+import com.sckw.transport.model.dto.OrderDTO;
+import com.sckw.transport.model.dto.OrderTakingDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
 import com.sckw.transport.model.vo.CarWaybillVO;
 import com.sckw.transport.model.vo.ConsignmentVO;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -24,6 +40,12 @@ import java.util.List;
 @Service
 public class AcceptCarriageOrderService {
 
+    @Autowired
+    private KwtLogisticsOrderMapper logisticsOrderMapper;
+
+    @Autowired
+    private KwtLogisticsOrderTrackMapper logisticsOrderTrackMapper;
+
     public HttpResult list(AcceptCarriageOrderQuery query) {
         List<AcceptCarriageOrderVO> list = new ArrayList<>();
         AcceptCarriageOrderVO acceptCarriageOrderVo = new AcceptCarriageOrderVO();
@@ -52,4 +74,49 @@ public class AcceptCarriageOrderService {
     public List export(AcceptCarriageOrderQuery query) {
         return null;
     }
+
+    public List acceptOrder(OrderDTO orderDTO) {
+
+        return null;
+    }
+
+    /**
+     * 是否接单
+     *
+     * @param orderDTO
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult orderTaking(OrderTakingDTO orderDTO) {
+        log.info("接单操作接收数据:{}", JSONObject.toJSONString(orderDTO));
+        HttpResult result = new HttpResult();
+        result.setCode(HttpStatus.SUCCESS_CODE);
+        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
+                .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
+        if (logisticsOrder == null) {
+            result.setMsg("单据不存在!");
+        }
+        if (orderDTO.getType()) {
+            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrderTrack::getLOrderId, orderDTO.getLOrderId())
+                    .set(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.WAIT_DELIVERY.getCode())
+                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
+                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date()));
+        } else {
+            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrderTrack::getLOrderId, orderDTO.getLOrderId())
+                    .set(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.SEND_BACK.getCode())
+                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
+                    .set(StringUtils.isNotBlank(orderDTO.getRemark()), KwtLogisticsOrderTrack::getRemark, orderDTO.getRemark())
+                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date()));
+        }
+        logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
+                .set(KwtLogisticsOrder::getUpdateTime, new Date())
+                .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId()));
+        return result;
+    }
 }

+ 25 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.utils.CollectionUtils;
@@ -19,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
@@ -174,4 +176,27 @@ public class ConsignOrderService {
         }
         return HttpResult.ok(carDataVOS);
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult cancelConsign(OrderDTO orderDto) {
+        log.info("订单-撤销托运请求参数:{}", JSONObject.toJSONString(orderDto));
+        HttpResult result = new HttpResult();
+        KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .eq(KwtLogisticsOrder::getId, orderDto.getId())
+                .eq(KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
+                .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
+        if (logisticsOrder == null) {
+            result.setMsg("单据不存在");
+        }
+        /**以此字段判别是否存在分包操作*/
+        if (logisticsOrder.getPid()==null){//撤销数据回归到贸易订单
+            //并不属于被分包
+            //待接单状态下才能撤销托运
+            //
+
+        }else {
+            //即代表存在分包,当次是属于被分包.需要将数据回归到上游数据。
+        }
+        return result;
+    }
 }