完善供应商发货
This commit is contained in:
parent
c367da8910
commit
3b4d677d41
|
|
@ -33,7 +33,7 @@ public class LogisticsController extends BaseController {
|
|||
public TableDataInfo logisticsStatusList(Integer status, Integer shopType, Integer shopId)
|
||||
{
|
||||
if(status==null) status=1;
|
||||
if(shopType==null)shopType=0;
|
||||
// if(shopType==null)shopType=0;
|
||||
return getDataTable(logisticsCompanyService.queryListByStatus(status,shopType, shopId));
|
||||
}
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -136,12 +136,12 @@ public class OOrder implements Serializable {
|
|||
private Date orderTime;
|
||||
|
||||
/**
|
||||
* 发货方式 0 自己发货1联合发货2供应商发货
|
||||
* 发货人
|
||||
*/
|
||||
private Integer shipper;
|
||||
private Long shipper;
|
||||
|
||||
/**
|
||||
* 发货方式1供应商代发0仓库发货
|
||||
* 发货方式2供应商代发0仓库发货
|
||||
*/
|
||||
private Integer shipType;
|
||||
|
||||
|
|
|
|||
|
|
@ -132,9 +132,9 @@ public class OOrderItem implements Serializable {
|
|||
private Integer orderStatus;
|
||||
|
||||
/**
|
||||
* 发货方式 0 自己发货1联合发货2供应商发货
|
||||
* 发货人
|
||||
*/
|
||||
private Integer shipper;
|
||||
private Long shipper;
|
||||
|
||||
/**
|
||||
* 发货方式 0 自己发货或待处理2供应商发货
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
package cn.qihangerp.api.order.controller;
|
||||
|
||||
import cn.qihangerp.api.order.OrderCancelRequest;
|
||||
import cn.qihangerp.common.AjaxResult;
|
||||
import cn.qihangerp.common.PageQuery;
|
||||
import cn.qihangerp.common.TableDataInfo;
|
||||
import cn.qihangerp.common.*;
|
||||
import cn.qihangerp.model.request.OrderSearchRequest;
|
||||
import cn.qihangerp.module.order.domain.bo.OrderAllocateShipRequest;
|
||||
import cn.qihangerp.module.order.domain.bo.OrderShipRequest;
|
||||
|
|
@ -143,6 +141,10 @@ public class OrderController extends BaseController
|
|||
@PostMapping("/allocateShipmentOrder")
|
||||
public AjaxResult allocateShipmentOrder(@RequestBody OrderAllocateShipRequest shipBo)
|
||||
{
|
||||
if (StringUtils.isEmpty(shipBo.getId()) || shipBo.getId().equals("0"))
|
||||
return AjaxResult.error("缺少参数:id");
|
||||
if(shipBo.getSupplierId() == null || shipBo.getSupplierId()<=0)
|
||||
return AjaxResult.error("缺少参数:supplierId");
|
||||
var result = orderService.allocateShipmentOrder(shipBo,getUsername());
|
||||
if(result.getCode() == 0) return AjaxResult.success();
|
||||
else return AjaxResult.error(result.getMsg());
|
||||
|
|
|
|||
|
|
@ -53,18 +53,5 @@ public class OrderItemController extends BaseController
|
|||
} else return AjaxResult.error(result.getMsg());
|
||||
|
||||
}
|
||||
// /**
|
||||
// * 更新erp sku id
|
||||
// * @param orderItem
|
||||
// * @return
|
||||
// */
|
||||
// @PostMapping("/updateErpSkuId")
|
||||
// public AjaxResult ship(@RequestBody OOrderItem orderItem)
|
||||
// {
|
||||
// if(StringUtils.isEmpty(orderItem.getId()) || orderItem.getGoodsSkuId()==null){
|
||||
// return AjaxResult.error("确少必要参数");
|
||||
// }
|
||||
// itemService.updateErpSkuId(orderItem.getId(), orderItem.getGoodsSkuId());
|
||||
// return AjaxResult.success();
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,15 +2,21 @@ package cn.qihangerp.api.order.controller;
|
|||
|
||||
import cn.qihangerp.common.AjaxResult;
|
||||
import cn.qihangerp.common.PageQuery;
|
||||
import cn.qihangerp.common.ResultVo;
|
||||
import cn.qihangerp.common.TableDataInfo;
|
||||
import cn.qihangerp.module.order.domain.bo.ShipStockUpBo;
|
||||
import cn.qihangerp.module.order.domain.bo.ShipStockUpCompleteBo;
|
||||
import cn.qihangerp.module.order.domain.bo.SupplierOrderShipBo;
|
||||
import cn.qihangerp.module.order.service.OOrderShipListItemService;
|
||||
import cn.qihangerp.module.order.service.OOrderShipListService;
|
||||
import cn.qihangerp.security.common.BaseController;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/ship")
|
||||
|
|
@ -53,6 +59,11 @@ public class OrderShipController extends BaseController {
|
|||
return getDataTable(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库备货完善
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/stock_up_complete")
|
||||
public AjaxResult stock_up_complete(@RequestBody ShipStockUpCompleteBo bo)
|
||||
{
|
||||
|
|
@ -65,6 +76,11 @@ public class OrderShipController extends BaseController {
|
|||
return toAjax(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库备货完善
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/stock_up_complete_by_order")
|
||||
public AjaxResult stock_up_completeByOrder(@RequestBody ShipStockUpCompleteBo bo)
|
||||
{
|
||||
|
|
@ -76,4 +92,25 @@ public class OrderShipController extends BaseController {
|
|||
//wmsStockOutEntryService.insertWmsStockOutEntry(wmsStockOutEntry)
|
||||
return toAjax(1);
|
||||
}
|
||||
|
||||
/**
|
||||
// * 供应商发货确认
|
||||
// * @param request
|
||||
// * @return
|
||||
// */
|
||||
@PostMapping("/supplier_ship_confirm")
|
||||
public AjaxResult SupplierShipConfirm(@RequestBody SupplierOrderShipBo request) {
|
||||
log.info("========供应商发货确认:{}", JSON.toJSONString(request));
|
||||
if (request.getId() == null || request.getId() == 0)
|
||||
return AjaxResult.error("缺少参数:orderId");
|
||||
if (StringUtils.isEmpty(request.getLogisticsCompany()))
|
||||
return AjaxResult.error("缺少参数:logisticsCompany");
|
||||
if (StringUtils.isEmpty(request.getLogisticsCode()))
|
||||
return AjaxResult.error("缺少参数:logisticsCode");
|
||||
|
||||
ResultVo<Integer> result = shipStockUpService.supplierShipOrderManualLogistics(request, getUsername());
|
||||
if(result.getCode() == 0) {
|
||||
return AjaxResult.success();
|
||||
}else return AjaxResult.error(result.getMsg());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class OOrderShipList implements Serializable {
|
|||
/**
|
||||
* 发货方 0 仓库发货 1 供应商发货
|
||||
*/
|
||||
private Integer shipper;
|
||||
private Long shipper;
|
||||
|
||||
/**
|
||||
* 发货供应商ID(0自己发货)
|
||||
|
|
|
|||
|
|
@ -37,9 +37,9 @@ public class OOrderShipListItem implements Serializable {
|
|||
private Integer shopType;
|
||||
|
||||
/**
|
||||
* 发货方 0 仓库发货 1 供应商发货
|
||||
* 发货方
|
||||
*/
|
||||
private Integer shipper;
|
||||
private Long shipper;
|
||||
|
||||
/**
|
||||
* 发货供应商ID(0自己发货)
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import java.math.BigDecimal;
|
|||
|
||||
@Data
|
||||
public class OrderAllocateShipRequest {
|
||||
private String Id;//订单id
|
||||
|
||||
private String id;//订单id
|
||||
private Long supplierId;//供应商ID
|
||||
private BigDecimal purAmount;//采购金额
|
||||
private String receiverName;//
|
||||
private String receiverMobile;//
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
package cn.qihangerp.module.order.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class SupplierOrderShipBo {
|
||||
private Long id;
|
||||
private String logisticsCompany;
|
||||
private String logisticsCode;
|
||||
private Date shipTime;
|
||||
|
||||
}
|
||||
|
|
@ -2,9 +2,11 @@ package cn.qihangerp.module.order.service;
|
|||
|
||||
import cn.qihangerp.common.PageQuery;
|
||||
import cn.qihangerp.common.PageResult;
|
||||
import cn.qihangerp.common.ResultVo;
|
||||
import cn.qihangerp.module.order.domain.OOrderShipList;
|
||||
import cn.qihangerp.module.order.domain.bo.ShipStockUpBo;
|
||||
import cn.qihangerp.module.order.domain.bo.ShipStockUpCompleteBo;
|
||||
import cn.qihangerp.module.order.domain.bo.SupplierOrderShipBo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
|
|
@ -21,4 +23,12 @@ public interface OOrderShipListService extends IService<OOrderShipList> {
|
|||
* @return
|
||||
*/
|
||||
int stockUpComplete(ShipStockUpCompleteBo bo);
|
||||
|
||||
/**
|
||||
* 供应商发货手动填写发货物流信息
|
||||
* @param bo
|
||||
* @param operator
|
||||
* @return
|
||||
*/
|
||||
ResultVo<Integer> supplierShipOrderManualLogistics(SupplierOrderShipBo bo, String operator);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -494,7 +494,7 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
|||
OOrderShipList shipList = new OOrderShipList();
|
||||
shipList.setShopId(erpOrder.getShopId());
|
||||
shipList.setShopType(erpOrder.getShopType());
|
||||
shipList.setShipper(0);
|
||||
shipList.setShipper(0L);
|
||||
shipList.setShipSupplierId(0L);
|
||||
shipList.setShipSupplier("仓库发货");
|
||||
shipList.setOrderId(Long.parseLong(erpOrder.getId()));
|
||||
|
|
@ -594,9 +594,9 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
|||
orderItemUpdate.setId( orderItem.getId());
|
||||
orderItemUpdate.setUpdateBy("手动发货");
|
||||
orderItemUpdate.setUpdateTime(new Date());
|
||||
orderItemUpdate.setShipper(0);
|
||||
orderItemUpdate.setShipper(0L);
|
||||
orderItemUpdate.setShipStatus(2);//发货状态 0 待发货 1 已分配供应商发货 2全部发货
|
||||
orderItemUpdate.setShipType(2);//发货方式1电子面单发货2手动发货
|
||||
orderItemUpdate.setShipType(0);//发货方式2供应商代发0仓库发货
|
||||
orderItemMapper.updateById(orderItemUpdate);
|
||||
}
|
||||
|
||||
|
|
@ -604,11 +604,12 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
|||
// 更新状态、发货方式
|
||||
OOrder update = new OOrder();
|
||||
update.setId(erpOrder.getId());
|
||||
update.setShipper(0);
|
||||
update.setShipper(0L);
|
||||
update.setShipStatus(2);//发货状态 0 待发货 1 已分配供应商发货 2全部发货
|
||||
update.setOrderStatus(2);
|
||||
update.setShipType(2);//发货方式1电子面单发货2手动发货
|
||||
|
||||
update.setShipType(0);//发货方式2供应商代发0仓库发货
|
||||
update.setShipCompany(erpLogisticsCompany.getName());
|
||||
update.setShipCode(shipBo.getShippingNumber());
|
||||
update.setUpdateTime(new Date());
|
||||
update.setUpdateBy("手动发货");
|
||||
orderMapper.updateById(update);
|
||||
|
|
@ -637,84 +638,59 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
|||
return ResultVo.error("订单发货已处理,不允许分配发货");
|
||||
}
|
||||
|
||||
List<OOrderItem> oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>()
|
||||
List<OOrderItem> orderItemList = orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>()
|
||||
.eq(OOrderItem::getOrderId, erpOrder.getId()));
|
||||
if(oOrderItems==null) return ResultVo.error("订单 item 数据错误,无法发货!");
|
||||
if(orderItemList==null) return ResultVo.error("订单 item 数据错误,无法发货!");
|
||||
|
||||
long skuIdZeroCount = oOrderItems.stream().filter(x -> x.getGoodsSkuId() == 0).count();
|
||||
if(skuIdZeroCount>0) return ResultVo.error("订单 item 数据中有skuId错误的数据,请补充!");
|
||||
OGoodsSupplier oGoodsSupplier = supplierMapper.selectById(shipBo.getSupplierId());
|
||||
if(oGoodsSupplier==null){
|
||||
return ResultVo.error("供应商不存在");
|
||||
}
|
||||
|
||||
// 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 = supplierMapper.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<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 = supplierMapper.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);
|
||||
// for (Map.Entry<Long, List<OOrderItem>> entry : supplierOrderItemList.entrySet()) {
|
||||
// Long supplierId = entry.getKey(); // 获取键(Long)
|
||||
// List<OOrderItem> orderItemList = entry.getValue(); // 获取值(List<ErpOrderItem>)
|
||||
|
||||
// 添加分配发货
|
||||
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.setShipper(1L);
|
||||
shipList.setShipSupplierId(shipBo.getSupplierId());
|
||||
shipList.setShipSupplier(oGoodsSupplier.getName());
|
||||
shipList.setOrderId(Long.parseLong(erpOrder.getId()));
|
||||
shipList.setOrderNum(erpOrder.getOrderNum());
|
||||
shipList.setStatus(0);
|
||||
|
|
@ -738,32 +714,6 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
|||
|
||||
// 遍历 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());
|
||||
|
|
@ -794,53 +744,27 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
|||
orderItemUpdate.setId( item.getId());
|
||||
orderItemUpdate.setUpdateBy("分配供应商发货");
|
||||
orderItemUpdate.setUpdateTime(new Date());
|
||||
orderItemUpdate.setShipType(2);//发货方式2供应商代发0仓库发货
|
||||
orderItemUpdate.setShipStatus(1);//发货状态 0 待发货 1 已分配供应商发货 2全部发货
|
||||
orderItemUpdate.setShipper(2);//发货方式 0 自己发货1联合发货2供应商发货
|
||||
orderItemUpdate.setShipper(shipBo.getSupplierId());//发货人
|
||||
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.setShipType(2);//发货方式2供应商代发0仓库发货
|
||||
update.setShipStatus(1);//发货状态 0 待发货 1 已分配供应商发货 2全部发货
|
||||
update.setShipper(2);//发发货方式 0 自己发货1联合发货2供应商发货
|
||||
update.setShipper(shipBo.getSupplierId());//发货人
|
||||
update.setUpdateTime(new Date());
|
||||
update.setUpdateBy("分配供应商发货");
|
||||
orderMapper.updateById(update);
|
||||
|
||||
return ResultVo.success();
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public ResultVo cancelOrder(Long id, String cancelReason, String man) {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,18 @@ package cn.qihangerp.module.order.service.impl;
|
|||
|
||||
import cn.qihangerp.common.PageQuery;
|
||||
import cn.qihangerp.common.PageResult;
|
||||
import cn.qihangerp.common.ResultVo;
|
||||
import cn.qihangerp.model.entity.OLogisticsCompany;
|
||||
import cn.qihangerp.model.entity.OOrder;
|
||||
import cn.qihangerp.model.entity.OOrderItem;
|
||||
import cn.qihangerp.module.mapper.OLogisticsCompanyMapper;
|
||||
import cn.qihangerp.module.order.domain.OOrderShipListItem;
|
||||
import cn.qihangerp.module.order.domain.OfflineOrder;
|
||||
import cn.qihangerp.module.order.domain.bo.ShipStockUpBo;
|
||||
import cn.qihangerp.module.order.domain.bo.ShipStockUpCompleteBo;
|
||||
import cn.qihangerp.module.order.domain.bo.SupplierOrderShipBo;
|
||||
import cn.qihangerp.module.order.mapper.OOrderItemMapper;
|
||||
import cn.qihangerp.module.order.mapper.OOrderMapper;
|
||||
import cn.qihangerp.module.order.mapper.OOrderShipListItemMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
@ -13,6 +22,7 @@ import cn.qihangerp.module.order.domain.OOrderShipList;
|
|||
import cn.qihangerp.module.order.service.OOrderShipListService;
|
||||
import cn.qihangerp.module.order.mapper.OOrderShipListMapper;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
|
@ -25,11 +35,16 @@ import java.util.List;
|
|||
* @description 针对表【o_order_ship_list(发货-备货表(取号发货加入备货清单、分配供应商发货加入备货清单))】的数据库操作Service实现
|
||||
* @createDate 2025-05-24 16:03:35
|
||||
*/
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
@Service
|
||||
public class OOrderShipListServiceImpl extends ServiceImpl<OOrderShipListMapper, OOrderShipList>
|
||||
implements OOrderShipListService{
|
||||
private final OOrderShipListItemMapper shipListItemMapper;
|
||||
private final OOrderMapper orderMapper;
|
||||
private final OOrderItemMapper orderItemMapper;
|
||||
private final OLogisticsCompanyMapper logisticsCompanyMapper;
|
||||
|
||||
@Override
|
||||
public PageResult<OOrderShipList> querySupplierPageList(ShipStockUpBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<OOrderShipList> queryWrapper = new LambdaQueryWrapper<OOrderShipList>()
|
||||
|
|
@ -39,6 +54,11 @@ public class OOrderShipListServiceImpl extends ServiceImpl<OOrderShipListMapper,
|
|||
.eq(StringUtils.hasText(bo.getOrderNum()),OOrderShipList::getOrderNum,bo.getOrderNum())
|
||||
;
|
||||
Page<OOrderShipList> pages = this.baseMapper.selectPage(pageQuery.build(), queryWrapper);
|
||||
if(pages.getRecords()!=null && pages.getRecords().size()>0){
|
||||
for(OOrderShipList o : pages.getRecords()){
|
||||
o.setItems(shipListItemMapper.selectList(new LambdaQueryWrapper<OOrderShipListItem>().eq(OOrderShipListItem::getListId,o.getId())));
|
||||
}
|
||||
}
|
||||
|
||||
return PageResult.build(pages);
|
||||
}
|
||||
|
|
@ -125,6 +145,103 @@ public class OOrderShipListServiceImpl extends ServiceImpl<OOrderShipListMapper,
|
|||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 供应商发货手动确认
|
||||
* @param bo
|
||||
* @param operator
|
||||
* @return
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public ResultVo<Integer> supplierShipOrderManualLogistics(SupplierOrderShipBo bo, String operator) {
|
||||
if(bo.getId()==null) return ResultVo.error("缺少参数:Id");
|
||||
if(!StringUtils.hasText(bo.getLogisticsCompany()) || !StringUtils.hasText(bo.getLogisticsCode()))
|
||||
return ResultVo.error("缺少参数:快递信息");
|
||||
|
||||
OOrderShipList shipOrder = this.baseMapper.selectById(bo.getId());
|
||||
if (shipOrder == null) return ResultVo.error("找不到数据");
|
||||
if(shipOrder.getShipStatus().intValue() !=1) return ResultVo.error("已发货或已取消不能再发货");
|
||||
|
||||
OLogisticsCompany erpLogisticsCompany = logisticsCompanyMapper.selectById(bo.getLogisticsCompany());
|
||||
if(erpLogisticsCompany==null) return ResultVo.error("快递公司选择错误");
|
||||
|
||||
OOrder erpOrder = orderMapper.selectById(shipOrder.getOrderId());
|
||||
if(erpOrder==null) return ResultVo.error("订单库找不到订单!");
|
||||
|
||||
// 更新供应商订单状态
|
||||
OOrderShipList updateShip = new OOrderShipList();
|
||||
updateShip.setShipLogisticsCompany(erpLogisticsCompany.getName());
|
||||
updateShip.setShipLogisticsCompanyCode(erpLogisticsCompany.getCode());
|
||||
updateShip.setShipLogisticsCode(bo.getLogisticsCode());
|
||||
updateShip.setShipStatus(2);
|
||||
updateShip.setStatus(3);
|
||||
updateShip.setUpdateTime(new Date());
|
||||
updateShip.setUpdateBy("供应商手动发货");
|
||||
updateShip.setId(shipOrder.getId());
|
||||
this.baseMapper.updateById(updateShip);
|
||||
|
||||
// 子订单
|
||||
List<OOrderShipListItem> shipOrderItemList = shipListItemMapper.selectList(
|
||||
new LambdaQueryWrapper<OOrderShipListItem>()
|
||||
.eq(OOrderShipListItem::getListId, bo.getId()));
|
||||
if(!shipOrderItemList.isEmpty()){
|
||||
for (var item:shipOrderItemList) {
|
||||
// 更新子订单发货状态
|
||||
OOrderShipListItem shipOrderItem=new OOrderShipListItem();
|
||||
shipOrderItem.setStatus(3);
|
||||
shipOrderItem.setUpdateTime(new Date());
|
||||
shipOrderItem.setUpdateBy("供应商发货手动确认");
|
||||
shipOrderItem.setId(item.getId());
|
||||
shipListItemMapper.updateById(shipOrderItem);
|
||||
|
||||
// 更新订单明细o_order_item
|
||||
OOrderItem updateOrderItem =new OOrderItem();
|
||||
updateOrderItem.setId(item.getOrderItemId().toString());
|
||||
updateOrderItem.setShipStatus(2);
|
||||
updateOrderItem.setOrderStatus(2);
|
||||
updateOrderItem.setUpdateBy("供应商发货手动确认");
|
||||
updateOrderItem.setUpdateTime(new Date());
|
||||
orderItemMapper.updateById(updateOrderItem);
|
||||
}
|
||||
}
|
||||
|
||||
// 更新订单发货状态
|
||||
|
||||
// 查询订单item是否全部发货
|
||||
List<OOrderItem> waitShipList = orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>().eq(OOrderItem::getOrderId, shipOrder.getOrderId()).ne(OOrderItem::getShipStatus, 2));
|
||||
if(waitShipList.isEmpty()){
|
||||
//已经全部发货了
|
||||
OOrder update = new OOrder();
|
||||
update.setId(shipOrder.getOrderId().toString());
|
||||
update.setShipStatus(2);//发货状态 0 待发货 1 部分发货 2全部发货
|
||||
update.setOrderStatus(2);
|
||||
update.setShipCompany(erpLogisticsCompany.getName());
|
||||
update.setShipCode(bo.getLogisticsCode());
|
||||
update.setUpdateTime(new Date());
|
||||
update.setUpdateBy("供应商发货确认-全部发货完成");
|
||||
orderMapper.updateById(update);
|
||||
|
||||
// 更新店铺订单(仅线下订单个螳螂订单)
|
||||
// 更新店铺订单
|
||||
|
||||
|
||||
}else {
|
||||
// 部分发货
|
||||
OOrder update = new OOrder();
|
||||
update.setId(shipOrder.getOrderId().toString());
|
||||
update.setShipStatus(1);//发货状态 0 待发货 1 部分发货 2全部发货
|
||||
// update.setOrderStatus(2);
|
||||
update.setShipCompany(erpLogisticsCompany.getName());
|
||||
update.setShipCode(bo.getLogisticsCode());
|
||||
update.setUpdateTime(new Date());
|
||||
update.setUpdateBy("供应商发货确认-部分发货");
|
||||
orderMapper.updateById(update);
|
||||
}
|
||||
log.info("============供应商发货确认成功===================");
|
||||
// 推送到店铺由controller进行操作
|
||||
return ResultVo.success();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<result property="refundCount" column="refund_count" jdbcType="INTEGER"/>
|
||||
<result property="refundStatus" column="refund_status" jdbcType="INTEGER"/>
|
||||
<result property="orderStatus" column="order_status" jdbcType="INTEGER"/>
|
||||
<result property="shipper" column="shipper" jdbcType="INTEGER"/>
|
||||
<result property="shipper" column="shipper" jdbcType="BIGINT"/>
|
||||
<result property="shipType" column="ship_type" jdbcType="INTEGER"/>
|
||||
<result property="shipStatus" column="ship_status" jdbcType="INTEGER"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<result property="city" column="city" jdbcType="VARCHAR"/>
|
||||
<result property="town" column="town" jdbcType="VARCHAR"/>
|
||||
<result property="orderTime" column="order_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="shipper" column="shipper" jdbcType="INTEGER"/>
|
||||
<result property="shipper" column="shipper" jdbcType="BIGINT"/>
|
||||
<result property="shipType" column="ship_type" jdbcType="INTEGER"/>
|
||||
<result property="shipStatus" column="ship_status" jdbcType="INTEGER"/>
|
||||
<result property="shipCompany" column="ship_company" jdbcType="VARCHAR"/>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<result property="shopId" column="shop_id" jdbcType="BIGINT"/>
|
||||
<result property="listId" column="list_id" jdbcType="BIGINT"/>
|
||||
<result property="shopType" column="shop_type" jdbcType="INTEGER"/>
|
||||
<result property="shipper" column="shipper" jdbcType="INTEGER"/>
|
||||
<result property="shipper" column="shipper" jdbcType="BIGINT"/>
|
||||
<result property="shipSupplierId" column="ship_supplier_id" jdbcType="BIGINT"/>
|
||||
<result property="shipSupplier" column="ship_supplier" jdbcType="VARCHAR"/>
|
||||
<result property="orderId" column="order_id" jdbcType="BIGINT"/>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<id property="id" column="id" jdbcType="BIGINT"/>
|
||||
<result property="shopId" column="shop_id" jdbcType="BIGINT"/>
|
||||
<result property="shopType" column="shop_type" jdbcType="INTEGER"/>
|
||||
<result property="shipper" column="shipper" jdbcType="INTEGER"/>
|
||||
<result property="shipper" column="shipper" jdbcType="BIGINT"/>
|
||||
<result property="shipSupplierId" column="ship_supplier_id" jdbcType="BIGINT"/>
|
||||
<result property="shipSupplier" column="ship_supplier" jdbcType="VARCHAR"/>
|
||||
<result property="orderId" column="order_id" jdbcType="BIGINT"/>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public class OLogisticsCompanyServiceImpl extends ServiceImpl<OLogisticsCompanyM
|
|||
@Override
|
||||
public List<OLogisticsCompany> queryListByStatus(Integer status, Integer shopType, Integer shopId) {
|
||||
LambdaQueryWrapper<OLogisticsCompany> queryWrapper = new LambdaQueryWrapper<OLogisticsCompany>().
|
||||
eq(OLogisticsCompany::getStatus, status)
|
||||
eq(status!=null,OLogisticsCompany::getStatus, status)
|
||||
.eq(shopId != null, OLogisticsCompany::getShopId, shopId)
|
||||
.eq(shopType != null, OLogisticsCompany::getPlatformId, shopType);
|
||||
return mapper.selectList(queryWrapper);
|
||||
|
|
|
|||
|
|
@ -1,44 +1,44 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询物流公司列表
|
||||
export function listLogistics(query) {
|
||||
return request({
|
||||
url: '/api/logistics/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询物流公司详细
|
||||
export function getLogistics(id) {
|
||||
return request({
|
||||
url: '/api/logistics/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增物流公司
|
||||
export function addLogistics(data) {
|
||||
return request({
|
||||
url: '/api/oms-api/shop/logistics/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改物流公司
|
||||
export function updateLogistics(data) {
|
||||
return request({
|
||||
url: '/api/logistics',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物流公司
|
||||
export function delLogistics(id) {
|
||||
return request({
|
||||
url: '/api/logistics/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
// import request from '@/utils/request'
|
||||
//
|
||||
// // 查询物流公司列表
|
||||
// export function listLogistics(query) {
|
||||
// return request({
|
||||
// url: '/api/logistics/list',
|
||||
// method: 'get',
|
||||
// params: query
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// // 查询物流公司详细
|
||||
// export function getLogistics(id) {
|
||||
// return request({
|
||||
// url: '/api/logistics/' + id,
|
||||
// method: 'get'
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// // 新增物流公司
|
||||
// export function addLogistics(data) {
|
||||
// return request({
|
||||
// url: '/api/oms-api/shop/logistics/add',
|
||||
// method: 'post',
|
||||
// data: data
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// // 修改物流公司
|
||||
// export function updateLogistics(data) {
|
||||
// return request({
|
||||
// url: '/api/logistics',
|
||||
// method: 'put',
|
||||
// data: data
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// // 删除物流公司
|
||||
// export function delLogistics(id) {
|
||||
// return request({
|
||||
// url: '/api/logistics/' + id,
|
||||
// method: 'delete'
|
||||
// })
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询
|
||||
export function listShipping(query) {
|
||||
return request({
|
||||
url: '/api/oms-api/shipping/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getLogistics(id) {
|
||||
return request({
|
||||
url: '/api/logistics/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增
|
||||
export function handShip(data) {
|
||||
return request({
|
||||
url: '/api/oms-api/shipping/handShip',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// import request from '@/utils/request'
|
||||
//
|
||||
// // 查询
|
||||
// export function listShipping(query) {
|
||||
// return request({
|
||||
// url: '/api/oms-api/shipping/list',
|
||||
// method: 'get',
|
||||
// params: query
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// export function getLogistics(id) {
|
||||
// return request({
|
||||
// url: '/api/logistics/' + id,
|
||||
// method: 'get'
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// // 新增
|
||||
// export function handShip(data) {
|
||||
// return request({
|
||||
// url: '/api/oms-api/shipping/handShip',
|
||||
// method: 'post',
|
||||
// data: data
|
||||
// })
|
||||
// }
|
||||
//
|
||||
|
|
|
|||
|
|
@ -8,6 +8,13 @@ export function listLogistics(query) {
|
|||
params: query
|
||||
})
|
||||
}
|
||||
export function listLogisticsStatus(query) {
|
||||
return request({
|
||||
url: '/api/oms-api/shop/logistics_status',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询物流公司详细
|
||||
export function getLogistics(id) {
|
||||
|
|
|
|||
|
|
@ -57,6 +57,15 @@ export function distributeSupplierShip(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 供应商发货手动确认
|
||||
export function supplierShipConfirm(data) {
|
||||
return request({
|
||||
url: '/api/oms-api/ship/supplier_ship_confirm',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 订单待出库列表
|
||||
export function listOrderStockOutEntry(query) {
|
||||
|
|
|
|||
|
|
@ -70,13 +70,13 @@ export function updatePlatform(data) {
|
|||
}
|
||||
|
||||
|
||||
export function listLogisticsStatus(query) {
|
||||
return request({
|
||||
url: '/api/oms-api/shop/logistics_status',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// export function listLogisticsStatus(query) {
|
||||
// return request({
|
||||
// url: '/api/oms-api/shop/logistics_status',
|
||||
// method: 'get',
|
||||
// params: query
|
||||
// })
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
|
@ -87,11 +87,11 @@ export function listShopPullLogs(query) {
|
|||
params: query
|
||||
})
|
||||
}
|
||||
// 修改物流状态
|
||||
export function updateStatus(data) {
|
||||
return request({
|
||||
url: '/api/oms-api/shop/logistics/updateStatus',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// // 修改物流状态
|
||||
// export function updateStatus(data) {
|
||||
// return request({
|
||||
// url: '/api/oms-api/shop/logistics/updateStatus',
|
||||
// method: 'put',
|
||||
// data: data
|
||||
// })
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -40,26 +40,26 @@
|
|||
<el-col :span="1.5">
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
:disabled="single"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleShip"
|
||||
>手动发货</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type=""
|
||||
plain
|
||||
:disabled="single"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="allocateShipmentToSupplier"
|
||||
>分配给供应商发货</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- :disabled="single"-->
|
||||
<!-- icon="el-icon-download"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleShip"-->
|
||||
<!-- >手动发货</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type=""-->
|
||||
<!-- plain-->
|
||||
<!-- :disabled="single"-->
|
||||
<!-- icon="el-icon-download"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="allocateShipmentToSupplier"-->
|
||||
<!-- >分配给供应商发货</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
|
|
@ -276,7 +276,7 @@
|
|||
<!-- 分配给供应商发货对话框 -->
|
||||
<el-dialog title="分配给供应商发货" :visible.sync="allocateShipmentOpen" width="1100px" append-to-body>
|
||||
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px" >
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="98px" >
|
||||
<el-descriptions title="订单信息">
|
||||
<el-descriptions-item label="订单号">{{form.orderNum}}</el-descriptions-item>
|
||||
|
||||
|
|
@ -301,7 +301,7 @@
|
|||
</el-descriptions>
|
||||
|
||||
<el-divider content-position="center">商品明细</el-divider>
|
||||
<el-table :data="form.itemVoList" style="margin-bottom: 10px;">
|
||||
<el-table :data="form.itemVoList" style="margin-bottom: 20px;">
|
||||
<!-- <el-table-column type="selection" width="50" align="center" /> -->
|
||||
<el-table-column label="序号" align="center" type="index" width="50"/>
|
||||
|
||||
|
|
@ -317,11 +317,19 @@
|
|||
<el-table-column label="数量" prop="quantity" width="50"></el-table-column>
|
||||
<!-- <el-table-column label="商品金额" prop="itemAmount"></el-table-column> -->
|
||||
</el-table>
|
||||
<el-form-item label="发货供应商" prop="supplierId">
|
||||
<el-select v-model="form.supplierId" filterable r placeholder="选择发货供应商" style="width:300px">
|
||||
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" >{{item.number}}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<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-input v-model="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" />
|
||||
|
|
@ -351,9 +359,11 @@ import {
|
|||
waitSelfShipmentList
|
||||
} from "@/api/order/order";
|
||||
|
||||
import {listShop,listLogisticsStatus} from "@/api/shop/shop";
|
||||
import {listShop} from "@/api/shop/shop";
|
||||
import {listLogisticsStatus} from "@/api/shipping/logistics";
|
||||
import {amountFormatter, parseTime} from "@/utils/zhijian";
|
||||
import {getDicts} from "@/api/system/dict/data";
|
||||
import {listSupplier} from "../../../api/goods/supplier";
|
||||
|
||||
export default {
|
||||
name: "ShipmentWait",
|
||||
|
|
@ -367,6 +377,7 @@ export default {
|
|||
shopList: [],
|
||||
orderList: [],
|
||||
logisticsList: [],
|
||||
supplierList: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
|
|
@ -395,7 +406,8 @@ export default {
|
|||
},
|
||||
// 表单参数
|
||||
form: {
|
||||
weight:0.0
|
||||
weight:0.0,
|
||||
sellerMemo:null
|
||||
},
|
||||
printerList: [],
|
||||
deliverList: [],
|
||||
|
|
@ -408,6 +420,7 @@ export default {
|
|||
packageAmount: [{ required: true, message: '不能为空' }],
|
||||
shippingCost: [{ required: true, message: '不能为空' }],
|
||||
// shippingMan: [{ required: true, message: '不能为空' }],
|
||||
supplierId: [{ required: true, message: '不能为空' }],
|
||||
receiverName: [{ required: true, message: '不能为空' }],
|
||||
receiverMobile: [{ required: true, message: '不能为空' }],
|
||||
address: [{ required: true, message: '不能为空' }],
|
||||
|
|
@ -501,6 +514,9 @@ export default {
|
|||
this.form.weight=0.0
|
||||
this.form.shippingCost=0.0
|
||||
this.form.packageAmount=0.0
|
||||
listSupplier().then(resp=>{
|
||||
this.supplierList = resp.rows
|
||||
})
|
||||
this.allocateShipmentOpen = true;
|
||||
// this.detailTitle = "订单详情";
|
||||
});
|
||||
|
|
@ -545,7 +561,16 @@ export default {
|
|||
submitAllocateShipmentForm(){
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
allocateShipmentOrder(this.form).then(resp =>{
|
||||
const form ={
|
||||
id:this.form.id,
|
||||
supplierId:this.form.supplierId,
|
||||
receiverName:this.form.receiverName,
|
||||
receiverMobile:this.form.receiverMobile,
|
||||
address:this.form.address,
|
||||
sellerMemo:this.form.sellerMemo,
|
||||
buyerMemo:this.form.buyerMemo,
|
||||
}
|
||||
allocateShipmentOrder(form).then(resp =>{
|
||||
if(resp.code==200){
|
||||
this.$modal.msgSuccess("分配发货成功");
|
||||
this.allocateShipmentOpen = false
|
||||
|
|
|
|||
|
|
@ -113,11 +113,20 @@
|
|||
|
||||
<el-table v-loading="loading" :data="agentShippingList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="订单编号" align="center" prop="orderNum" />
|
||||
<!-- <el-table-column label="主键ID" align="center" prop="id" /> -->
|
||||
<el-table-column label="供应商" align="center" prop="shopId" >
|
||||
<el-table-column label="订单编号" align="left" prop="orderNum" width="200px">
|
||||
<template slot-scope="scope">
|
||||
<el-tag>{{scope.row.supplier}}</el-tag>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-view"
|
||||
>{{scope.row.orderNum}} </el-button>
|
||||
<i class="el-icon-copy-document tag-copy" :data-clipboard-text="scope.row.orderNum" @click="copyActiveCode($event,scope.row.orderNum)" ></i>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="供应商" align="center" prop="shipSupplier" width="220px">
|
||||
<template slot-scope="scope">
|
||||
<el-tag>{{scope.row.shipSupplier}}</el-tag>
|
||||
<!-- <span>{{ shopList.find(x=>x.id === scope.row.shopId)?shopList.find(x=>x.id === scope.row.shopId).name:'' }}</span>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -131,11 +140,7 @@
|
|||
</el-table-column> -->
|
||||
|
||||
<!-- <el-table-column label="子订单编号" align="center" prop="subOrderNum" />-->
|
||||
<el-table-column label="下单日期" align="center" prop="orderDate" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.orderTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="商品明细" align="center" width="900px" >
|
||||
<template slot="header">
|
||||
<table>
|
||||
|
|
@ -150,7 +155,7 @@
|
|||
</table>
|
||||
</template>
|
||||
<template slot-scope="scope" >
|
||||
<el-table :data="scope.row.itemList" :show-header="false" :cell-style="{border:0 + 'px' }" :row-style="{border:0 + 'px' }" >
|
||||
<el-table :data="scope.row.items" :show-header="false" :cell-style="{border:0 + 'px' }" :row-style="{border:0 + 'px' }" >
|
||||
<el-table-column label="商品图片" width="50px">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-image style="width: 40px; height: 40px;" :src="scope.row.goodsImg" :preview-src-list="[scope.row.goodsImg]"></el-image>-->
|
||||
|
|
@ -167,9 +172,9 @@
|
|||
<el-tag size="small" v-if="scope.row.refundStatus === 11">已取消</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="SKU名" align="left" prop="goodsSpec" width="150" :show-overflow-tooltip="true">
|
||||
<el-table-column label="SKU名" align="left" prop="skuName" width="150" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.goodsSpec }}
|
||||
{{ scope.row.skuName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Sku编码" align="left" prop="skuNum" width="200"/>
|
||||
|
|
@ -182,34 +187,36 @@
|
|||
</el-table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="商品" >-->
|
||||
<!-- <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="商品标题" align="center" prop="goodsTitle" />-->
|
||||
<!-- <el-table-column label="商品SKU" align="center" prop="goodsSpec" />-->
|
||||
<!-- <el-table-column label="数量" align="center" prop="quantity" />-->
|
||||
|
||||
<!-- <el-table-column label="SKU编码" align="center" prop="skuNum" />-->
|
||||
<el-table-column label="创建时间" align="center" prop="orderDate" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="status" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-tag size="small" v-if="scope.row.shipStatus === 1">待发货</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.shipStatus === 2">已发货</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" >
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="scope.row.shipStatus === 0"
|
||||
v-if="scope.row.shipStatus === 1"
|
||||
size="mini"
|
||||
plain
|
||||
type="primary"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['scm:agentShipping:edit']"
|
||||
>供应商发货</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.status === 1"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-document-checked"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['scm:agentShipping:remove']"
|
||||
>付款确认</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- v-if="scope.row.status === 1"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-document-checked"-->
|
||||
<!-- @click="handleDelete(scope.row)"-->
|
||||
<!-- v-hasPermi="['scm:agentShipping:remove']"-->
|
||||
<!-- >付款确认</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -229,15 +236,15 @@
|
|||
<el-input v-model="form.orderNum" placeholder="请输入订单编号" disabled/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="订单日期" prop="orderDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.orderTime"
|
||||
disabled
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择订单日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="订单日期" prop="orderDate">-->
|
||||
<!-- <el-date-picker clearable-->
|
||||
<!-- v-model="form.orderTime"-->
|
||||
<!-- disabled-->
|
||||
<!-- type="datetime"-->
|
||||
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
|
||||
<!-- placeholder="请选择订单日期">-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <el-form-item label="商品总价" prop="goodsAmount">-->
|
||||
<!-- <el-input type="number" v-model.number="form.goodsAmount" placeholder="请输入商品总价" />-->
|
||||
|
|
@ -258,9 +265,9 @@
|
|||
<el-form-item label="物流单号" prop="shipNo">
|
||||
<el-input v-model="form.shipNo" placeholder="请输入物流单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="运费" prop="shipCost">
|
||||
<el-input type="number" v-model.number="form.shipCost" placeholder="请输入运费" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="运费" prop="shipCost">-->
|
||||
<!-- <el-input type="number" v-model.number="form.shipCost" placeholder="请输入运费" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="发货时间" prop="shipTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.shipTime"
|
||||
|
|
@ -288,11 +295,13 @@
|
|||
|
||||
import { listSupplier} from "@/api/scm/supplier";
|
||||
import { listShop } from "@/api/shop/shop";
|
||||
import {listLogistics, listLogisticsStatus} from "@/api/api/logistics";
|
||||
import {listLogisticsStatus} from "@/api/shipping/logistics";
|
||||
import {
|
||||
listShipStockupSupplier
|
||||
listShipStockupSupplier,supplierShipConfirm
|
||||
} from "@/api/shipping/shipping";
|
||||
// import {listShippingSupplier, getShippingDetail, supplierAgentShipment} from "@/api/wms/shipping";
|
||||
import Clipboard from "clipboard";
|
||||
|
||||
|
||||
export default {
|
||||
name: "supplierShipment",
|
||||
data() {
|
||||
|
|
@ -334,7 +343,7 @@ export default {
|
|||
goodsAmount: [{ required: true, message: '不能为空' }],
|
||||
shipCompanyId: [{ required: true, message: '不能为空' }],
|
||||
shipNo: [{ required: true, message: '不能为空' }],
|
||||
shipCost: [{ required: true, message: '不能为空' }],
|
||||
// shipCost: [{ required: true, message: '不能为空' }],
|
||||
shipTime: [{ required: true, message: '不能为空' }],
|
||||
},
|
||||
supplierLoading:false,
|
||||
|
|
@ -365,6 +374,21 @@ export default {
|
|||
this.supplierLoading = false;
|
||||
});
|
||||
},
|
||||
copyActiveCode(event,queryParams) {
|
||||
console.log(queryParams)
|
||||
const clipboard = new Clipboard(".tag-copy")
|
||||
clipboard.on('success', e => {
|
||||
this.$message({ type: 'success', message: '复制成功' })
|
||||
// 释放内存
|
||||
clipboard.destroy()
|
||||
})
|
||||
clipboard.on('error', e => {
|
||||
// 不支持复制
|
||||
this.$message({ type: 'waning', message: '该浏览器不支持自动复制' })
|
||||
// 释放内存
|
||||
clipboard.destroy()
|
||||
})
|
||||
},
|
||||
/** 查询供应商代发货列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
|
|
@ -420,26 +444,33 @@ export default {
|
|||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getShippingDetail(id).then(response => {
|
||||
// this.form = response.data;
|
||||
this.form.shipmentId=response.data.id
|
||||
this.form.orderNum=response.data.orderNum
|
||||
this.form.orderTime=response.data.orderTime
|
||||
this.form.goodsAmount=response.data.goodsAmount
|
||||
listLogisticsStatus({}).then(resp=>{
|
||||
// getShippingDetail(id).then(response => {
|
||||
this.form = row;
|
||||
this.form.shipTime = new Date()
|
||||
// this.form.shipmentId=response.data.id
|
||||
// this.form.orderNum=response.data.orderNum
|
||||
// this.form.orderTime=response.data.orderTime
|
||||
// this.form.goodsAmount=response.data.goodsAmount
|
||||
listLogisticsStatus({}).then(resp=>{
|
||||
this.logisticsList = resp.rows
|
||||
this.open = true;
|
||||
this.title = "填写供应商发货物流信息";
|
||||
})
|
||||
|
||||
});
|
||||
// });
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
supplierAgentShipment(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
const form={
|
||||
id:this.form.id,
|
||||
logisticsCompany:this.form.shipCompanyId,
|
||||
logisticsCode:this.form.shipNo,
|
||||
shipTime:this.form.shipTime
|
||||
}
|
||||
supplierShipConfirm(form).then(response => {
|
||||
this.$modal.msgSuccess("供应商发货成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue