完善分配供应商发货功能
This commit is contained in:
parent
87e52e1963
commit
11664f71f4
|
|
@ -0,0 +1,18 @@
|
||||||
|
package cn.qihangerp.common.bo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ShipOrderAllocateShipBo {
|
||||||
|
private String Id;//订单id
|
||||||
|
|
||||||
|
private BigDecimal purAmount;//采购金额
|
||||||
|
private String receiverName;//
|
||||||
|
private String receiverMobile;//
|
||||||
|
private String address;//
|
||||||
|
private String remark;
|
||||||
|
private String buyerMemo;
|
||||||
|
private String sellerMemo;
|
||||||
|
}
|
||||||
|
|
@ -883,6 +883,15 @@ CREATE TABLE `o_order_ship_list` (
|
||||||
`ship_supplier` varchar(55) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发货供应商',
|
`ship_supplier` varchar(55) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发货供应商',
|
||||||
`order_id` bigint NULL DEFAULT NULL COMMENT 'erp订单id',
|
`order_id` bigint NULL DEFAULT NULL COMMENT 'erp订单id',
|
||||||
`order_num` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单编号',
|
`order_num` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单编号',
|
||||||
|
`receiver_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收件人姓名',
|
||||||
|
`receiver_mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收件人手机号',
|
||||||
|
`address` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收件人地址',
|
||||||
|
`province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省',
|
||||||
|
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市',
|
||||||
|
`town` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区',
|
||||||
|
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||||
|
`buyer_memo` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '买家留言信息',
|
||||||
|
`seller_memo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '卖家留言信息',
|
||||||
`ship_logistics_company` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流公司',
|
`ship_logistics_company` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流公司',
|
||||||
`ship_logistics_company_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流公司code',
|
`ship_logistics_company_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流公司code',
|
||||||
`ship_logistics_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流单号',
|
`ship_logistics_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流单号',
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ package cn.qihangerp.api.order.controller;
|
||||||
import cn.qihangerp.common.AjaxResult;
|
import cn.qihangerp.common.AjaxResult;
|
||||||
import cn.qihangerp.common.PageQuery;
|
import cn.qihangerp.common.PageQuery;
|
||||||
import cn.qihangerp.common.TableDataInfo;
|
import cn.qihangerp.common.TableDataInfo;
|
||||||
|
import cn.qihangerp.common.bo.ShipOrderAllocateShipBo;
|
||||||
import cn.qihangerp.common.bo.ShopOrderShipBo;
|
import cn.qihangerp.common.bo.ShopOrderShipBo;
|
||||||
import cn.qihangerp.module.order.service.OOrderItemService;
|
import cn.qihangerp.module.order.service.OOrderItemService;
|
||||||
import cn.qihangerp.module.order.service.OOrderService;
|
import cn.qihangerp.module.order.service.OOrderService;
|
||||||
|
|
@ -129,12 +130,11 @@ public class OrderController extends BaseController
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/allocateShipmentOrder")
|
@PostMapping("/allocateShipmentOrder")
|
||||||
public AjaxResult allocateShipmentOrder(@RequestBody ShopOrderShipBo shipBo)
|
public AjaxResult allocateShipmentOrder(@RequestBody ShipOrderAllocateShipBo shipBo)
|
||||||
{
|
{
|
||||||
// var result = orderService.allocateShipmentOrder(shipBo,getUsername());
|
var result = orderService.allocateShipmentOrder(shipBo,getUsername());
|
||||||
// if(result.getCode() == 0) return AjaxResult.success();
|
if(result.getCode() == 0) return AjaxResult.success();
|
||||||
// else return AjaxResult.error(result.getMsg());
|
else return AjaxResult.error(result.getMsg());
|
||||||
return AjaxResult.error("未实现AAA");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/ship")
|
@RequestMapping("/ship")
|
||||||
public class ShipStockupController extends BaseController {
|
public class OrderShipController extends BaseController {
|
||||||
private final OOrderShipListService shipStockUpService;
|
private final OOrderShipListService shipStockUpService;
|
||||||
private final OOrderShipListItemService shipStockUpItemService;
|
private final OOrderShipListItemService shipStockUpItemService;
|
||||||
|
|
||||||
|
|
@ -122,7 +122,7 @@ public class OOrder implements Serializable {
|
||||||
private Date orderTime;
|
private Date orderTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发货类型(0仓库发货;1供应商代发;2联合发货)
|
* 发货类型(0仓库发货;1联合发货;2供应商代发;)
|
||||||
*/
|
*/
|
||||||
private Integer shipType;
|
private Integer shipType;
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,52 @@ public class OOrderShipList implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收件人姓名
|
||||||
|
*/
|
||||||
|
private String receiverName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收件人手机号
|
||||||
|
*/
|
||||||
|
private String receiverMobile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收件人地址
|
||||||
|
*/
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 省
|
||||||
|
*/
|
||||||
|
private String province;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 市
|
||||||
|
*/
|
||||||
|
private String city;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区
|
||||||
|
*/
|
||||||
|
private String town;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 买家留言信息
|
||||||
|
*/
|
||||||
|
private String buyerMemo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 卖家留言信息
|
||||||
|
*/
|
||||||
|
private String sellerMemo;
|
||||||
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<OOrderShipListItem> items;
|
private List<OOrderShipListItem> items;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package cn.qihangerp.module.order.service;
|
package cn.qihangerp.module.order.service;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.bo.ShipOrderAllocateShipBo;
|
||||||
import cn.qihangerp.common.bo.ShopOrderShipBo;
|
import cn.qihangerp.common.bo.ShopOrderShipBo;
|
||||||
import cn.qihangerp.module.order.domain.OOrder;
|
import cn.qihangerp.module.order.domain.OOrder;
|
||||||
import cn.qihangerp.module.order.domain.OOrderItem;
|
import cn.qihangerp.module.order.domain.OOrderItem;
|
||||||
|
|
@ -55,4 +56,12 @@ public interface OOrderService extends IService<OOrder> {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ResultVo<Integer> manualShipmentOrder(ShopOrderShipBo shipBo, String createBy);
|
ResultVo<Integer> manualShipmentOrder(ShopOrderShipBo shipBo, String createBy);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分配给供应商发货
|
||||||
|
* @param shipBo
|
||||||
|
* @param createBy
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ResultVo<Integer> allocateShipmentOrder(ShipOrderAllocateShipBo shipBo, String createBy);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
package cn.qihangerp.module.order.service.impl;
|
package cn.qihangerp.module.order.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.bo.ShipOrderAllocateShipBo;
|
||||||
import cn.qihangerp.common.bo.ShopOrderShipBo;
|
import cn.qihangerp.common.bo.ShopOrderShipBo;
|
||||||
import cn.qihangerp.domain.OLogisticsCompany;
|
import cn.qihangerp.domain.OLogisticsCompany;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoods;
|
||||||
import cn.qihangerp.module.goods.domain.OGoodsSku;
|
import cn.qihangerp.module.goods.domain.OGoodsSku;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsSupplier;
|
||||||
|
import cn.qihangerp.module.goods.mapper.OGoodsMapper;
|
||||||
import cn.qihangerp.module.goods.mapper.OGoodsSkuMapper;
|
import cn.qihangerp.module.goods.mapper.OGoodsSkuMapper;
|
||||||
|
import cn.qihangerp.module.goods.mapper.OGoodsSupplierMapper;
|
||||||
import cn.qihangerp.module.mapper.OLogisticsCompanyMapper;
|
import cn.qihangerp.module.mapper.OLogisticsCompanyMapper;
|
||||||
import cn.qihangerp.module.order.domain.*;
|
import cn.qihangerp.module.order.domain.*;
|
||||||
import cn.qihangerp.module.order.domain.vo.OrderDiscountVo;
|
import cn.qihangerp.module.order.domain.vo.OrderDiscountVo;
|
||||||
|
|
@ -33,9 +38,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
|
@ -54,6 +57,8 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
||||||
private final OOrderItemMapper orderItemMapper;
|
private final OOrderItemMapper orderItemMapper;
|
||||||
private final OLogisticsCompanyMapper logisticsCompanyMapper;
|
private final OLogisticsCompanyMapper logisticsCompanyMapper;
|
||||||
private final OGoodsSkuMapper oGoodsSkuMapper;
|
private final OGoodsSkuMapper oGoodsSkuMapper;
|
||||||
|
private final OGoodsMapper oGoodsMapper;
|
||||||
|
private final OGoodsSupplierMapper ogoodsSupplierMapper;
|
||||||
|
|
||||||
private final OOrderShipListMapper orderShipListMapper;
|
private final OOrderShipListMapper orderShipListMapper;
|
||||||
private final OOrderShipListItemMapper orderShipListItemMapper;
|
private final OOrderShipListItemMapper orderShipListItemMapper;
|
||||||
|
|
@ -1601,6 +1606,219 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
||||||
return ResultVo.success();
|
return ResultVo.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultVo<Integer> allocateShipmentOrder(ShipOrderAllocateShipBo shipBo, String createBy) {
|
||||||
|
if (org.springframework.util.StringUtils.isEmpty(shipBo.getId()) || shipBo.getId().equals("0"))
|
||||||
|
return ResultVo.error(ResultVoEnum.ParamsError, "缺少参数:id");
|
||||||
|
|
||||||
|
OOrder erpOrder = orderMapper.selectById(shipBo.getId());
|
||||||
|
if (erpOrder == null) {
|
||||||
|
return ResultVo.error("找不到订单数据");
|
||||||
|
} else if (erpOrder.getOrderStatus().intValue() != 1 && erpOrder.getRefundStatus().intValue() != 1) {
|
||||||
|
return ResultVo.error("订单状态不对,不允许发货");
|
||||||
|
}
|
||||||
|
List<OOrderItem> oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>().eq(OOrderItem::getOrderId, erpOrder.getId()));
|
||||||
|
if(oOrderItems==null) return ResultVo.error("订单 item 数据错误,无法发货!");
|
||||||
|
|
||||||
|
long skuIdZeroCount = oOrderItems.stream().filter(x -> x.getGoodsSkuId() == 0).count();
|
||||||
|
if(skuIdZeroCount>0) return ResultVo.error("订单 item 数据中有skuId错误的数据,请补充!");
|
||||||
|
|
||||||
|
// 按 订单明细找出同供应商 分组
|
||||||
|
Map<Long,List<OOrderItem>> supplierOrderItemList = new TreeMap<>();
|
||||||
|
Map<Long, OGoodsSupplier> supplierList = new TreeMap<>();
|
||||||
|
for(OOrderItem orderItem:oOrderItems){
|
||||||
|
OGoodsSku erpGoodsSku = oGoodsSkuMapper.selectById(orderItem.getGoodsSkuId());
|
||||||
|
if(erpGoodsSku==null) {
|
||||||
|
return ResultVo.error("订单明细找不到商品sku信息");
|
||||||
|
}
|
||||||
|
OGoods erpGoods = oGoodsMapper.selectById(erpGoodsSku.getGoodsId());
|
||||||
|
if(erpGoods==null){
|
||||||
|
return ResultVo.error("订单明细找不到商品信息");
|
||||||
|
}
|
||||||
|
OGoodsSupplier erpSupplier = ogoodsSupplierMapper.selectById(erpGoods.getSupplierId());
|
||||||
|
if(erpSupplier==null){
|
||||||
|
return ResultVo.error("订单明细商品找不到供应商信息");
|
||||||
|
}
|
||||||
|
// 组合供应商
|
||||||
|
boolean isExist = supplierOrderItemList.containsKey(erpSupplier.getId());
|
||||||
|
if(isExist){
|
||||||
|
supplierOrderItemList.get(erpSupplier.getId()).add(orderItem);
|
||||||
|
}else{
|
||||||
|
List<OOrderItem> orderItemList = new ArrayList<>();
|
||||||
|
orderItemList.add(orderItem);
|
||||||
|
supplierOrderItemList.put(Long.parseLong(erpSupplier.getId()),orderItemList);
|
||||||
|
}
|
||||||
|
supplierList.put(Long.parseLong(erpSupplier.getId()),erpSupplier);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始组装分配数据
|
||||||
|
// 遍历 Map
|
||||||
|
for (Map.Entry<Long, List<OOrderItem>> entry : supplierOrderItemList.entrySet()) {
|
||||||
|
Long supplierId = entry.getKey(); // 获取键(Long)
|
||||||
|
List<OOrderItem> orderItemList = entry.getValue(); // 获取值(List<ErpOrderItem>)
|
||||||
|
|
||||||
|
// 添加分配发货
|
||||||
|
// ErpShipment erpShipment = new ErpShipment();
|
||||||
|
// erpShipment.setShipper(1);//发货方 0 仓库发货 1 供应商发货】
|
||||||
|
// erpShipment.setSupplierId(supplierId);
|
||||||
|
// erpShipment.setSupplier(supplierList.get(supplierId)!=null?supplierList.get(supplierId).getName():"");
|
||||||
|
// erpShipment.setTenantId(erpOrder.getTenantId());
|
||||||
|
// erpShipment.setShopId(erpOrder.getShopId());
|
||||||
|
// erpShipment.setShopType(erpOrder.getShopType());
|
||||||
|
// erpShipment.setOrderId(erpOrder.getId());
|
||||||
|
// erpShipment.setOrderNum(erpOrder.getOrderNum());
|
||||||
|
// erpShipment.setOrderTime(erpOrder.getOrderTime());
|
||||||
|
// erpShipment.setShipType(1);//发货类型(1订单发货2商品补发3商品换货)
|
||||||
|
// erpShipment.setShipCompany("");
|
||||||
|
// erpShipment.setShipCompanyCode("");
|
||||||
|
// erpShipment.setShipCode("");
|
||||||
|
// erpShipment.setShipFee(BigDecimal.ZERO);
|
||||||
|
// erpShipment.setShipStatus(0);//物流状态(0 待发货1已发货2已完成)
|
||||||
|
//
|
||||||
|
// erpShipment.setPackageHeight(0.0);
|
||||||
|
// erpShipment.setPackageWeight(0.0);
|
||||||
|
// erpShipment.setPackageLength(0.0);
|
||||||
|
// erpShipment.setPackageWidth(0.0);
|
||||||
|
// erpShipment.setPacksgeOperator("");
|
||||||
|
//// erpShipment.setPackages(JSONObject.toJSONString(oOrderItems));
|
||||||
|
// erpShipment.setRemark("");
|
||||||
|
// erpShipment.setCreateBy(createBy);
|
||||||
|
// erpShipment.setCreateTime(new Date());
|
||||||
|
//
|
||||||
|
// shipmentMapper.insert(erpShipment);
|
||||||
|
|
||||||
|
// 添加分配发货
|
||||||
|
OOrderShipList shipList = new OOrderShipList();
|
||||||
|
shipList.setShopId(erpOrder.getShopId());
|
||||||
|
shipList.setShopType(erpOrder.getShopType());
|
||||||
|
shipList.setShipper(1);
|
||||||
|
shipList.setShipSupplierId(supplierId);
|
||||||
|
shipList.setShipSupplier(supplierList.get(supplierId)!=null?supplierList.get(supplierId).getName():"");
|
||||||
|
shipList.setOrderId(Long.parseLong(erpOrder.getId()));
|
||||||
|
shipList.setOrderNum(erpOrder.getOrderNum());
|
||||||
|
shipList.setStatus(0);
|
||||||
|
shipList.setShipLogisticsCompany("");
|
||||||
|
shipList.setShipLogisticsCompanyCode("");
|
||||||
|
shipList.setShipLogisticsCode("");
|
||||||
|
shipList.setShipStatus(1);
|
||||||
|
shipList.setReceiverName(shipBo.getReceiverName());
|
||||||
|
shipList.setReceiverMobile(shipBo.getReceiverMobile());
|
||||||
|
shipList.setProvince(erpOrder.getProvince());
|
||||||
|
shipList.setCity(erpOrder.getCity());
|
||||||
|
shipList.setTown(erpOrder.getTown());
|
||||||
|
shipList.setAddress(shipBo.getAddress());
|
||||||
|
shipList.setSellerMemo(shipBo.getSellerMemo());
|
||||||
|
shipList.setBuyerMemo(shipBo.getBuyerMemo());
|
||||||
|
shipList.setCreateTime(new Date());
|
||||||
|
shipList.setCreateBy("分配供应商发货");
|
||||||
|
orderShipListMapper.insert(shipList);
|
||||||
|
|
||||||
|
// 遍历 List<ErpOrderItem>
|
||||||
|
for (OOrderItem item : orderItemList) {
|
||||||
|
// 打印 List 中的每个 ErpOrderItem 对象
|
||||||
|
// ErpShipmentItem erpShipmentItem = new ErpShipmentItem();
|
||||||
|
// erpShipmentItem.setSupplierId(erpShipment.getSupplierId());
|
||||||
|
// erpShipmentItem.setSupplier(erpShipment.getSupplier());
|
||||||
|
// erpShipmentItem.setShipper(erpShipment.getShipper());
|
||||||
|
// erpShipmentItem.setTenantId(erpShipment.getTenantId());
|
||||||
|
// erpShipmentItem.setShopId(erpShipment.getShopId());
|
||||||
|
// erpShipmentItem.setShopType(erpShipment.getShopType());
|
||||||
|
// erpShipmentItem.setShipmentId(erpShipment.getId());
|
||||||
|
// erpShipmentItem.setOrderId(erpShipment.getOrderId());
|
||||||
|
// erpShipmentItem.setOrderNum(erpShipment.getOrderNum());
|
||||||
|
// erpShipmentItem.setOrderTime(erpShipment.getOrderTime());
|
||||||
|
// erpShipmentItem.setOrderItemId(item.getId());
|
||||||
|
// erpShipmentItem.setErpGoodsId(item.getErpGoodsId());
|
||||||
|
// erpShipmentItem.setErpSkuId(item.getErpSkuId());
|
||||||
|
// erpShipmentItem.setGoodsTitle(item.getGoodsTitle());
|
||||||
|
// erpShipmentItem.setGoodsNum(item.getGoodsNum());
|
||||||
|
// erpShipmentItem.setGoodsImg(item.getGoodsImg());
|
||||||
|
// erpShipmentItem.setGoodsSpec(item.getGoodsSpec());
|
||||||
|
// erpShipmentItem.setSkuNum(item.getSkuNum());
|
||||||
|
// erpShipmentItem.setQuantity(item.getQuantity());
|
||||||
|
// erpShipmentItem.setRemark(item.getRemark());
|
||||||
|
// erpShipmentItem.setStockStatus(0);
|
||||||
|
// erpShipmentItem.setCreateBy(createBy);
|
||||||
|
// erpShipmentItem.setCreateTime(new Date());
|
||||||
|
// shipmentItemMapper.insert(erpShipmentItem);
|
||||||
|
// 添加备货清单item
|
||||||
|
OOrderShipListItem listItem=new OOrderShipListItem();
|
||||||
|
listItem.setShopId(erpOrder.getShopId());
|
||||||
|
listItem.setShopType(erpOrder.getShopType());
|
||||||
|
listItem.setListId(shipList.getId());
|
||||||
|
listItem.setShipper(shipList.getShipper());
|
||||||
|
listItem.setShipSupplier(shipList.getShipSupplier());
|
||||||
|
listItem.setShipSupplierId(shipList.getShipSupplierId());
|
||||||
|
listItem.setOrderId(Long.parseLong(item.getOrderId()));
|
||||||
|
listItem.setOrderItemId(Long.parseLong(item.getId()));
|
||||||
|
listItem.setOrderNum(item.getOrderNum());
|
||||||
|
listItem.setOriginalSkuId(item.getSkuId());
|
||||||
|
listItem.setGoodsId(item.getGoodsId());
|
||||||
|
listItem.setSkuId(item.getGoodsSkuId());
|
||||||
|
listItem.setGoodsTitle(item.getGoodsTitle());
|
||||||
|
listItem.setGoodsImg(item.getGoodsImg());
|
||||||
|
listItem.setGoodsNum(item.getGoodsNum());
|
||||||
|
listItem.setSkuName(item.getGoodsSpec());
|
||||||
|
listItem.setSkuNum(item.getSkuNum());
|
||||||
|
listItem.setQuantity(item.getQuantity());
|
||||||
|
listItem.setStatus(0);//状态0待备货1备货中2备货完成3已发货
|
||||||
|
listItem.setCreateBy("分配供应商发货");
|
||||||
|
listItem.setCreateTime(new Date());
|
||||||
|
orderShipListItemMapper.insert(listItem);
|
||||||
|
|
||||||
|
// 更新订单item发货状态
|
||||||
|
OOrderItem orderItemUpdate = new OOrderItem();
|
||||||
|
orderItemUpdate.setId( item.getId());
|
||||||
|
orderItemUpdate.setUpdateBy("分配供应商发货");
|
||||||
|
orderItemUpdate.setUpdateTime(new Date());
|
||||||
|
orderItemUpdate.setShipStatus(0);//发货状态 0 待发货 1 已发货
|
||||||
|
orderItemUpdate.setShipType(1);//发货方式 0 自己发货1供应商发货2联合发货
|
||||||
|
orderItemMapper.updateById(orderItemUpdate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// return ResultVo.error("还没有想好怎么实现!");
|
||||||
|
|
||||||
|
//
|
||||||
|
// for(ErpOrderItem orderItem:oOrderItems){
|
||||||
|
// ErpShipmentItem erpShipmentItem = new ErpShipmentItem();
|
||||||
|
// erpShipmentItem.setShipper(erpShipment.getShipper());
|
||||||
|
// erpShipmentItem.setTenantId(erpShipment.getTenantId());
|
||||||
|
// erpShipmentItem.setShopId(erpShipment.getShopId());
|
||||||
|
// erpShipmentItem.setShopType(erpShipment.getShopType());
|
||||||
|
// erpShipmentItem.setShipmentId(erpShipment.getId());
|
||||||
|
// erpShipmentItem.setOrderId(erpShipment.getOrderId());
|
||||||
|
// erpShipmentItem.setOrderNum(erpShipment.getOrderNum());
|
||||||
|
// erpShipmentItem.setOrderTime(erpShipment.getOrderTime());
|
||||||
|
// erpShipmentItem.setOrderItemId(orderItem.getId());
|
||||||
|
// erpShipmentItem.setErpGoodsId(orderItem.getErpGoodsId());
|
||||||
|
// erpShipmentItem.setErpSkuId(orderItem.getErpSkuId());
|
||||||
|
// erpShipmentItem.setGoodsTitle(orderItem.getGoodsTitle());
|
||||||
|
// erpShipmentItem.setGoodsNum(orderItem.getGoodsNum());
|
||||||
|
// erpShipmentItem.setGoodsImg(orderItem.getGoodsImg());
|
||||||
|
// erpShipmentItem.setGoodsSpec(orderItem.getGoodsSpec());
|
||||||
|
// erpShipmentItem.setSkuNum(orderItem.getSkuNum());
|
||||||
|
// erpShipmentItem.setQuantity(orderItem.getQuantity());
|
||||||
|
// erpShipmentItem.setRemark(orderItem.getRemark());
|
||||||
|
// erpShipmentItem.setStockStatus(0);
|
||||||
|
// erpShipmentItem.setCreateBy(createBy);
|
||||||
|
// erpShipmentItem.setCreateTime(new Date());
|
||||||
|
// shipmentItemMapper.insert(erpShipmentItem);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 更新状态、发货方式
|
||||||
|
OOrder update = new OOrder();
|
||||||
|
update.setId(erpOrder.getId());
|
||||||
|
// update.setShipStatus(1);
|
||||||
|
update.setShipType(2);//发发货方式 0 自己发货1联合发货2供应商发货
|
||||||
|
update.setUpdateTime(new Date());
|
||||||
|
update.setUpdateBy("分配供应商发货");
|
||||||
|
orderMapper.updateById(update);
|
||||||
|
|
||||||
|
return ResultVo.success();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,15 @@
|
||||||
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
|
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
|
||||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||||
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
|
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
|
||||||
|
<result property="receiverName" column="receiver_name" jdbcType="VARCHAR"/>
|
||||||
|
<result property="receiverMobile" column="receiver_mobile" jdbcType="VARCHAR"/>
|
||||||
|
<result property="address" column="address" jdbcType="VARCHAR"/>
|
||||||
|
<result property="province" column="province" jdbcType="VARCHAR"/>
|
||||||
|
<result property="city" column="city" jdbcType="VARCHAR"/>
|
||||||
|
<result property="town" column="town" jdbcType="VARCHAR"/>
|
||||||
|
<result property="remark" column="remark" jdbcType="VARCHAR"/>
|
||||||
|
<result property="buyerMemo" column="buyer_memo" jdbcType="VARCHAR"/>
|
||||||
|
<result property="sellerMemo" column="seller_memo" jdbcType="VARCHAR"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
|
|
@ -30,6 +39,7 @@
|
||||||
order_id,order_num,ship_logistics_company,
|
order_id,order_num,ship_logistics_company,
|
||||||
ship_logistics_company_code,ship_logistics_code,ship_status,
|
ship_logistics_company_code,ship_logistics_code,ship_status,
|
||||||
status,create_time,create_by,
|
status,create_time,create_by,
|
||||||
update_time,update_by
|
update_time,update_by,receiver_name,receiver_mobile,address,
|
||||||
|
province,city,town,remark,buyer_memo,seller_memo
|
||||||
</sql>
|
</sql>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -298,7 +298,6 @@
|
||||||
<el-table :data="form.itemVoList" style="margin-bottom: 10px;">
|
<el-table :data="form.itemVoList" style="margin-bottom: 10px;">
|
||||||
<!-- <el-table-column type="selection" width="50" align="center" /> -->
|
<!-- <el-table-column type="selection" width="50" align="center" /> -->
|
||||||
<el-table-column label="序号" align="center" type="index" width="50"/>
|
<el-table-column label="序号" align="center" type="index" width="50"/>
|
||||||
|
|
||||||
<el-table-column label="商品图片" prop="goodsImg" width="80">
|
<el-table-column label="商品图片" prop="goodsImg" width="80">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-image style="width: 70px; height: 70px" :src="scope.row.goodsImg"></el-image>
|
<el-image style="width: 70px; height: 70px" :src="scope.row.goodsImg"></el-image>
|
||||||
|
|
@ -345,12 +344,76 @@
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 分配给供应商发货对话框 -->
|
||||||
|
<el-dialog title="分配给供应商发货" :visible.sync="allocateShipmentOpen" width="1100px" append-to-body>
|
||||||
|
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px" >
|
||||||
|
<el-descriptions title="订单信息">
|
||||||
|
<el-descriptions-item label="订单号">{{form.orderNum}}</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="买家留言">
|
||||||
|
{{form.buyerMemo}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="卖家留言">
|
||||||
|
{{form.sellerMemo}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="创建时间">
|
||||||
|
{{ parseTime(form.createTime) }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
<el-descriptions-item label="收件人姓名">{{form.receiverName}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="收件人手机号">{{form.receiverMobile}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="省市区">{{form.province}}{{form.city}}{{form.town}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="详细地址">{{form.address}}</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</el-descriptions>
|
||||||
|
|
||||||
|
<el-divider content-position="center">商品明细</el-divider>
|
||||||
|
<el-table :data="form.itemVoList" style="margin-bottom: 10px;">
|
||||||
|
<!-- <el-table-column type="selection" width="50" align="center" /> -->
|
||||||
|
<el-table-column label="序号" align="center" type="index" width="50"/>
|
||||||
|
|
||||||
|
<el-table-column label="商品图片" prop="goodsImg" width="80">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-image style="width: 70px; height: 70px" :src="scope.row.goodsImg"></el-image>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="商品标题" prop="goodsTitle" ></el-table-column>
|
||||||
|
<el-table-column label="SKU" prop="goodsSpec" width="150"></el-table-column>
|
||||||
|
<el-table-column label="sku编码" prop="skuNum"></el-table-column>
|
||||||
|
<!-- <el-table-column label="单价" prop="goodsPrice"></el-table-column>-->
|
||||||
|
<el-table-column label="数量" prop="quantity"></el-table-column>
|
||||||
|
<!-- <el-table-column label="商品金额" prop="itemAmount"></el-table-column> -->
|
||||||
|
</el-table>
|
||||||
|
<el-form-item label="收件人" prop="receiverName">
|
||||||
|
<el-input v-model="form.receiverName" placeholder="请输入收件人" style="width:300px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="手机号" prop="receiverMobile">
|
||||||
|
<el-input type="number" v-model.number="form.receiverMobile" placeholder="请输入收件人" style="width:300px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="详细地址" prop="address">
|
||||||
|
<el-input v-model="form.address" placeholder="请输入详细地址" style="width:300px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="买家留言" prop="buyerMemo">
|
||||||
|
<el-input type="textarea" v-model="form.buyerMemo" placeholder="请输入买家留言" style="width:300px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="卖家留言" prop="sellerMemo">
|
||||||
|
<el-input type="textarea" v-model="form.sellerMemo" placeholder="请输入卖家留言" style="width:300px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitAllocateShipmentForm">分配给供应商发货</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {listOrder, getOrder,manualShipmentOrder} from "@/api/order/order";
|
import {listOrder, getOrder,manualShipmentOrder,allocateShipmentOrder} from "@/api/order/order";
|
||||||
import {listLogisticsStatus, listShop} from "@/api/shop/shop";
|
import {listLogisticsStatus, listShop} from "@/api/shop/shop";
|
||||||
import Clipboard from "clipboard";
|
import Clipboard from "clipboard";
|
||||||
|
|
||||||
|
|
@ -382,7 +445,7 @@ export default {
|
||||||
detailTitle:'订单详情',
|
detailTitle:'订单详情',
|
||||||
detailOpen:false,
|
detailOpen:false,
|
||||||
shipOpen:false,
|
shipOpen:false,
|
||||||
isAudit:false,
|
allocateShipmentOpen:false,
|
||||||
activeName: 'orderDetail',
|
activeName: 'orderDetail',
|
||||||
orderTime: null,
|
orderTime: null,
|
||||||
// 查询参数
|
// 查询参数
|
||||||
|
|
@ -417,6 +480,9 @@ export default {
|
||||||
shippingNumber: [{ required: true, message: '不能为空' }],
|
shippingNumber: [{ required: true, message: '不能为空' }],
|
||||||
shippingCompany: [{ required: true, message: '不能为空' }],
|
shippingCompany: [{ required: true, message: '不能为空' }],
|
||||||
shippingCost: [{ required: true, message: '不能为空' }],
|
shippingCost: [{ required: true, message: '不能为空' }],
|
||||||
|
receiverName: [{ required: true, message: '不能为空' }],
|
||||||
|
receiverMobile: [{ required: true, message: '不能为空' }],
|
||||||
|
address: [{ required: true, message: '不能为空' }],
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
@ -537,6 +603,34 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 分配给供应商发货
|
||||||
|
allocateShipmentToSupplier(row){
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids
|
||||||
|
console.log('======',id)
|
||||||
|
getOrder(id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.allocateShipmentOpen = true;
|
||||||
|
// this.detailTitle = "订单详情";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 分配给供应商发货
|
||||||
|
submitAllocateShipmentForm(){
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
allocateShipmentOrder(this.form).then(resp =>{
|
||||||
|
if(resp.code==200){
|
||||||
|
this.$modal.msgSuccess("分配发货成功");
|
||||||
|
this.allocateShipmentOpen = false
|
||||||
|
this.getList()
|
||||||
|
}else{
|
||||||
|
this.$modal.msgError(resp.msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue