Przeglądaj źródła

经销商订单发货增加快递和无需物流类型

cup 3 lat temu
rodzic
commit
f819f7f446

+ 29 - 5
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelOrderMgrController.java

@@ -28,6 +28,7 @@ import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.domain.DeliveryCompany;
 import com.qs.mp.common.enums.BusinessType;
+import com.qs.mp.common.enums.DeliverTypeEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.common.enums.TicketPkgStatusEnum;
 import com.qs.mp.common.service.IDeliveryCompanyService;
@@ -44,6 +45,9 @@ import io.swagger.annotations.ApiOperation;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
 import lombok.AllArgsConstructor;
 import ma.glasnost.orika.MapperFacade;
 
@@ -161,6 +165,9 @@ public class ChannelOrderMgrController extends BaseApiController {
   @Log(title = "经销商订单发货", businessType = BusinessType.UPDATE)
   @PostMapping("/ship")
   @ApiOperation(value = "订单发货" , notes = "在订单发货页面提交")
+  @ApiResponses(
+		  @ApiResponse(code = 200, message = "操作成功", response = AjaxResult.class)
+  )
   @PreAuthorize("@ss.hasPermi('order:channel:ship')")
   public AjaxResult ship(@RequestBody ChannelOrderShipParam shipParam) {
 		if(null == shipParam || StringUtils.isBlank(shipParam.getOrderId())) {
@@ -173,14 +180,31 @@ public class ChannelOrderMgrController extends BaseApiController {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
 
+	  Integer deliveryType = shipParam.getDeliveryType();
+	  if (null == deliveryType) {
+		  return error("物流类型参数为空");
+	  }
+
 		if(null != shipParam && null != shipParam.getPkgIds()
 				&& shipParam.getPkgIds().size() > 0) {
 			ChannelOrder channelOrder = new ChannelOrder();
-			channelOrder.setOrderId(shipParam.getOrderId());
-			channelOrder.setChannelId(order.getChannelId());
-			channelOrder.setDeliveryId(shipParam.getDeliveryId());
-			channelOrder.setDeliveryFlowId(shipParam.getDeliveryFlowId());
-			channelOrder.setDeliveryTime(new Date());
+
+
+
+			if (DeliverTypeEnum.NO_DELIVER.getValue().equals(deliveryType)) {
+				// 无需物流,设置发货时间为当前时间
+				channelOrder.setOrderId(shipParam.getOrderId());
+				channelOrder.setChannelId(order.getChannelId());
+				channelOrder.setDeliveryTime(new Date());
+
+			} else if (DeliverTypeEnum.DELIVER.getValue().equals(deliveryType)) {
+				// 快递发货,设置物流信息
+				channelOrder.setOrderId(shipParam.getOrderId());
+				channelOrder.setChannelId(order.getChannelId());
+				channelOrder.setDeliveryId(shipParam.getDeliveryId());
+				channelOrder.setDeliveryFlowId(shipParam.getDeliveryFlowId());
+				channelOrder.setDeliveryTime(new Date());
+			}
 			boolean rtn = channelOrderService.channelOrderShip(channelOrder, shipParam.getPkgIds());
 			return rtn ? AjaxResult.success() : AjaxResult.error("发货失败");
 		}

+ 4 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/ChannelOrderShipParam.java

@@ -28,6 +28,10 @@ public class ChannelOrderShipParam {
 	@ApiModelProperty(value = "订单编号", required = false)
 	private String orderId;
 
+	@NotNull(message = "配送类型不能为空")
+	@ApiModelProperty(value = "配送类型 1快递 2 无需物流", required = false)
+	private Integer deliveryType;
+
 	/**
 	 * 物流公司ID
 	 */

+ 6 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelOrder.java

@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.annotation.Version;
 import com.qs.mp.common.enums.ChannelOrderStatusEnum;
 import java.io.Serializable;
 import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -138,6 +140,10 @@ public class ChannelOrder implements Serializable {
   @TableField("delivery_time")
   private Date deliveryTime;
 
+  @TableField("confirm_time")
+  @ApiModelProperty("确认收货时间")
+  private Date confirmTime;
+
   /**
    * 创建时间
    */

+ 10 - 3
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderServiceImpl.java

@@ -209,7 +209,7 @@ public class ChannelOrderServiceImpl extends
   }
 
 	@Override
-	@Transactional
+	@Transactional(rollbackFor = Exception.class)
 	public boolean channelOrderShip(ChannelOrder channelOrder, List<String> pkgIdList) {
 		if(null == channelOrder || StringUtils.isBlank(channelOrder.getOrderId())) {
 			throw new ServiceException("发货订单异常,发货失败");
@@ -271,8 +271,15 @@ public class ChannelOrderServiceImpl extends
 			boolean rtn = ticketPackageService.update(updateWrapper);
 			if(rtn){
 				// 修改订单信息
-				channelOrder.setStatus(ChannelOrderStatusEnum.NOT_CONFIRM);
-				return updateById(channelOrder);
+                String deliveryFlowId = channelOrder.getDeliveryFlowId();
+
+                // 物流单号为空则表示无需物流发货
+                if (StringUtils.isBlank(deliveryFlowId)) {
+                    channelOrder.setStatus(ChannelOrderStatusEnum.FINISHED);
+                } else {
+                    channelOrder.setStatus(ChannelOrderStatusEnum.NOT_CONFIRM);
+                }
+                return updateById(channelOrder);
 			}
 		}
 		return false;